summaryrefslogtreecommitdiffstats
path: root/sd
diff options
context:
space:
mode:
Diffstat (limited to 'sd')
-rw-r--r--sd/qa/unit/data/odp/tdf80224.odpbin0 -> 23894 bytes
-rw-r--r--sd/qa/unit/export-tests.cxx21
-rw-r--r--sd/source/filter/eppt/epptbase.hxx1
-rw-r--r--sd/source/filter/eppt/pptx-epptbase.cxx4
-rw-r--r--sd/source/filter/eppt/pptx-epptooxml.cxx5
5 files changed, 30 insertions, 1 deletions
diff --git a/sd/qa/unit/data/odp/tdf80224.odp b/sd/qa/unit/data/odp/tdf80224.odp
new file mode 100644
index 000000000000..5712c1a7d7a9
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf80224.odp
Binary files differ
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index 0a8a34267e8c..a90a3de70a89 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -129,6 +129,7 @@ public:
#if !defined WNT
void testBnc822341();
#endif
+ void testTdf80224();
CPPUNIT_TEST_SUITE(SdExportTest);
CPPUNIT_TEST(testFdo90607);
@@ -166,6 +167,7 @@ public:
#if !defined WNT
CPPUNIT_TEST(testBnc822341);
#endif
+ CPPUNIT_TEST(testTdf80224);
CPPUNIT_TEST_SUITE_END();
};
@@ -1240,6 +1242,25 @@ void SdExportTest::testTableCellBorder()
xDocShRef->DoClose();
}
+void SdExportTest::testTdf80224()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/odp/tdf80224.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc( xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage( xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XShape > xShape(xPage->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText();
+ uno::Reference<container::XEnumerationAccess> paraEnumAccess;
+ paraEnumAccess.set(xText, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> paraEnum = paraEnumAccess->createEnumeration();
+ uno::Reference<text::XTextRange> const xParagraph(paraEnum->nextElement(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph->getStart(), uno::UNO_QUERY_THROW );
+ sal_Int32 nCharColor;
+ xPropSet->getPropertyValue("CharColor") >>= nCharColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6644396), nCharColor);
+ xDocShRef->DoClose();
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sd/source/filter/eppt/epptbase.hxx b/sd/source/filter/eppt/epptbase.hxx
index 9180464823dc..99d84cd5bd47 100644
--- a/sd/source/filter/eppt/epptbase.hxx
+++ b/sd/source/filter/eppt/epptbase.hxx
@@ -347,6 +347,7 @@ protected:
OString mType;
bool mbPresObj;
bool mbEmptyPresObj;
+ bool mbIsBackgroundDark;
sal_Int32 mnAngle;
sal_uInt32 mnPages; ///< number of Slides ( w/o master pages & notes & handout )
diff --git a/sd/source/filter/eppt/pptx-epptbase.cxx b/sd/source/filter/eppt/pptx-epptbase.cxx
index 45febb9bb83b..1d58016ab18d 100644
--- a/sd/source/filter/eppt/pptx-epptbase.cxx
+++ b/sd/source/filter/eppt/pptx-epptbase.cxx
@@ -133,6 +133,7 @@ PPTWriterBase::PPTWriterBase()
, mbStatusIndicator(false)
, mbPresObj(false)
, mbEmptyPresObj(false)
+ , mbIsBackgroundDark(false)
, mnAngle(0)
, mnPages(0)
, mnMasterPages(0)
@@ -325,6 +326,9 @@ bool PPTWriterBase::GetPageByIndex( sal_uInt32 nIndex, PageType ePageType )
if ( !mXPagePropSet.is() )
break;
+ if (GetPropertyValue( aAny, mXPagePropSet, OUString("IsBackgroundDark") ) )
+ aAny >>= mbIsBackgroundDark;
+
mXShapes = Reference< XShapes >( mXDrawPage, UNO_QUERY );
if ( !mXShapes.is() )
break;
diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index ff020e054096..e30e7fade81b 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -412,7 +412,9 @@ void PowerPointExport::ImplWriteBackground( FSHelperPtr pFS, Reference< XPropert
pFS->startElementNS( XML_p, XML_bg, FSEND );
pFS->startElementNS( XML_p, XML_bgPr, FSEND );
- PowerPointShapeExport( pFS, &maShapeMap, this ).WriteFill( rXPropSet );
+ PowerPointShapeExport aDML( pFS, &maShapeMap, this );
+ aDML.SetBackgroundDark(mbIsBackgroundDark);
+ aDML.WriteFill( rXPropSet );
pFS->endElementNS( XML_p, XML_bgPr );
pFS->endElementNS( XML_p, XML_bg );
@@ -1706,6 +1708,7 @@ void PowerPointExport::WriteShapeTree( FSHelperPtr pFS, PageType ePageType, bool
PowerPointShapeExport aDML( pFS, &maShapeMap, this );
aDML.SetMaster( bMaster );
aDML.SetPageType( ePageType );
+ aDML.SetBackgroundDark(mbIsBackgroundDark);
sal_uInt32 nShapes;
pFS->startElementNS( XML_p, XML_spTree, FSEND );