From 80877c7dc467bf5ad6b28ec1b2662db36fcf7542 Mon Sep 17 00:00:00 2001 From: Oliver Specht Date: Tue, 3 Jun 2025 16:21:43 +0200 Subject: [PATCH] tdf#166850 Apply converted style name to StyleRef field As a result of e45f187870362ed4448f4a9fb96883b8431887fb the StyleRef field needs to use the modified style name with (suffix " (user)") The related JUnit test requires a German locale to detect the related issue. Otherwise there is no suffix that needs to be applied to the field. Change-Id: Iad4257568ad05900df63a6098ba81e926df701e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186150 Reviewed-by: Thorsten Behrens Tested-by: Jenkins --- sw/CppunitTest_sw_ooxmlexport26.mk | 16 +++++++ sw/Module_sw.mk | 1 + sw/qa/extras/ooxmlexport/data/tdf166850.docx | Bin 0 -> 31409 bytes sw/qa/extras/ooxmlexport/ooxmlexport26.cxx | 41 ++++++++++++++++++ .../writerfilter/dmapper/StyleSheetTable.cxx | 16 ++++--- .../writerfilter/dmapper/StyleSheetTable.hxx | 2 +- 6 files changed, 70 insertions(+), 6 deletions(-) create mode 100755 sw/CppunitTest_sw_ooxmlexport26.mk create mode 100644 sw/qa/extras/ooxmlexport/data/tdf166850.docx create mode 100755 sw/qa/extras/ooxmlexport/ooxmlexport26.cxx diff --git a/sw/CppunitTest_sw_ooxmlexport26.mk b/sw/CppunitTest_sw_ooxmlexport26.mk new file mode 100755 index 000000000000..8b57467c2f61 --- /dev/null +++ b/sw/CppunitTest_sw_ooxmlexport26.mk @@ -0,0 +1,16 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +#************************************************************************* +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +#************************************************************************* + +$(eval $(call sw_ooxmlexport_test,26)) + +$(call gb_CppunitTest_get_target,sw_ooxmlexport26) : export LO_TEST_LOCALE=de + +# vim: set noet sw=4 ts=4: diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index b00830e0fe2f..f3421aecb542 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -103,6 +103,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_ooxmlexport23 \ CppunitTest_sw_ooxmlexport24 \ CppunitTest_sw_ooxmlexport25 \ + CppunitTest_sw_ooxmlexport26 \ CppunitTest_sw_ooxmlexport_template \ CppunitTest_sw_ooxmlfieldexport \ CppunitTest_sw_ooxmllinks \ diff --git a/sw/qa/extras/ooxmlexport/data/tdf166850.docx b/sw/qa/extras/ooxmlexport/data/tdf166850.docx new file mode 100644 index 0000000000000000000000000000000000000000..5fb96bdb227670182e4f85ee91609d402591611d GIT binary patch literal 31409 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 X@=_4M + +#include +#include + +namespace +{ +class Test : public SwModelTestBase +{ +public: + Test() + : SwModelTestBase(u"/sw/qa/extras/ooxmlexport/data/"_ustr, u"Office Open XML Text"_ustr) + { + } +}; + +//test requires German user interface otherwise it will not detect the issue +CPPUNIT_TEST_FIXTURE(Test, testTdf166850) +{ + createSwDoc("tdf166850.docx"); + SwDoc* pDoc = getSwDoc(); + SwViewShell* pViewShell = pDoc->getIDocumentLayoutAccess().GetCurrentViewShell(); + pViewShell->UpdateFields(); + xmlDocUniquePtr pXmlDoc = parseLayoutDump(); + assertXPath(pXmlDoc, "/root/page[2]/header/txt[1]/SwParaPortion/SwLineLayout/SwFieldPortion", + "expand", u"Heading 1"); +} + +} // end of anonymous namespace +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx index 099ae839e7ef..6e3259aacc8f 100644 --- a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx +++ b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx @@ -1103,19 +1103,22 @@ OUString StyleSheetTable::CloneTOCStyle(FontTablePtr const& rFontTable, StyleShe // the old converted name is what is applied to paragraphs m_pImpl->m_ClonedTOCStylesMap.emplace(pStyle->m_sConvertedStyleName, pClone->m_sConvertedStyleName); std::vector const styles{ pClone }; - ApplyStyleSheetsImpl(rFontTable, styles); + std::vector aRetStyleNames = ApplyStyleSheetsImpl(rFontTable, styles); + pClone->m_sConvertedStyleName = aRetStyleNames[0]; return pClone->m_sConvertedStyleName; } void StyleSheetTable::ApplyStyleSheets( const FontTablePtr& rFontTable ) { - return ApplyStyleSheetsImpl(rFontTable, m_pImpl->m_aStyleSheetEntries); + ApplyStyleSheetsImpl(rFontTable, m_pImpl->m_aStyleSheetEntries); } -void StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std::vector const& rEntries) +std::vector StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std::vector const& rEntries) { + std::vector aStyleUINames(rEntries.size()); + std::vector::iterator aStyleUINamesIt = aStyleUINames.begin(); if (!m_pImpl->m_xTextDocument) - return; + return aStyleUINames; try { rtl::Reference< SwXStyleFamilies > xStyleFamilies = m_pImpl->m_xTextDocument->getSwStyleFamilies(); @@ -1131,6 +1134,7 @@ void StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std:: std::vector aTableStylesVec; for (auto& pEntry : rEntries) { + *aStyleUINamesIt = pEntry->m_sStyleName; if( pEntry->m_nStyleTypeCode == STYLE_TYPE_UNKNOWN && !pEntry->m_sStyleName.isEmpty() ) pEntry->m_nStyleTypeCode = STYLE_TYPE_PARA; // unspecified style types are considered paragraph styles @@ -1414,7 +1418,7 @@ void StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std:: aMissingParent.emplace_back( sParentStyle, xStyle ); xStyles->insertStyleByName( sConvertedStyleName, static_cast(xStyle.get()) ); - + *aStyleUINamesIt = static_cast(xStyle.get())->GetStyleUIName().toString(); if (!m_pImpl->m_bIsNewDoc && bParaStyle) { // Remember the inserted style, which may or may not be referred during @@ -1443,6 +1447,7 @@ void StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std:: pEntry->m_pProperties->InsertProps( m_pImpl->m_pDefaultCharProps, /*bOverwrite=*/false ); pEntry->m_pProperties->InsertProps( m_pImpl->m_pDefaultParaProps, /*bOverwrite=*/false ); } + ++aStyleUINamesIt; } // Update the styles that were created before their parents or next-styles @@ -1492,6 +1497,7 @@ void StyleSheetTable::ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std:: { DBG_UNHANDLED_EXCEPTION("writerfilter", "Styles could not be imported completely"); } + return aStyleUINames; } diff --git a/sw/source/writerfilter/dmapper/StyleSheetTable.hxx b/sw/source/writerfilter/dmapper/StyleSheetTable.hxx index eaf84387b512..3715e1ef6ef7 100644 --- a/sw/source/writerfilter/dmapper/StyleSheetTable.hxx +++ b/sw/source/writerfilter/dmapper/StyleSheetTable.hxx @@ -128,7 +128,7 @@ private: void applyDefaults(bool bParaProperties); - void ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std::vector const& rEntries); + std::vector ApplyStyleSheetsImpl(const FontTablePtr& rFontTable, std::vector const& rEntries); };