src/lib/VSDStyles.h | 4 +++- src/test/data/blue-box.vsdx |binary src/test/importtest.cpp | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-)
New commits: commit 2af22206aca7c14e70e40ee248e9a8a361fbc88f Author: Andras Timar <[email protected]> AuthorDate: Thu Dec 28 23:29:35 2023 +0100 Commit: Andras Timar <[email protected]> CommitDate: Sat Dec 30 10:21:11 2023 +0100 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 <[email protected]> Reviewed-by: Bartosz Kosiorek <[email protected]> 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 Binary files /dev/null and b/src/test/data/blue-box.vsdx 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: */
