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 13:53:19 +0200
commitaeba901db44db667933a13acd8e2d74e1e4a0028 (patch)
tree070b5c06d6162dcadb597c6999cd179f8a421de0
parentf953d338808c0e060145d9bc027272d35ff5e7d0 (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/18162 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-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 33312e46dce2..a6f273b7e4c8 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -135,6 +135,7 @@ public:
void testLinkedGraphicRT();
void testSupBookVirtualPath();
+ void testHeaderImage();
CPPUNIT_TEST_SUITE(ScExportTest);
CPPUNIT_TEST(test);
@@ -180,6 +181,7 @@ public:
#endif
CPPUNIT_TEST(testSwappedOutImageExport);
CPPUNIT_TEST(testLinkedGraphicRT);
+ CPPUNIT_TEST(testHeaderImage);
CPPUNIT_TEST_SUITE_END();
@@ -2417,6 +2419,20 @@ void ScExportTest::testLinkedGraphicRT()
}
}
+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();