diff options
Diffstat (limited to 'writerfilter/source/dmapper/StyleSheetTable.cxx')
-rw-r--r-- | writerfilter/source/dmapper/StyleSheetTable.cxx | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index 4780ceefb829..2c7307a68d5c 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -258,6 +258,7 @@ struct StyleSheetTable_Impl StringPairMap_t m_aStyleNameMap; /// Style names which should not be used without a " (user)" suffix. std::set<OUString> m_aReservedStyleNames; + OUString m_sDefaultParaStyleName; //WW8 name ListCharStylePropertyVector_t m_aListCharStylePropertyVector; bool m_bHasImportedDefaultParaProps; bool m_bIsNewDoc; @@ -282,6 +283,7 @@ StyleSheetTable_Impl::StyleSheetTable_Impl(DomainMapper& rDMapper, m_pCurrentEntry(), m_pDefaultParaProps(new PropertyMap), m_pDefaultCharProps(new PropertyMap), + m_sDefaultParaStyleName("Normal"), m_bHasImportedDefaultParaProps(false), m_bIsNewDoc(bIsNewDoc) { @@ -456,6 +458,10 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val) if (m_pImpl->m_pCurrentEntry->nStyleTypeCode != STYLE_TYPE_UNKNOWN) { + // "If this attribute is specified by multiple styles, then the last instance shall be used." + if ( m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_PARA && !m_pImpl->m_pCurrentEntry->sStyleIdentifierD.isEmpty() ) + m_pImpl->m_sDefaultParaStyleName = m_pImpl->m_pCurrentEntry->sStyleIdentifierD; + beans::PropertyValue aValue; aValue.Name = "default"; aValue.Value <<= m_pImpl->m_pCurrentEntry->bIsDefaultStyle; @@ -1272,16 +1278,7 @@ const StyleSheetEntryPtr StyleSheetTable::FindStyleSheetByConvertedStyleName(con const StyleSheetEntryPtr StyleSheetTable::FindDefaultParaStyle() { - StyleSheetEntryPtr pRet; - for (StyleSheetEntryPtr & pEntry : m_pImpl->m_aStyleSheetEntries) - { - if (pEntry->bIsDefaultStyle && pEntry->nStyleTypeCode == STYLE_TYPE_PARA) - { - pRet = pEntry; - break; - } - } - return pRet; + return FindStyleSheetByISTD( m_pImpl->m_sDefaultParaStyleName ); } const StyleSheetEntryPtr StyleSheetTable::GetCurrentEntry() |