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

Aron Budea aron.budea at collabora.com
Wed Dec 20 12:18:05 UTC 2017


 chart2/qa/extras/chart2import.cxx         |   30 ++++++++++++++++++++++++++++++
 chart2/qa/extras/data/pptx/tdf105517.pptx |binary
 oox/source/drawingml/clrscheme.cxx        |    6 +++++-
 3 files changed, 35 insertions(+), 1 deletion(-)

New commits:
commit 1006025df2b6d02ef0762dde227456717d30b1dc
Author: Aron Budea <aron.budea at collabora.com>
Date:   Fri Nov 3 02:08:00 2017 +0100

    tdf#105517: overwrite existing scheme colors in vector
    
    Theme overrides stopped working once ClrScheme::maClrScheme was
    changed to vector, and colors were always appended to it.
    
    Regression from f3121049828596b369e3ea844355d61666e49795.
    
    Reviewed-on: https://gerrit.libreoffice.org/44242
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    (cherry picked from commit 021081823aeebcfa395662d0c04535a243977c2e)
    
    Change-Id: Iae850dcabf57b12d8a564e84acf38d9988cfe963
    Reviewed-on: https://gerrit.libreoffice.org/46845
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    Tested-by: Aron Budea <aron.budea at collabora.com>

diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index ca690298827e..b0f98a642f85 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -63,6 +63,7 @@ public:
     void testFdo54361();
     void testFdo54361_1();
     void testTdf86624(); // manually placed legends
+    void testTdf105517();
     void testTdf106217();
     void testAutoBackgroundXLSX();
     void testChartAreaStyleBackgroundXLSX();
@@ -127,6 +128,7 @@ public:
     CPPUNIT_TEST(testFdo54361);
     CPPUNIT_TEST(testFdo54361_1);
     CPPUNIT_TEST(testTdf86624);
+    CPPUNIT_TEST(testTdf105517);
     CPPUNIT_TEST(testTdf106217);
     CPPUNIT_TEST(testAutoBackgroundXLSX);
     CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX);
@@ -743,6 +745,34 @@ void Chart2ImportTest::testTdf86624()
     CPPUNIT_ASSERT(aPos.Y > 4000); // real value for ms is above 7000
 }
 
+void Chart2ImportTest::testTdf105517()
+{
+    load("/chart2/qa/extras/data/pptx/", "tdf105517.pptx");
+    Reference<chart2::XChartDocument> xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xChartDoc.is());
+
+    Reference<chart2::XCoordinateSystemContainer> xCoordContainer(xChartDoc->getFirstDiagram(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xCoordContainer.is());
+    Reference<chart2::XChartTypeContainer> xChartTypeContainer(xCoordContainer->getCoordinateSystems()[0], uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xChartTypeContainer.is());
+    Reference<chart2::XDataSeriesContainer> xDSContainer(xChartTypeContainer->getChartTypes()[0], uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xDSContainer.is());
+    Reference<beans::XPropertySet> xPropSet1(xDSContainer->getDataSeries()[0], uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xPropSet1.is());
+
+    long lineColor;
+    xPropSet1->getPropertyValue("Color") >>= lineColor;
+    // incorrect line color was 0x4a7ebb due to not handling themeOverride
+    CPPUNIT_ASSERT_EQUAL(lineColor, long(0xeaa700));
+
+    Reference<beans::XPropertySet> xPropSet2(xDSContainer->getDataSeries()[1], uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xPropSet2.is());
+
+    xPropSet2->getPropertyValue("Color") >>= lineColor;
+    // incorrect line color was 0x98b855
+    CPPUNIT_ASSERT_EQUAL(lineColor, long(0x1e69a8));
+}
+
 void Chart2ImportTest::testTdf106217()
 {
     load("/chart2/qa/extras/data/pptx/", "tdf106217.pptx");
diff --git a/chart2/qa/extras/data/pptx/tdf105517.pptx b/chart2/qa/extras/data/pptx/tdf105517.pptx
new file mode 100644
index 000000000000..ff9d747f0349
Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf105517.pptx differ
diff --git a/oox/source/drawingml/clrscheme.cxx b/oox/source/drawingml/clrscheme.cxx
index 2f8e93701e97..f32c1ac0e822 100644
--- a/oox/source/drawingml/clrscheme.cxx
+++ b/oox/source/drawingml/clrscheme.cxx
@@ -82,7 +82,11 @@ bool ClrScheme::getColor( sal_Int32 nSchemeClrToken, sal_Int32& rColor ) const
 
 void ClrScheme::setColor( sal_Int32 nSchemeClrToken, sal_Int32 nColor )
 {
-    maClrScheme.push_back(std::pair<sal_Int32, sal_Int32>(nSchemeClrToken, nColor));
+    const auto aIter = std::find_if(maClrScheme.begin(), maClrScheme.end(), find_by_token(nSchemeClrToken) );
+    if ( aIter != maClrScheme.end() )
+        aIter->second = nColor;
+    else
+        maClrScheme.push_back(std::pair<sal_Int32, sal_Int32>(nSchemeClrToken, nColor));
 }
 
 bool ClrScheme::getColorByIndex(size_t nIndex, sal_Int32& rColor) const


More information about the Libreoffice-commits mailing list