sw/qa/extras/docbookexport/data/tdf169122_Docbook_Example.xml | 37 ++++++++++ sw/qa/extras/docbookexport/docbookexport.cxx | 9 ++ xmloff/source/draw/sdpropls.cxx | 11 ++ 3 files changed, 57 insertions(+)
New commits: commit a5fe9fbda02a3b3fcdb58d5db180760e3471fa04 Author: Regina Henschel <[email protected]> AuthorDate: Sat Nov 22 23:46:57 2025 +0100 Commit: Regina Henschel <[email protected]> CommitDate: Sun Nov 23 15:19:28 2025 +0100 tdf#169122 no TextWritingMode if GraphicWritingMode2 TextWritingMode and ControlWritingMode are suppressed when ShapeWritingMode exists. With commit c70ee4a6b9071468255e5d4fdb893e9c9bdf4fad we have in addition GraphicWritingMode2. Thus suppress them in that case too to avoid duplicate attributes. Change-Id: Ie7064e2dcea3a6dccc081f03bf027c1e7a261bfa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194371 Reviewed-by: Regina Henschel <[email protected]> Tested-by: Jenkins diff --git a/sw/qa/extras/docbookexport/data/tdf169122_Docbook_Example.xml b/sw/qa/extras/docbookexport/data/tdf169122_Docbook_Example.xml new file mode 100644 index 000000000000..9077d6d242cc --- /dev/null +++ b/sw/qa/extras/docbookexport/data/tdf169122_Docbook_Example.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article + PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article lang=""> + <para>Docbook: Borked?</para> + <para>Most indeedly<footnote> + <para>Yep, that's not a word.</para> + </footnote>, good sire</para> + <sect1> + <title>A Heading</title> + <para>This is a normal paragraph under a heading 1.</para> + <sect2> + <title>A 2nd-level Heading</title> + <para>This is a normal paragraph under a heading 2.</para> + <itemizedlist mark="disc"> + <listitem> + <para>Bullet lists?</para> + </listitem> + <listitem> + <para>Bullet lists!</para> + </listitem> + </itemizedlist> + </sect2> + <sect2> + <title>Another 2nd-level Heading</title> + <para>This is yet another normal paragraph under a heading 3.</para> + <orderedlist> + <listitem> + <para>Numbered lists?</para> + </listitem> + <listitem> + <para>NUMBERED LISTS! WOO!</para> + </listitem> + </orderedlist> + </sect2> + </sect1> +</article> \ No newline at end of file diff --git a/sw/qa/extras/docbookexport/docbookexport.cxx b/sw/qa/extras/docbookexport/docbookexport.cxx index 8c9f8b25d81a..4cf2040891c7 100644 --- a/sw/qa/extras/docbookexport/docbookexport.cxx +++ b/sw/qa/extras/docbookexport/docbookexport.cxx @@ -38,6 +38,15 @@ CPPUNIT_TEST_FIXTURE(DocbookExportTest, testtdf91095) CPPUNIT_ASSERT(pDoc); } +CPPUNIT_TEST_FIXTURE(DocbookExportTest, testtdf169122_resave_docbook) +{ + // Without fix, resave of a docbook was not possible due to duplicate attributes. + createSwDoc("tdf169122_Docbook_Example.xml"); + save(TestFilter::DOCBOOK); + xmlDocUniquePtr pDoc = parseXml(maTempFile); + CPPUNIT_ASSERT(pDoc); +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx index 2a987ad78e6c..b647867a2b32 100644 --- a/xmloff/source/draw/sdpropls.cxx +++ b/xmloff/source/draw/sdpropls.cxx @@ -1624,6 +1624,17 @@ void XMLShapeExportPropertyMapper::ContextFilter( } } } + else if (pGraphicWritingMode2) // tdf#169122 + { + sal_Int16 eGraphicWritingMode; + if (pGraphicWritingMode2->maValue >>= eGraphicWritingMode) + { + if (pTextWritingMode) + pTextWritingMode->mnIndex = -1; + if (pControlWritingMode) + pControlWritingMode->mnIndex = -1; + } + } // do not export visual area for internal ole objects if( pOLEIsInternal )
