summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndras Timar <andras.timar@collabora.com>2023-12-28 23:29:35 +0100
committerAndras Timar <andras.timar@collabora.com>2023-12-30 10:21:11 +0100
commit2af22206aca7c14e70e40ee248e9a8a361fbc88f (patch)
tree697cd9c049e0a71125023d9584a3e87f6d2d08e9
parente7d32634cfeceea700f24af3176090f4501d534e (diff)
tdf#77915 fix import of default shape fill color
Change-Id: I5f2f5fd4678774b024301aede4be50ad04a22f87 Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/161397 Tested-by: Bartosz Kosiorek <gang65@poczta.onet.pl> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
-rw-r--r--src/lib/VSDStyles.h4
-rw-r--r--src/test/data/blue-box.vsdxbin0 -> 20964 bytes
-rw-r--r--src/test/importtest.cpp12
3 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/VSDStyles.h b/src/lib/VSDStyles.h
index 542b952..93eff0e 100644
--- a/src/lib/VSDStyles.h
+++ b/src/lib/VSDStyles.h
@@ -129,7 +129,9 @@ struct VSDOptionalFillStyle
ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
- ASSIGN_OPTIONAL(style.fgColour, fgColour);
+ // Colour 'Blue, Variant 1' is special. It is the default,
+ // and it is not saved explicitely in the VSDX file.
+ ASSIGN_OPTIONAL(style.fgColour, fgColour);else fgColour = Colour(0x5b, 0x9b, 0xd5, 0);
ASSIGN_OPTIONAL(style.bgColour, bgColour);
ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
}
diff --git a/src/test/data/blue-box.vsdx b/src/test/data/blue-box.vsdx
new file mode 100644
index 0000000..934d037
--- /dev/null
+++ b/src/test/data/blue-box.vsdx
Binary files differ
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 4a26b4a..5192284 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -215,6 +215,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
CPPUNIT_TEST(testVsd11TextfieldsWithUnits);
CPPUNIT_TEST(testBmpFileHeader);
CPPUNIT_TEST(testBmpFileHeader2);
+ CPPUNIT_TEST(testVsdxImportDefaultFillColour);
CPPUNIT_TEST_SUITE_END();
void testVsdxMetadataTitle();
@@ -232,6 +233,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
void testVsd11TextfieldsWithUnits();
void testBmpFileHeader();
void testBmpFileHeader2();
+ void testVsdxImportDefaultFillColour();
xmlBufferPtr m_buffer;
xmlDocPtr m_doc;
@@ -519,6 +521,16 @@ void ImportTest::testBmpFileHeader2()
assertBmpDataOffset(m_doc, "/document/page/layer/drawGraphicObject[1]", 330);
}
+void ImportTest::testVsdxImportDefaultFillColour()
+{
+ // Without the accompanying fix in place, this test would have failed with:
+ // equality assertion failed
+ // - Expected: #5b9bd5
+ // - Actual : #ffffff
+ m_doc = parse("blue-box.vsdx", m_buffer);
+ assertXPath(m_doc, "/document/page/layer[1]//setStyle[2]", "fill-color", "#5b9bd5");
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(ImportTest);
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */