summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-08-31 09:05:59 +0200
committerAndras Timar <andras.timar@collabora.com>2015-08-31 10:36:38 +0000
commit7fc384911b8d52a3e341c0b5230519ebd62fe724 (patch)
tree552f4ac00da95f90e12f71882ccea0d6bef3d98b
parentcd91509191bee9faaabdae185fef58b811f3a5a4 (diff)
tdf#89245 xmloff: fix Calc header background image saving
Regression from commit 7d9bb549d498d6beed2c4050c402d09643febdfa (Related: #i124638# Second step of DrawingLayer FillAttributes..., 2014-06-02), the problem was that the new CTF_PM_REPEAT_OFFSET_X..CTF_PM_FILLTRANSNAME range's values overlapped with the existing CTF_PM_HEADERHEIGHT..CTF_PM_HEADERGRAPHICURL range's values, so when the new code in XMLPageMasterExportPropMapper::ContextFilter() tried to tweak header repeat offset properties, it actually disabled HeaderBackGraphicURL instead. (cherry picked from commit 3b40329f9a64b93b1e1230b1bff74ed8cda8cd70) Conflicts: sc/qa/unit/subsequent_export-test.cxx Change-Id: I9c2700fa71a4ef2a813ec671049ee9d98171b57e Reviewed-on: https://gerrit.libreoffice.org/18163 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--include/xmloff/PageMasterStyleMap.hxx12
-rw-r--r--sc/qa/unit/data/ods/header-image.odsbin0 -> 12036 bytes
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx16
3 files changed, 22 insertions, 6 deletions
diff --git a/include/xmloff/PageMasterStyleMap.hxx b/include/xmloff/PageMasterStyleMap.hxx
index a4007bd012f5..859f3e0e6e84 100644
--- a/include/xmloff/PageMasterStyleMap.hxx
+++ b/include/xmloff/PageMasterStyleMap.hxx
@@ -90,12 +90,12 @@
// at export time using CTF_PM_FLAGMASK and XML_PM_CTF_START as detector
// to find the first entry for header/footer (!), see
// SvXMLAutoStylePoolP_Impl::exportXML, look for XML_STYLE_FAMILY_PAGE_MASTER
-#define CTF_PM_REPEAT_OFFSET_X (XML_PM_CTF_START + 0x0035)
-#define CTF_PM_REPEAT_OFFSET_Y (XML_PM_CTF_START + 0x0036)
-#define CTF_PM_FILLGRADIENTNAME (XML_PM_CTF_START + 0x0037)
-#define CTF_PM_FILLHATCHNAME (XML_PM_CTF_START + 0x0038)
-#define CTF_PM_FILLBITMAPNAME (XML_PM_CTF_START + 0x0039)
-#define CTF_PM_FILLTRANSNAME (XML_PM_CTF_START + 0x0040)
+#define CTF_PM_REPEAT_OFFSET_X (XML_PM_CTF_START + 0x0037)
+#define CTF_PM_REPEAT_OFFSET_Y (XML_PM_CTF_START + 0x0038)
+#define CTF_PM_FILLGRADIENTNAME (XML_PM_CTF_START + 0x0039)
+#define CTF_PM_FILLHATCHNAME (XML_PM_CTF_START + 0x0040)
+#define CTF_PM_FILLBITMAPNAME (XML_PM_CTF_START + 0x0041)
+#define CTF_PM_FILLTRANSNAME (XML_PM_CTF_START + 0x0042)
#define CTF_PM_SCALETO (XML_PM_CTF_START + 0x0051) // calc specific
#define CTF_PM_SCALETOPAGES (XML_PM_CTF_START + 0x0052)
diff --git a/sc/qa/unit/data/ods/header-image.ods b/sc/qa/unit/data/ods/header-image.ods
new file mode 100644
index 000000000000..c19b902415dd
--- /dev/null
+++ b/sc/qa/unit/data/ods/header-image.ods
Binary files differ
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index bccb0cd7c6e5..f6a39a2922cd 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -146,6 +146,7 @@ public:
void testSheetRunParagraphProperty();
void testHiddenShape();
void testMoveCellAnchoredShapes();
+ void testHeaderImage();
CPPUNIT_TEST_SUITE(ScExportTest);
CPPUNIT_TEST(test);
@@ -201,6 +202,7 @@ public:
CPPUNIT_TEST(testSheetRunParagraphProperty);
CPPUNIT_TEST(testHiddenShape);
CPPUNIT_TEST(testMoveCellAnchoredShapes);
+ CPPUNIT_TEST(testHeaderImage);
CPPUNIT_TEST_SUITE_END();
@@ -2808,6 +2810,20 @@ void ScExportTest::testMoveCellAnchoredShapes()
xDocSh2->DoClose();
}
+void ScExportTest::testHeaderImage()
+{
+ // Graphic as header background was lost on export.
+ ScDocShellRef xShell = loadDoc("header-image.", ODS);
+ ScDocShellRef xDocSh = saveAndReload(&(*xShell), ODS);
+ uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(xDocSh->GetModel(), uno::UNO_QUERY);
+ uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameAccess> xPageStyles(xStyleFamilies->getByName("PageStyles"), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xStyle(xPageStyles->getByName("Default"), uno::UNO_QUERY);
+ OUString aURL;
+ xStyle->getPropertyValue("HeaderBackGraphicURL") >>= aURL;
+ CPPUNIT_ASSERT(aURL.startsWith("vnd.sun.star.GraphicObject:"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();