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.heinisch@yahoo.de>
diff --git a/sc/qa/unit/subsequent_export_test4.cxx b/sc/qa/unit/subsequent_export_test4.cxx
index 3033ff4..275493f 100644
--- a/sc/qa/unit/subsequent_export_test4.cxx
+++ b/sc/qa/unit/subsequent_export_test4.cxx
@@ -18,6 +18,8 @@
#include <stlpool.hxx>
#include <formulacell.hxx>
#include <validat.hxx>
#include <scresid.hxx>
#include <globstr.hrc>
#include <editeng/wghtitem.hxx>
#include <editeng/postitem.hxx>
@@ -418,6 +420,27 @@ CPPUNIT_TEST_FIXTURE(ScExportTest4, testHeaderFontStyleXLSX)
CPPUNIT_ASSERT_MESSAGE("Second line should be italic.", bHasItalic);
}
CPPUNIT_TEST_FIXTURE(ScExportTest4, 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));
}
CPPUNIT_TEST_FIXTURE(ScExportTest4, testTdf135828_Shape_Rect)
{
if (!IsDefaultDPI())
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index cbf8dcf..4c306de 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -2609,7 +2609,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;
}
@@ -2671,7 +2672,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 )