sw/inc/numrule.hxx | 4 ++++ sw/qa/extras/ooxmlexport/data/tdf126245.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 7 +++++++ sw/source/core/doc/number.cxx | 2 ++ sw/source/core/doc/poolfmt.cxx | 3 ++- sw/source/core/unocore/unocrsrhelper.cxx | 7 +++++++ 6 files changed, 22 insertions(+), 1 deletion(-)
New commits: commit 815205d10993e4cf4f48fcea042263b8f45a348c Author: László Németh <nem...@numbertext.org> AuthorDate: Fri Jul 12 08:58:19 2019 +0200 Commit: László Németh <nem...@numbertext.org> CommitDate: Fri Jul 12 13:49:36 2019 +0200 tdf#126245 DOCX export: fix losing of tracked numbering changes of paragraphs. Change-Id: I97519630c0f7437c8fdda67c2d94a02c19fc427e Reviewed-on: https://gerrit.libreoffice.org/75470 Tested-by: Jenkins Reviewed-by: László Németh <nem...@numbertext.org> diff --git a/sw/inc/numrule.hxx b/sw/inc/numrule.hxx index 35d304dff012..30d82dddd1c6 100644 --- a/sw/inc/numrule.hxx +++ b/sw/inc/numrule.hxx @@ -134,6 +134,7 @@ private: bool mbAbsSpaces : 1; ///< Levels represent absolute indents. bool mbHidden : 1; ///< Is the numbering rule to be hidden in the UI? bool mbCountPhantoms; + bool mbUsedByRedline; /// it needs to export as part of tracked numbering change const SvxNumberFormat::SvxNumPositionAndSpaceMode meDefaultNumberFormatPositionAndSpaceMode; OUString msDefaultListId; @@ -240,6 +241,9 @@ public: bool IsCountPhantoms() const { return mbCountPhantoms; } void SetCountPhantoms(bool bCountPhantoms); + bool IsUsedByRedline() const { return mbUsedByRedline; } + void SetUsedByRedline(bool bUsed ) { mbUsedByRedline = bUsed; } + /// Query and set PoolFormat IDs. sal_uInt16 GetPoolFormatId() const { return mnPoolFormatId; } void SetPoolFormatId( sal_uInt16 nId ) { mnPoolFormatId = nId; } diff --git a/sw/qa/extras/ooxmlexport/data/tdf126245.docx b/sw/qa/extras/ooxmlexport/data/tdf126245.docx new file mode 100644 index 000000000000..7cdc26143176 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf126245.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx index 25ed3a744e46..98e137327787 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx @@ -876,6 +876,13 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf126243, "tdf120338.docx") assertXPath(pXmlDoc, "/w:document/w:body/w:p[11]/w:pPr/w:pPrChange/w:pPr/w:pStyle", "val", "Heading 3"); } +DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf126245, "tdf126245.docx") +{ + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + // export change tracking rejection data for tracked numbering change + assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:pPrChange/w:pPr/w:numPr/w:numId", "val", "1"); +} + DECLARE_OOXMLEXPORT_TEST(testTdf118691, "tdf118691.docx") { uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); diff --git a/sw/source/core/doc/number.cxx b/sw/source/core/doc/number.cxx index e8cd7792a1a2..ac882f6f2a9e 100644 --- a/sw/source/core/doc/number.cxx +++ b/sw/source/core/doc/number.cxx @@ -372,6 +372,7 @@ SwNumRule::SwNumRule( const OUString& rNm, mbAbsSpaces( false ), mbHidden( false ), mbCountPhantoms( true ), + mbUsedByRedline( false ), meDefaultNumberFormatPositionAndSpaceMode( eDefaultNumberFormatPositionAndSpaceMode ), msDefaultListId() { @@ -460,6 +461,7 @@ SwNumRule::SwNumRule( const SwNumRule& rNumRule ) mbAbsSpaces( rNumRule.mbAbsSpaces ), mbHidden( rNumRule.mbHidden ), mbCountPhantoms( true ), + mbUsedByRedline( false ), meDefaultNumberFormatPositionAndSpaceMode( rNumRule.meDefaultNumberFormatPositionAndSpaceMode ), msDefaultListId( rNumRule.msDefaultListId ) { diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx index 2f1f20d89175..30ba42f2a577 100644 --- a/sw/source/core/doc/poolfmt.cxx +++ b/sw/source/core/doc/poolfmt.cxx @@ -145,7 +145,8 @@ bool SwDoc::IsUsed( const SwTableAutoFormat& rTableAutoFormat) const bool SwDoc::IsUsed( const SwNumRule& rRule ) { bool bUsed = rRule.GetTextNodeListSize() > 0 || - rRule.GetParagraphStyleListSize() > 0; + rRule.GetParagraphStyleListSize() > 0 || + rRule.IsUsedByRedline(); return bUsed; } diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx index 6fbe3f75f3c7..27427c5a3bea 100644 --- a/sw/source/core/unocore/unocrsrhelper.cxx +++ b/sw/source/core/unocore/unocrsrhelper.cxx @@ -1283,7 +1283,14 @@ void makeRedline( SwPaM const & rPaM, uno::Reference<container::XNamed> xNumberingRules; rValue >>= xNumberingRules; if (xNumberingRules.is()) + { aItemSet.Put( SwNumRuleItem( xNumberingRules->getName() )); + // keep it during export + SwNumRule* pRule = pDoc->FindNumRulePtr( + xNumberingRules->getName()); + if (pRule) + pRule->SetUsedByRedline(true); + } } else { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits