summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2014-02-10 20:55:53 +0100
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2014-02-10 21:04:17 +0100
commit32210fc19324c659603e1dfed1ed006072ccf22f (patch)
tree2383b867e578fabc2d0a3c37c817a0ec222d22c2
parent05506b377a81bcbdd0191aa592f17987f2ddcd34 (diff)
writerfilter: legibility improvement regarding grabbag use
Change-Id: I01b99887dc1e94616633ae6509e13ec951fd5485
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx17
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx17
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx5
3 files changed, 31 insertions, 8 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 2c96adaa81b0..bdf3565a0f87 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -1911,11 +1911,13 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
case NS_ooxml::LN_CT_Style_rPr:
case NS_ooxml::LN_CT_PPr_rPr:
case NS_ooxml::LN_CT_PPrBase_numPr:
+ {
+ bool bTempGrabBag = !m_pImpl->isInteropGrabBagEnabled();
if (nSprmId == NS_ooxml::LN_CT_PPr_sectPr)
m_pImpl->SetParaSectpr(true);
- else if (nSprmId == NS_ooxml::LN_EG_RPrBase_color && m_pImpl->m_aInteropGrabBagName.isEmpty())
- // if DomainMapper grab bag is not enabled, enable it temporarilly
- m_pImpl->m_aInteropGrabBagName = OUString ("TempColorPropsGrabBag");
+ else if (nSprmId == NS_ooxml::LN_EG_RPrBase_color && bTempGrabBag)
+ // if DomainMapper grab bag is not enabled, enable it temporarily
+ m_pImpl->enableInteropGrabBag("TempColorPropsGrabBag");
resolveSprmProps(*this, rSprm);
if (nSprmId == NS_ooxml::LN_CT_PPrBase_spacing)
m_pImpl->appendGrabBag(m_pImpl->m_aInteropGrabBag, "spacing", m_pImpl->m_aSubInteropGrabBag);
@@ -1937,16 +1939,15 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
else if (aIter->Name == "themeTint")
m_pImpl->GetTopContext()->Insert(PROP_CHAR_THEME_COLOR_TINT, aIter->Value, true, CHAR_GRAB_BAG);
}
- if (m_pImpl->m_aInteropGrabBagName == "TempColorPropsGrabBag")
- {
+ if (bTempGrabBag)
//disable and clear DomainMapper grab bag if it wasn't enabled before
- m_pImpl->m_aInteropGrabBagName = OUString();
- m_pImpl->m_aSubInteropGrabBag.clear();
- }
+ m_pImpl->disableInteropGrabBag();
+
m_pImpl->appendGrabBag(m_pImpl->m_aInteropGrabBag, "color", m_pImpl->m_aSubInteropGrabBag);
}
else if (nSprmId == NS_ooxml::LN_CT_PPrBase_ind)
m_pImpl->appendGrabBag(m_pImpl->m_aInteropGrabBag, "ind", m_pImpl->m_aSubInteropGrabBag);
+ }
break;
case NS_ooxml::LN_CT_PPrBase_wordWrap:
m_pImpl->appendGrabBag(m_pImpl->m_aInteropGrabBag, "wordWrap", "");
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 8b7dc2d5d7fb..12855fe11d75 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4194,6 +4194,23 @@ bool DomainMapper_Impl::IsNewDoc()
return m_bIsNewDoc;
}
+void DomainMapper_Impl::enableInteropGrabBag(OUString aName)
+{
+ m_aInteropGrabBagName = aName;
+}
+
+void DomainMapper_Impl::disableInteropGrabBag()
+{
+ m_aInteropGrabBagName = "";
+ m_aInteropGrabBag.clear();
+ m_aSubInteropGrabBag.clear();
+}
+
+bool DomainMapper_Impl::isInteropGrabBagEnabled()
+{
+ return !(m_aInteropGrabBagName.isEmpty());
+}
+
void DomainMapper_Impl::appendGrabBag(std::vector<beans::PropertyValue>& rInteropGrabBag, OUString aKey, OUString aValue)
{
if (m_aInteropGrabBagName.isEmpty())
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
index 0a14054b8e8a..e08fa97d329b 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -731,6 +731,11 @@ public:
void appendGrabBag(std::vector<beans::PropertyValue>& rInteropGrabBag, OUString aKey, OUString aValue);
void appendGrabBag(std::vector<beans::PropertyValue>& rInteropGrabBag, OUString aKey, std::vector<beans::PropertyValue>& rValue);
+ /// Enable, disable an check status of grabbags
+ void enableInteropGrabBag(OUString aName);
+ void disableInteropGrabBag();
+ bool isInteropGrabBagEnabled();
+
/// Name of m_aInteropGrabBag.
OUString m_aInteropGrabBagName;