writerfilter/source/dmapper/DomainMapper.cxx | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-)
New commits: commit 62a6b49aa78b0d55342e79aad2ebb60d46349b3b Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Wed Jul 11 12:15:40 2012 +0200 do not let a style override paragraph's numbering If a paragraph has its own <w:numPr>, do not let <w:pStyle> override that. Change-Id: I7cea0d1c8bf59804f8c56382ee68c7fad5ed3ef6 (cherry picked from commit e7ab4bb6b0e83f01148ffff41e8c5eaa0c5ba0a4) Signed-off-by: Caolán McNamara <caol...@redhat.com> diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index ac52d07..8634644 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1533,6 +1533,8 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType { uno::Any aRules = uno::makeAny( pList->GetNumberingRules( ) ); rContext->Insert( PROP_NUMBERING_RULES, true, aRules ); + // erase numbering from pStyle if already set + rContext->erase( PropertyDefinition( PROP_NUMBERING_STYLE_NAME, true )); } } else if ( !m_pImpl->IsStyleSheetImport( ) ) @@ -2990,17 +2992,21 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType const ::rtl::OUString sConvertedStyleName = pStyleTable->ConvertStyleName( sStringValue, true ); if (m_pImpl->GetTopContext() && m_pImpl->GetTopContextType() != CONTEXT_SECTION) m_pImpl->GetTopContext()->Insert( PROP_PARA_STYLE_NAME, true, uno::makeAny( sConvertedStyleName )); - const StyleSheetEntryPtr pEntry = pStyleTable->FindStyleSheetByISTD(sStringValue); - //apply numbering to paragraph if it was set at the style - OSL_ENSURE( pEntry.get(), "no style sheet found" ); - const StyleSheetPropertyMap* pStyleSheetProperties = dynamic_cast<const StyleSheetPropertyMap*>(pEntry ? pEntry->pProperties.get() : 0); + //apply numbering to paragraph if it was set at the style, but only if the paragraph itself + //does not specify the numbering + if( rContext->find( PropertyDefinition( PROP_NUMBERING_RULES, true )) == rContext->end()) // !contains + { + const StyleSheetEntryPtr pEntry = pStyleTable->FindStyleSheetByISTD(sStringValue); + OSL_ENSURE( pEntry.get(), "no style sheet found" ); + const StyleSheetPropertyMap* pStyleSheetProperties = dynamic_cast<const StyleSheetPropertyMap*>(pEntry ? pEntry->pProperties.get() : 0); - if( pStyleSheetProperties && pStyleSheetProperties->GetListId() >= 0 ) - rContext->Insert( PROP_NUMBERING_STYLE_NAME, true, uno::makeAny( - ListDef::GetStyleName( pStyleSheetProperties->GetListId( ) ) ), false); + if( pStyleSheetProperties && pStyleSheetProperties->GetListId() >= 0 ) + rContext->Insert( PROP_NUMBERING_STYLE_NAME, true, uno::makeAny( + ListDef::GetStyleName( pStyleSheetProperties->GetListId( ) ) ), false); - if( pStyleSheetProperties && pStyleSheetProperties->GetListLevel() >= 0 ) - rContext->Insert( PROP_NUMBERING_LEVEL, true, uno::makeAny(pStyleSheetProperties->GetListLevel()), false); + if( pStyleSheetProperties && pStyleSheetProperties->GetListLevel() >= 0 ) + rContext->Insert( PROP_NUMBERING_LEVEL, true, uno::makeAny(pStyleSheetProperties->GetListLevel()), false); + } } break; case NS_ooxml::LN_EG_RPrBase_rStyle:
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits