sc/qa/unit/subsequent_export_test2.cxx | 25 +++++++++++++++++++++++++ sc/source/filter/xml/xmlexprt.cxx | 6 ++++-- 2 files changed, 29 insertions(+), 2 deletions(-)
New commits: commit 0aa559589035d496a5b80d0986b4cddf02437bab Author: Andreas Heinisch <andreas.heini...@yahoo.de> AuthorDate: Wed Mar 29 16:53:48 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Mar 31 09:23:44 2023 +0000 tdf#154445 - Export all page styles even if they are not in use Change-Id: If0ca5ea97ad545058c6a70d223158a87bf9207ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149729 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de> (cherry picked from commit 8085a68be7604e7bd00004e0d9445be5e266ffbb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149735 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index ce7ac0c43d2f..f97dc4b643d3 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -23,6 +23,8 @@ #include <dpcache.hxx> #include <dpobject.hxx> #include <clipparam.hxx> +#include <scresid.hxx> +#include <globstr.hrc> #include <editeng/wghtitem.hxx> #include <editeng/postitem.hxx> @@ -147,6 +149,7 @@ public: void testTdf121718_UseFirstPageNumberXLSX(); void testHeaderFontStyleXLSX(); void testTdf135828_Shape_Rect(); + void testTdf154445_unused_pagestyles(); void testTdf123139XLSX(); void testTdf123353(); void testTdf140098(); @@ -276,6 +279,7 @@ public: CPPUNIT_TEST(testTdf121718_UseFirstPageNumberXLSX); CPPUNIT_TEST(testHeaderFontStyleXLSX); CPPUNIT_TEST(testTdf135828_Shape_Rect); + CPPUNIT_TEST(testTdf154445_unused_pagestyles); CPPUNIT_TEST(testTdf123139XLSX); CPPUNIT_TEST(testTdf123353); CPPUNIT_TEST(testTdf140098); @@ -1889,6 +1893,27 @@ void ScExportTest2::testTdf135828_Shape_Rect() CPPUNIT_ASSERT_DOUBLES_EQUAL(1988280, nHeight, 10000); } +void ScExportTest2::testTdf154445_unused_pagestyles() +{ + createScDoc("ods/tdf108188_pagestyle.ods"); + + // Check if the user defined page style is present + const OUString aTestPageStyle = "TestPageStyle"; + ScDocument* pDoc = getScDoc(); + CPPUNIT_ASSERT_EQUAL(aTestPageStyle, pDoc->GetPageStyle(0)); + + // Change page style to default so the user defined one is not used anymore + pDoc->SetPageStyle(0, ScResId(STR_STYLENAME_STANDARD)); + + // Save and reload the document to check if the unused page styles are still present + saveAndReload("calc8"); + pDoc = getScDoc(); + + // Without the accompanying fix in place, the unused page styles don't exist anymore + ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool(); + CPPUNIT_ASSERT(pStylePool->Find(aTestPageStyle, SfxStyleFamily::Page)); +} + void ScExportTest2::testTdf123139XLSX() { createScDoc("xlsx/tdf123139_applyAlignment.xlsx"); diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index 051c0ac251b3..9fba6fd02604 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -2611,7 +2611,8 @@ void ScXMLExport::collectAutoStyles() } if (getExportFlags() & SvXMLExportFlags::MASTERSTYLES) - GetPageExport()->collectAutoStyles(true); + // tdf#154445 - export all page styles even if they are not in use + GetPageExport()->collectAutoStyles(false); mbAutoStylesCollected = true; } @@ -2673,7 +2674,8 @@ void ScXMLExport::ExportAutoStyles_() void ScXMLExport::ExportMasterStyles_() { - GetPageExport()->exportMasterStyles( true ); + // tdf#154445 - export all page styles even if they are not in use + GetPageExport()->exportMasterStyles( false ); } void ScXMLExport::CollectInternalShape( uno::Reference< drawing::XShape > const & xShape )