summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2017-06-24 10:21:18 +0200
committerMichael Stahl <mstahl@redhat.com>2017-07-17 22:48:42 +0200
commitd9feaf67be30e7a2aa729db93e489c61f57bb580 (patch)
treef3228aa606e6d6550e287c96b3a75bcf2f97ba15
parent4ca03b46b53818a25636a96b5e42b3a0b116bc35 (diff)
tdf#107584: Load/save page background transparency
Change-Id: I17bd01dc129f0e530d5e227a5ddc12f11486e85d Reviewed-on: https://gerrit.libreoffice.org/39206 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 7562c5f37ca03267da5873143601811bebf6d620) Reviewed-on: https://gerrit.libreoffice.org/40045 Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--sd/qa/unit/data/odp/page_transparent_background.odpbin0 -> 11508 bytes
-rw-r--r--sd/qa/unit/export-tests.cxx27
-rw-r--r--xmloff/source/draw/sdpropls.cxx1
3 files changed, 28 insertions, 0 deletions
diff --git a/sd/qa/unit/data/odp/page_transparent_background.odp b/sd/qa/unit/data/odp/page_transparent_background.odp
new file mode 100644
index 000000000000..02b11976a15d
--- /dev/null
+++ b/sd/qa/unit/data/odp/page_transparent_background.odp
Binary files differ
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index 80a03416d759..d65615a2094e 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -94,6 +94,7 @@ public:
void testEmbeddedPdf();
void testAuthorField();
void testTdf100926();
+ void testPageWithTransparentBackground();
CPPUNIT_TEST_SUITE(SdExportTest);
@@ -110,6 +111,7 @@ public:
CPPUNIT_TEST(testEmbeddedPdf);
CPPUNIT_TEST(testAuthorField);
CPPUNIT_TEST(testTdf100926);
+ CPPUNIT_TEST(testPageWithTransparentBackground);
CPPUNIT_TEST_SUITE_END();
@@ -602,6 +604,31 @@ void SdExportTest::testTdf100926()
xDocShRef->DoClose();
}
+void SdExportTest::testPageWithTransparentBackground()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/page_transparent_background.odp"), ODP );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "There should be exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount() );
+
+ uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+ uno::Any aAny = xPropSet->getPropertyValue( "Background" );
+ CPPUNIT_ASSERT_MESSAGE("Slide background is missing", aAny.hasValue());
+
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+ sal_Int32 nTransparence;
+ aAny = aXBackgroundPropSet->getPropertyValue( "FillTransparence" );
+ aAny >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide background transparency is wrong", sal_Int32(42), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index aaddd74d94b8..f99a33c74750 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -313,6 +313,7 @@ const XMLPropertyMapEntry aXMLSDPresPageProps[] =
DPMAP( "FillHatchName", XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME, XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
GMAP( "FillBackground", XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID, XML_TYPE_BOOL, 0 ),
DPMAP( "FillBitmapName", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME, XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
+ DPMAP( "FillTransparence", XML_NAMESPACE_DRAW, XML_OPACITY, XML_TYPE_NEG_PERCENT|MID_FLAG_MULTI_PROPERTY, 0 ),
DPMAP( "FillTransparenceGradientName", XML_NAMESPACE_DRAW, XML_OPACITY_NAME, XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
DPMAP( "FillBitmapSizeX", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH, XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
DPMAP( "FillBitmapLogicalSize", XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH, XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),