diff options
Diffstat (limited to 'sw/source/filter/ww8/wrtw8num.cxx')
-rw-r--r-- | sw/source/filter/ww8/wrtw8num.cxx | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index d9f284c3380b..afe0204a48cd 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -61,24 +61,6 @@ SwNumRule* MSWordExportBase::DuplicateNumRuleImpl(const SwNumRule *pRule) return pMyNumRule; } -sal_uInt16 MSWordExportBase::DuplicateNumRule( const SwNumRule *pRule, sal_uInt8 nLevel, sal_uInt16 nVal ) -{ - sal_uInt16 nNumId = USHRT_MAX; - - SwNumRule *const pMyNumRule = DuplicateNumRuleImpl(pRule); - - SwNumFormat aNumFormat( pMyNumRule->Get( nLevel ) ); - aNumFormat.SetStart( nVal ); - pMyNumRule->Set( nLevel, aNumFormat ); - - nNumId = GetNumberingId( *pMyNumRule ); - - // Map the old list to our new list - m_aRuleDuplicates[GetNumberingId( *pRule )] = nNumId; - - return nNumId; -} - // multiple SwList can be based on the same SwNumRule; ensure one w:abstractNum // per SwList sal_uInt16 MSWordExportBase::DuplicateAbsNum(OUString const& rListId, @@ -109,7 +91,6 @@ sal_uInt16 MSWordExportBase::OverrideNumRule( OUString const& rListId, SwNumRule const& rAbstractRule) { - assert(&rExistingRule != &rAbstractRule); auto const numdef = GetNumberingId(rExistingRule); auto const absnumdef = rListId == rAbstractRule.GetDefaultListId() ? GetNumberingId(rAbstractRule) @@ -128,6 +109,13 @@ sal_uInt16 MSWordExportBase::OverrideNumRule( return it->second; } +void MSWordExportBase::AddListLevelOverride(sal_uInt16 nListId, + sal_uInt16 nLevelNum, + sal_uInt16 nStartAt) +{ + m_ListLevelOverrides[nListId][nLevelNum] = nStartAt; +} + sal_uInt16 MSWordExportBase::GetNumberingId( const SwNumRule& rNumRule ) { if ( !m_pUsedNumTable ) @@ -248,7 +236,7 @@ void MSWordExportBase::NumberingDefinitions() assert(it != m_OverridingNums.end()); pRule = (*m_pUsedNumTable)[it->second.first]; assert(pRule); - AttrOutput().OverrideNumberingDefinition(*pRule, n + 1, it->second.second + 1); + AttrOutput().OverrideNumberingDefinition(*pRule, n + 1, it->second.second + 1, m_ListLevelOverrides[n]); } } } @@ -501,7 +489,13 @@ void MSWordExportBase::NumberingLevel( const vcl::Font* pBulletFont=nullptr; rtl_TextEncoding eChrSet=0; FontFamily eFamily=FAMILY_DECORATIVE; - if (SVX_NUM_CHAR_SPECIAL == rFormat.GetNumberingType() || + + if (!rRule.Get(nLvl).GetListFormat().isEmpty()) + { + // We have stored list format, use it + sNumStr = rRule.Get(nLvl).GetListFormat(); + } + else if (SVX_NUM_CHAR_SPECIAL == rFormat.GetNumberingType() || SVX_NUM_BITMAP == rFormat.GetNumberingType()) { sNumStr = OUString(rFormat.GetBulletChar()); |