summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/wrtw8num.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww8/wrtw8num.cxx')
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx36
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());