src/lib/VSDParser.cpp | 3 ++- src/test/Makefile.am | 1 + src/test/data/no-bgcolor.vsd |binary src/test/importtest.cpp | 8 ++++++++ 4 files changed, 11 insertions(+), 1 deletion(-)
New commits: commit 079034b8aa1d4b7bd07a81ef46059cdb6b2f4b38 Author: David Tardon <dtar...@redhat.com> Date: Tue Nov 29 15:22:53 2016 +0100 add test for text block with no bg color Change-Id: Ic6177cbea568c80d93774a95a3704077db42f62f diff --git a/src/test/Makefile.am b/src/test/Makefile.am index 48ffaa4..54fbf78 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -27,6 +27,7 @@ EXTRA_DIST = \ data/fdo86729-utf8.vsd \ data/dwg.vsd \ data/dwg.vsdx \ + data/no-bgcolor.vsd \ $(test_SOURCES) # ImportTest::testVsdMetadataTitleUtf8 checks formatted date string diff --git a/src/test/data/no-bgcolor.vsd b/src/test/data/no-bgcolor.vsd new file mode 100644 index 0000000..1bc9c6c Binary files /dev/null and b/src/test/data/no-bgcolor.vsd differ diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp index 32fb185..1cbfc9d 100644 --- a/src/test/importtest.cpp +++ b/src/test/importtest.cpp @@ -163,6 +163,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture #if LIBXML_VERSION >= 20902 CPPUNIT_TEST(testVsdxCharBgColor); #endif + CPPUNIT_TEST(testVsdTextBlockWithoutBgColor); CPPUNIT_TEST_SUITE_END(); void testVsdxMetadataTitle(); @@ -172,6 +173,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture void testVsdxUserDefinedMetadata(); void testVsdxImportBgColorFromTheme(); void testVsdxCharBgColor(); + void testVsdTextBlockWithoutBgColor(); xmlBufferPtr m_buffer; xmlDocPtr m_doc; @@ -286,6 +288,12 @@ void ImportTest::testVsdxCharBgColor() assertXPath(m_doc, "/document/page/layer[3]/textObject/paragraph[2]/span", "background-color", "#9dbb61"); } +void ImportTest::testVsdTextBlockWithoutBgColor() +{ + m_doc = parse("no-bgcolor.vsd", m_buffer); + assertXPathNoAttribute(m_doc, "/document/page/layer[5]/textObject/paragraph[1]/span", "background-color"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ImportTest); /* vim:set shiftwidth=2 softtabstop=2 expandtab: */ commit a3cf2c6d02c29e0a69794ead64dd932fa9e3f24b Author: David Tardon <dtar...@redhat.com> Date: Tue Nov 29 15:05:20 2016 +0100 fix parsing of text block bg color in some cases It appears that if the color index is 0xff, no color should be set. Change-Id: I0dcea16ed5d61292d84e82904b863c1ccafd9d7a diff --git a/src/lib/VSDParser.cpp b/src/lib/VSDParser.cpp index 26b1d9c..680e14b 100644 --- a/src/lib/VSDParser.cpp +++ b/src/lib/VSDParser.cpp @@ -877,7 +877,8 @@ void libvisio::VSDParser::readTextBlock(librevenge::RVNGInputStream *input) input->seek(1, librevenge::RVNG_SEEK_CUR); double bottomMargin = readDouble(input); unsigned char verticalAlign = readU8(input); - bool isBgFilled = (!!readU8(input)); + const unsigned char bgColourIdx = readU8(input); + const bool isBgFilled = bgColourIdx != 0 && bgColourIdx != 0xff; Colour c; c.r = readU8(input); c.g = readU8(input); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits