oox/source/export/drawingml.cxx    |   16 ++++++++++++++++
 sd/qa/unit/data/odp/tdf128096.odp  |binary
 sd/qa/unit/export-tests-ooxml2.cxx |   16 ++++++++++++++++
 3 files changed, 32 insertions(+)

New commits:
commit 63fff549e05e6007d9692996274982afeb34cd7f
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Fri Oct 11 17:43:46 2019 +0200
Commit:     Tamás Zolnai <tamas.zol...@collabora.com>
CommitDate: Tue Oct 15 11:21:50 2019 +0200

    tdf#128096: pptx: export highlight
    
    Reviewed-on: https://gerrit.libreoffice.org/80670
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org>
    (cherry picked from commit 3e0811660ba4cecd0ab27918c27a5ddab47cc5c5)
    
    Change-Id: If3084f7ffaceb774dba1b1f195229313a8f1d04a
    Reviewed-on: https://gerrit.libreoffice.org/80740
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index de0c65cbcd8d..2d7b300e51e3 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1839,6 +1839,22 @@ void DrawingML::WriteRunProperties( const Reference< 
XPropertySet >& rRun, bool
         }
     }
 
+    // tdf#128096, exporting XML_highlight to docx already works fine,
+    // so make sure this code is only run when exporting to pptx, just in case
+    if (GetDocumentType() == DOCUMENT_PPTX)
+    {
+        if (GetProperty(rXPropSet, "CharBackColor"))
+        {
+            ::Color color(*o3tl::doAccess<sal_uInt32>(mAny));
+            if( color != COL_AUTO )
+            {
+                mpFS->startElementNS(XML_a, XML_highlight);
+                WriteColor( color );
+                mpFS->endElementNS( XML_a, XML_highlight );
+            }
+        }
+    }
+
     if (underline
         && ((bCheckDirect
              && GetPropertyAndState(rXPropSet, rXPropState, 
"CharUnderlineColor", eState)
diff --git a/sd/qa/unit/data/odp/tdf128096.odp 
b/sd/qa/unit/data/odp/tdf128096.odp
new file mode 100644
index 000000000000..827239973c84
Binary files /dev/null and b/sd/qa/unit/data/odp/tdf128096.odp differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx 
b/sd/qa/unit/export-tests-ooxml2.cxx
index 6d29d075c62d..239a362514d9 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -195,6 +195,7 @@ public:
     void testTdf118768();
     void testTdf118836();
     void testTdf116350TextEffects();
+    void testTdf128096();
     void testTdf120573();
     void testTdf118825();
     void testTdf119118();
@@ -286,6 +287,7 @@ public:
     CPPUNIT_TEST(testTdf118768);
     CPPUNIT_TEST(testTdf118836);
     CPPUNIT_TEST(testTdf116350TextEffects);
+    CPPUNIT_TEST(testTdf128096);
     CPPUNIT_TEST(testTdf120573);
     CPPUNIT_TEST(testTdf118825);
     CPPUNIT_TEST(testTdf119118);
@@ -2060,6 +2062,20 @@ void SdOOXMLExportTest2::testTdf116350TextEffects()
     xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest2::testTdf128096()
+{
+    ::sd::DrawDocShellRef xDocShRef = 
loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128096.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocPtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent1, 
"//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", 
"val", "ffff00");
+
+    // Check that underlined content is also highlighted
+    xmlDocPtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+    assertXPath(pXmlDocContent2, 
"//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", 
"val", "ffff00");
+}
 void SdOOXMLExportTest2::testTdf120573()
 {
     ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( 
"sd/qa/unit/data/pptx/tdf120573.pptx" ), PPTX );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to