[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - oox/source sd/qa

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Feb 5 12:26:05 UTC 2019


 oox/source/export/drawingml.cxx    |    4 +++-
 sd/qa/unit/data/pptx/tdf94238.pptx |binary
 sd/qa/unit/export-tests-ooxml1.cxx |    6 ++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

New commits:
commit b413584fec921a9c12779a277b011cbfabe3f12d
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Tue Feb 5 09:32:35 2019 +0100
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Tue Feb 5 13:25:42 2019 +0100

    oox: disable gradient fill grab-bag for PPTX
    
    This was added in commit 2fcf3a871c94feeca11619ef5c8c0466ce61eb74
    (ooxml: preserve gradient shape fill, 2014-01-31), and assumes that the
    theme colors can be preserved, as the theme definition is grab-bagged as
    well.
    
    But the theme is grab-bagged only for DOCX, not for PPTX, so skip
    gradient grab-bag for PPTX, otherwise the gradient would refer to
    incorrect colors in the theme.
    
    Change-Id: I98e1c67d4b10e68916f81dd7fc508eb4146d506b
    Reviewed-on: https://gerrit.libreoffice.org/67386
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins
    (cherry picked from commit cfc1f4ea4889f768d689a0df71519e9bcb707bc0)
    Reviewed-on: https://gerrit.libreoffice.org/67396
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 9bcf08305afd..78efe5275cfa 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -407,7 +407,9 @@ void DrawingML::WriteGradientFill( const Reference< XPropertySet >& rXPropSet )
         }
 
         // check if an ooxml gradient had been imported and if the user has modified it
-        if( EqualGradients( aOriginalGradient, aGradient ) )
+        // Gradient grab-bag depends on theme grab-bag, which is implemented
+        // only for DOCX.
+        if( EqualGradients( aOriginalGradient, aGradient ) && GetDocumentType() == DOCUMENT_DOCX)
         {
             // If we have no gradient stops that means original gradient were defined by a theme.
             if( aGradientStops.hasElements() )
diff --git a/sd/qa/unit/data/pptx/tdf94238.pptx b/sd/qa/unit/data/pptx/tdf94238.pptx
index cf35ecee8d12..6f61cc5b43f1 100644
Binary files a/sd/qa/unit/data/pptx/tdf94238.pptx and b/sd/qa/unit/data/pptx/tdf94238.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
index 5e961a19b8b1..3e328682f310 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -885,6 +885,12 @@ void SdOOXMLExportTest1::testTdf94238()
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(100), aGradient.YOffset);
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(39), aGradient.Border);
 
+    // Without the accompanying fix in place, this test would have failed with
+    // 'Expected: 0, Actual  : 10592673', i.e. the start color of the gradient
+    // was incorrect.
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aGradient.StartColor);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x8B8B8B), aGradient.EndColor);
+
     xDocShRef->DoClose();
 }
 


More information about the Libreoffice-commits mailing list