summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2020-06-16 18:52:56 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2020-06-24 12:44:26 +0200
commitc850d7288650c37a3c569fd4891ecdf725b3a279 (patch)
treed7b84596fda84708556d8b940094877c2ecc925a /writerfilter
parentebe228dc28773816beaa78837a8441513270cb67 (diff)
tdf#76817 DOCX: fix round-tripped outline numbering
Fix automatic chapter numbering in DOCX documents created by Writer. Follow-up of commit de1b634a151c198584dc152676183f519c50a2da (tdf#76817: DOCX import: fix custom chapter numbering). Change-Id: I331b7dcf67efdf63b376122ec4da0a2e85bea761 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96529 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit d0cdeb78e9077320011ebe87cabd179b1029e1ea) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96509 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/dmapper/NumberingManager.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 23ea3ebefbb7..c96dbba8dcb8 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -577,9 +577,15 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
xOutlineRules->replaceByIndex(nLevel, uno::makeAny(comphelper::containerToSequence(aLvlProps)));
}
- // first level with custom pStyle
- if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && pAbsLevel->GetParaStyle( ) )
+ // first level without default outline paragraph style
+ const tools::SvRef< StyleSheetEntry >& aParaStyle = pAbsLevel->GetParaStyle();
+ if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && ( !aParaStyle ||
+ aParaStyle->sConvertedStyleName.getLength() != RTL_CONSTASCII_LENGTH( "Heading 1" ) ||
+ !aParaStyle->sConvertedStyleName.startsWith("Heading ") ||
+ aParaStyle->sConvertedStyleName[ RTL_CONSTASCII_LENGTH( "Heading " ) ] - u'1' != nLevel ) )
+ {
m_nDefaultParentLevels = nLevel;
+ }
nLevel++;
}