diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-02-10 20:55:53 +0100 |
---|---|---|
committer | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-02-10 21:04:17 +0100 |
commit | 32210fc19324c659603e1dfed1ed006072ccf22f (patch) | |
tree | 2383b867e578fabc2d0a3c37c817a0ec222d22c2 | |
parent | 05506b377a81bcbdd0191aa592f17987f2ddcd34 (diff) |
writerfilter: legibility improvement regarding grabbag use
Change-Id: I01b99887dc1e94616633ae6509e13ec951fd5485
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 17 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 17 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 5 |
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; |