diff options
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/filter/ww8/wrtw8num.cxx | 11 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtww8.hxx | 1 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8atr.cxx | 7 |
3 files changed, 19 insertions, 0 deletions
diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index c3f8eabe9fd9..7c1866f74718 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -56,6 +56,17 @@ SwNumRule* MSWordExportBase::DuplicateNumRuleImpl(const SwNumRule *pRule) return pMyNumRule; } +sal_uInt16 MSWordExportBase::DuplicateNumRule(const SwNumRule* pRule, sal_uInt8 nLevel, sal_uInt16 nVal) +{ + SwNumRule* const pMyNumRule = DuplicateNumRuleImpl(pRule); + + SwNumFormat aNumFormat(pMyNumRule->Get(nLevel)); + aNumFormat.SetStart(nVal); + pMyNumRule->Set(nLevel, aNumFormat); + + return GetNumberingId(*pMyNumRule); +} + // multiple SwList can be based on the same SwNumRule; ensure one w:abstractNum // per SwList sal_uInt16 MSWordExportBase::DuplicateAbsNum(OUString const& rListId, diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx index 1baa627ece71..69f9f2b1a2ed 100644 --- a/sw/source/filter/ww8/wrtww8.hxx +++ b/sw/source/filter/ww8/wrtww8.hxx @@ -651,6 +651,7 @@ public: /// List is set to restart at a particular value so for export make a /// completely new list based on this one and export that instead, /// which duplicates words behaviour in this respect. + sal_uInt16 DuplicateNumRule(const SwNumRule* pRule, sal_uInt8 nLevel, sal_uInt16 nVal); SwNumRule * DuplicateNumRuleImpl(const SwNumRule *pRule); /// check if a new abstractNum is needed for this list diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index c1959186979c..14afa9919405 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -3627,6 +3627,13 @@ void AttributeOutputBase::ParaNumRule( const SwNumRuleItem& rNumRule ) } } } + else if (pTextNd->IsListRestart()) + { + sal_uInt16 nStartWith = static_cast<sal_uInt16>(pTextNd->GetActualListStartValue()); + nNumId = GetExport().DuplicateNumRule(pRule, nLvl, nStartWith); + if (USHRT_MAX != nNumId) + ++nNumId; + } } else { |