[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2016-12-12 Thread David Tardon
 src/lib/VSDContentCollector.cpp  |   47 ---
 src/lib/libvisio_utils.h |2 +
 src/test/Makefile.am |2 +
 src/test/data/bitmaps.vsd|binary
 src/test/data/bitmaps2.vsd   |binary
 src/test/importtest.cpp  |   51 +++
 src/test/xmldrawinggenerator.cpp |1 
 7 files changed, 99 insertions(+), 4 deletions(-)

New commits:
commit da0d4a764f0e5862a2ed930b27b9c440ec397b90
Author: David Tardon 
Date:   Mon Dec 12 19:59:22 2016 +0100

add test for correct bmp output

Change-Id: I7443f4408c3733542020aeab3a888baf48a231d1

diff --git a/src/test/Makefile.am b/src/test/Makefile.am
index 54fbf78..7791453 100644
--- a/src/test/Makefile.am
+++ b/src/test/Makefile.am
@@ -21,6 +21,8 @@ test_SOURCES = \
 
 EXTRA_DIST = \
 data/bgcolor.vsdx \
+data/bitmaps.vsd \
+data/bitmaps2.vsd \
 data/color-boxes.vsdx \
 data/fdo86664.vsdx \
 data/fdo86729-ms1252.vsd \
diff --git a/src/test/data/bitmaps.vsd b/src/test/data/bitmaps.vsd
new file mode 100644
index 000..8b14f2e
Binary files /dev/null and b/src/test/data/bitmaps.vsd differ
diff --git a/src/test/data/bitmaps2.vsd b/src/test/data/bitmaps2.vsd
new file mode 100644
index 000..810d30e
Binary files /dev/null and b/src/test/data/bitmaps2.vsd differ
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 1cbfc9d..418551f 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -94,6 +94,21 @@ void assertXPathNoAttribute(xmlDocPtr doc, const 
librevenge::RVNGString ,
   xmlXPathFreeObject(xpathobject);
 }
 
+void assertBmpDataOffset(xmlDocPtr doc, const librevenge::RVNGString , 
const unsigned expectedValue)
+{
+  const librevenge::RVNGBinaryData bitmap(getXPath(doc, xpath, "binary-data"));
+  librevenge::RVNGString message("BMP at '");
+  message.append(xpath);
+  message.append("': wrong data offset.");
+  librevenge::RVNGInputStream *const input = bitmap.getDataStream();
+  CPPUNIT_ASSERT(input);
+  CPPUNIT_ASSERT_EQUAL(0, input->seek(10, librevenge::RVNG_SEEK_SET));
+  unsigned long numBytesRead = 0;
+  const unsigned char *const bytes = input->read(4, numBytesRead);
+  CPPUNIT_ASSERT_EQUAL(4ul, numBytesRead);
+  const unsigned actualValue = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | 
(bytes[3] << 24);
+  CPPUNIT_ASSERT_EQUAL_MESSAGE(message.cstr(), expectedValue, actualValue);
+}
 
 #if 0 // keep for future use
 /// Same as the assertXPathContent(), but don't assert: return the string 
instead.
@@ -164,6 +179,8 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST(testVsdxCharBgColor);
 #endif
   CPPUNIT_TEST(testVsdTextBlockWithoutBgColor);
+  CPPUNIT_TEST(testBmpFileHeader);
+  CPPUNIT_TEST(testBmpFileHeader2);
   CPPUNIT_TEST_SUITE_END();
 
   void testVsdxMetadataTitle();
@@ -174,6 +191,8 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   void testVsdxImportBgColorFromTheme();
   void testVsdxCharBgColor();
   void testVsdTextBlockWithoutBgColor();
+  void testBmpFileHeader();
+  void testBmpFileHeader2();
 
   xmlBufferPtr m_buffer;
   xmlDocPtr m_doc;
@@ -294,6 +313,38 @@ void ImportTest::testVsdTextBlockWithoutBgColor()
   assertXPathNoAttribute(m_doc, 
"/document/page/layer[5]/textObject/paragraph[1]/span", "background-color");
 }
 
+void ImportTest::testBmpFileHeader()
+{
+  m_doc = parse("bitmaps.vsd", m_buffer);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[1]", 62);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[2]", 62);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[3]", 62);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[4]", 118);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[5]", 118);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[6]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[7]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[8]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[9]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[10]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[11]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[12]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[13]", 1078);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[14]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[15]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[16]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[17]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[18]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[19]", 54);
+  assertBmpDataOffset(m_doc, "/document/page/drawGraphicObject[20]", 54);
+}
+

[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2016-11-29 Thread David Tardon
 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 
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 000..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 
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


[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2015-07-21 Thread David Tardon
 src/lib/VSD5Parser.cpp  |   16 
 src/test/importtest.cpp |2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

New commits:
commit 77a88f128700e434c093eb53590be63022edbdea
Author: David Tardon dtar...@redhat.com
Date:   Tue Jul 21 17:35:13 2015 +0200

avoid overflows when reading chunk records

Change-Id: Iea13e63e977348a449b68eca329146ae6f097197

diff --git a/src/lib/VSD5Parser.cpp b/src/lib/VSD5Parser.cpp
index 00cbf06..79b638b 100644
--- a/src/lib/VSD5Parser.cpp
+++ b/src/lib/VSD5Parser.cpp
@@ -102,7 +102,12 @@ void 
libvisio::VSD5Parser::handleChunkRecords(librevenge::RVNGInputStream *input
   long endPosition = input-tell() + m_header.dataLength;
   input-seek(endPosition - 4, librevenge::RVNG_SEEK_SET);
   unsigned numRecords = readU16(input);
+  const long headerPosition = endPosition - 4 * (numRecords + 1);
+  if (headerPosition = startPosition) // no records to read
+return;
   unsigned endOffset = readU16(input);
+  if (long(endOffset)  (headerPosition - startPosition))
+endOffset = unsigned(headerPosition - startPosition); // try to read 
something anyway
   std::mapunsigned, ChunkHeader records;
   input-seek(endPosition-4*(numRecords+1), librevenge::RVNG_SEEK_SET);
   unsigned i = 0;
@@ -114,10 +119,13 @@ void 
libvisio::VSD5Parser::handleChunkRecords(librevenge::RVNGInputStream *input
 unsigned tmpStart = offset;
 while (tmpStart % 4)
   tmpStart++;
-header.dataLength = endOffset - tmpStart;
-header.level = m_header.level + 1;
-records[tmpStart] = header;
-endOffset = offset;
+if (tmpStart  endOffset)
+{
+  header.dataLength = endOffset - tmpStart;
+  header.level = m_header.level + 1;
+  records[tmpStart] = header;
+  endOffset = offset;
+}
   }
   i = 0;
   for (std::mapunsigned, ChunkHeader::iterator iter = records.begin(); iter 
!= records.end(); ++iter)
commit 2bdd7a9bfd1ed1606b7348602196f0a2baf0c099
Author: David Tardon dtar...@redhat.com
Date:   Tue Jul 21 17:35:19 2015 +0200

astyle

Change-Id: I51eebdceb176ae9ded9860010a6b691d0af4cf95

diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 705a8c7..c09bfd8 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -85,7 +85,7 @@ void assertXPathNoAttribute(xmlDocPtr doc, const 
librevenge::RVNGString xpath,
   message2.append(' unexpected ');
   message2.append(attribute);
   message2.append(' attribute);
-  CPPUNIT_ASSERT_EQUAL_MESSAGE(message2.cstr(), static_castxmlChar*(0), 
xmlGetProp(node, BAD_CAST(attribute.cstr(;
+  CPPUNIT_ASSERT_EQUAL_MESSAGE(message2.cstr(), static_castxmlChar *(0), 
xmlGetProp(node, BAD_CAST(attribute.cstr(;
   xmlXPathFreeObject(xpathobject);
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2015-06-30 Thread Andras Timar
 src/lib/VSDXTheme.cpp  |7 +++
 src/test/data/color-boxes.vsdx |binary
 src/test/importtest.cpp|   14 ++
 3 files changed, 21 insertions(+)

New commits:
commit fb715bb8a9154731e1629289cc6d43d7473dc460
Author: Andras Timar andras.ti...@collabora.com
Date:   Mon Jun 29 14:58:44 2015 +0200

unit test of VSDX theme color import fix

Change-Id: I8b1466b83801e61c2d0c1b1a588f9d3867a063d1

diff --git a/src/test/data/color-boxes.vsdx b/src/test/data/color-boxes.vsdx
new file mode 100644
index 000..ef8f6a1
Binary files /dev/null and b/src/test/data/color-boxes.vsdx differ
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 7aba7bc..f7b8972 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -126,6 +126,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST(testVsdMetadataTitleUtf8);
   CPPUNIT_TEST(testVsdUserDefinedMetadata);
   CPPUNIT_TEST(testVsdxUserDefinedMetadata);
+  CPPUNIT_TEST(testVsdxImportBgColorFromTheme);
   CPPUNIT_TEST_SUITE_END();
 
   void testVsdxMetadataTitle();
@@ -133,6 +134,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   void testVsdMetadataTitleUtf8();
   void testVsdUserDefinedMetadata();
   void testVsdxUserDefinedMetadata();
+  void testVsdxImportBgColorFromTheme();
 
   xmlBufferPtr m_buffer;
   xmlDocPtr m_doc;
@@ -224,6 +226,18 @@ void ImportTest::testVsdxUserDefinedMetadata()
   assertXPath(m_doc, /document/setDocumentMetaData, template, 
BASICD_M.VSTX);
 }
 
+void ImportTest::testVsdxImportBgColorFromTheme()
+{
+  m_doc = parse(color-boxes.vsdx, m_buffer);
+  assertXPath(m_doc, /document/page/layer[1]//setStyle[2], fill-color, 
#759fcc);
+  assertXPath(m_doc, /document/page/layer[2]//setStyle[2], fill-color, 
#70ad47);
+  assertXPath(m_doc, /document/page/layer[3]//setStyle[2], fill-color, 
#fec000);
+  assertXPath(m_doc, /document/page/layer[4]//setStyle[2], fill-color, 
#41719c);
+  assertXPath(m_doc, /document/page/layer[5]//setStyle[2], fill-color, 
#ed7d31);
+  assertXPath(m_doc, /document/page/layer[6]//setStyle[2], fill-color, 
#bdd0e9);
+  assertXPath(m_doc, /document/page/layer[7]//setStyle[2], fill-color, 
#5b9bd5);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(ImportTest);
 
 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
commit 5dc37c653ccb25f0353c2665899b1a0d94553745
Author: Andras Timar andras.ti...@collabora.com
Date:   Mon Jun 29 13:22:08 2015 +0200

tdf#92270 VSDX theme color import fix

Change-Id: I4843762646c204d5c898d0f0dea503196a1e414a

diff --git a/src/lib/VSDXTheme.cpp b/src/lib/VSDXTheme.cpp
index 3def5fb..85cf0ac 100644
--- a/src/lib/VSDXTheme.cpp
+++ b/src/lib/VSDXTheme.cpp
@@ -341,18 +341,25 @@ boost::optionallibvisio::Colour 
libvisio::VSDXTheme::getThemeColour(unsigned v
 switch (value)
 {
 case 100:
+case 200:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor1;
 case 101:
+case 201:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor2;
 case 102:
+case 202:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor3;
 case 103:
+case 203:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor4;
 case 104:
+case 204:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor5;
 case 105:
+case 205:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor6;
 case 106:
+case 206:
   return m_clrScheme.m_variationClrSchemeLst[variationIndex].m_varColor7;
 default:
   break;
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2014-12-30 Thread Miklos Vajna
 src/lib/VSDMetaData.cpp  |1 +
 src/lib/VSDXMetaData.cpp |2 ++
 src/lib/tokens.txt   |1 +
 src/test/importtest.cpp  |3 +++
 4 files changed, 7 insertions(+)

New commits:
commit 86ad7206b1d617817ac8699db740b613f3ed19a2
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Tue Dec 30 22:18:33 2014 +0100

VSD: Visio doesn't write separate author and last modifier fields

So author always equals to the last modifier. This is consistent with
how the single timestamp is imported both as a creation and modification
time, too.

Change-Id: I65233316f412166dfd82c720c830cf625e1275b5

diff --git a/src/lib/VSDMetaData.cpp b/src/lib/VSDMetaData.cpp
index 0288392..d1db01e 100644
--- a/src/lib/VSDMetaData.cpp
+++ b/src/lib/VSDMetaData.cpp
@@ -129,6 +129,7 @@ void 
libvisio::VSDMetaData::readTypedPropertyValue(librevenge::RVNGInputStream *
 break;
   case PIDSI_AUTHOR:
 m_metaData.insert(meta:initial-creator, string);
+m_metaData.insert(dc:creator, string);
 break;
   case PIDSI_KEYWORDS:
 m_metaData.insert(meta:keyword, string);
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index a69bcef..85a7175 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -158,6 +158,8 @@ void ImportTest::testVsdMetadataTitleMs1252()
 
   assertXPath(m_doc, /document/setDocumentMetaData, subject, mysubject);
   assertXPath(m_doc, /document/setDocumentMetaData, initial-creator, 
vmiklos creator);
+  // There is only one author/last-modifier field in the file, so make sure 
creator is the same as initial-creator.
+  assertXPath(m_doc, /document/setDocumentMetaData, creator, vmiklos 
creator);
   assertXPath(m_doc, /document/setDocumentMetaData, keyword, mytag);
   assertXPath(m_doc, /document/setDocumentMetaData, description, 
mycomment);
 }
commit 9cbe861b8f5e53a0aa83b863b1bf42224139dcfc
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Tue Dec 30 22:15:29 2014 +0100

VSDX: import lastModifiedBy

Change-Id: I5136c53cbca0b3dc1300e49bf82f290d8ff86ed8

diff --git a/src/lib/VSDXMetaData.cpp b/src/lib/VSDXMetaData.cpp
index 7a0ff83..fd38811 100644
--- a/src/lib/VSDXMetaData.cpp
+++ b/src/lib/VSDXMetaData.cpp
@@ -77,6 +77,8 @@ void 
libvisio::VSDXMetaData::readCoreProperties(xmlTextReaderPtr reader)
   m_metaData.insert(meta:keyword, readString(reader, XML_CP_KEYWORDS));
 case XML_DC_DESCRIPTION:
   m_metaData.insert(dc:description, readString(reader, 
XML_DC_DESCRIPTION));
+case XML_CP_LASTMODIFIEDBY:
+  m_metaData.insert(dc:creator, readString(reader, 
XML_CP_LASTMODIFIEDBY));
 default:
   break;
 }
diff --git a/src/lib/tokens.txt b/src/lib/tokens.txt
index 617fb1a..2d0022b 100644
--- a/src/lib/tokens.txt
+++ b/src/lib/tokens.txt
@@ -234,3 +234,4 @@ dc:title
 dcterms:created
 dcterms:modified
 dc:description
+cp:lastModifiedBy
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index bb3388e..a69bcef 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -147,6 +147,7 @@ void ImportTest::testVsdxMetadataTitle()
   assertXPath(m_doc, /document/setDocumentMetaData, date, 
2014-11-24T10:41:22Z);
   assertXPath(m_doc, /document/setDocumentMetaData, keyword, mytag);
   assertXPath(m_doc, /document/setDocumentMetaData, description, 
mycomment);
+  assertXPath(m_doc, /document/setDocumentMetaData, creator, vmiklos 
modifier);
 }
 
 void ImportTest::testVsdMetadataTitleMs1252()
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2014-12-28 Thread Miklos Vajna
 src/lib/VSDMetaData.cpp  |4 
 src/lib/VSDXMetaData.cpp |   22 ++
 src/test/importtest.cpp  |1 +
 3 files changed, 15 insertions(+), 12 deletions(-)

New commits:
commit 443227148dcbf4314369e1941e910f3b64290315
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Sun Dec 28 11:51:43 2014 +0100

VSDXMetaData: check token type at a single place

Change-Id: I0318d619a71b0785e2752a363a68f4db0b3acc0e

diff --git a/src/lib/VSDXMetaData.cpp b/src/lib/VSDXMetaData.cpp
index 72435bb..1ce1dcd 100644
--- a/src/lib/VSDXMetaData.cpp
+++ b/src/lib/VSDXMetaData.cpp
@@ -52,31 +52,29 @@ void 
libvisio::VSDXMetaData::readCoreProperties(xmlTextReaderPtr reader)
   VSD_DEBUG_MSG((VSDXMetaData::readCoreProperties: unknown token %s\n, 
xmlTextReaderConstName(reader)));
 }
 tokenType = xmlTextReaderNodeType(reader);
+
+if (tokenType != XML_READER_TYPE_ELEMENT)
+  continue;
+
 switch (tokenId)
 {
 case XML_DC_TITLE:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(dc:title, readString(reader, XML_DC_TITLE));
+  m_metaData.insert(dc:title, readString(reader, XML_DC_TITLE));
   break;
 case XML_DC_SUBJECT:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(dc:subject, readString(reader, XML_DC_SUBJECT));
+  m_metaData.insert(dc:subject, readString(reader, XML_DC_SUBJECT));
   break;
 case XML_DC_CREATOR:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(meta:initial-creator, readString(reader, 
XML_DC_CREATOR));
+  m_metaData.insert(meta:initial-creator, readString(reader, 
XML_DC_CREATOR));
   break;
 case XML_DCTERMS_CREATED:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(meta:creation-date, readString(reader, 
XML_DCTERMS_CREATED));
+  m_metaData.insert(meta:creation-date, readString(reader, 
XML_DCTERMS_CREATED));
   break;
 case XML_DCTERMS_MODIFIED:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(dc:date, readString(reader, XML_DCTERMS_MODIFIED));
+  m_metaData.insert(dc:date, readString(reader, XML_DCTERMS_MODIFIED));
   break;
 case XML_CP_KEYWORDS:
-  if (tokenType == XML_READER_TYPE_ELEMENT)
-m_metaData.insert(meta:keyword, readString(reader, XML_CP_KEYWORDS));
+  m_metaData.insert(meta:keyword, readString(reader, XML_CP_KEYWORDS));
 default:
   break;
 }
commit 70e2cbc27a37d84c10e60438ed143a0cd391c796
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Sun Dec 28 11:51:38 2014 +0100

VSD: import keywords

Change-Id: I1896afdcbec2cb3177f053558b2a6668529bd85e

diff --git a/src/lib/VSDMetaData.cpp b/src/lib/VSDMetaData.cpp
index f1026fc..44e6f62 100644
--- a/src/lib/VSDMetaData.cpp
+++ b/src/lib/VSDMetaData.cpp
@@ -96,6 +96,7 @@ void 
libvisio::VSDMetaData::readPropertyIdentifierAndOffset(librevenge::RVNGInpu
 #define PIDSI_TITLE 0x0002
 #define PIDSI_SUBJECT 0x0003
 #define PIDSI_AUTHOR 0x0004
+#define PIDSI_KEYWORDS 0x0005
 
 void libvisio::VSDMetaData::readTypedPropertyValue(librevenge::RVNGInputStream 
*input, uint32_t index, uint32_t offset)
 {
@@ -128,6 +129,9 @@ void 
libvisio::VSDMetaData::readTypedPropertyValue(librevenge::RVNGInputStream *
   case PIDSI_AUTHOR:
 m_metaData.insert(meta:initial-creator, string);
 break;
+  case PIDSI_KEYWORDS:
+m_metaData.insert(meta:keyword, string);
+break;
   }
 }
   }
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 274a36f..7aa8336 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -156,6 +156,7 @@ void ImportTest::testVsdMetadataTitleMs1252()
 
   assertXPath(m_doc, /document/setDocumentMetaData, subject, mysubject);
   assertXPath(m_doc, /document/setDocumentMetaData, initial-creator, 
vmiklos creator);
+  assertXPath(m_doc, /document/setDocumentMetaData, keyword, mytag);
 }
 
 void ImportTest::testVsdMetadataTitleUtf8()
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libvisio.git: 2 commits - src/lib src/test

2014-12-28 Thread Miklos Vajna
 src/lib/VSDMetaData.cpp  |4 
 src/lib/VSDXMetaData.cpp |2 ++
 src/lib/tokens.txt   |1 +
 src/test/importtest.cpp  |2 ++
 4 files changed, 9 insertions(+)

New commits:
commit d4684217ee9dd48e3352430e6d869824642f4082
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Sun Dec 28 14:13:39 2014 +0100

VSD: import description

Change-Id: I33b47f4ee903f9f4d07383df0552284de7401d7b

diff --git a/src/lib/VSDMetaData.cpp b/src/lib/VSDMetaData.cpp
index 44e6f62..0288392 100644
--- a/src/lib/VSDMetaData.cpp
+++ b/src/lib/VSDMetaData.cpp
@@ -97,6 +97,7 @@ void 
libvisio::VSDMetaData::readPropertyIdentifierAndOffset(librevenge::RVNGInpu
 #define PIDSI_SUBJECT 0x0003
 #define PIDSI_AUTHOR 0x0004
 #define PIDSI_KEYWORDS 0x0005
+#define PIDSI_COMMENTS 0x0006
 
 void libvisio::VSDMetaData::readTypedPropertyValue(librevenge::RVNGInputStream 
*input, uint32_t index, uint32_t offset)
 {
@@ -132,6 +133,9 @@ void 
libvisio::VSDMetaData::readTypedPropertyValue(librevenge::RVNGInputStream *
   case PIDSI_KEYWORDS:
 m_metaData.insert(meta:keyword, string);
 break;
+  case PIDSI_COMMENTS:
+m_metaData.insert(dc:description, string);
+break;
   }
 }
   }
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 41f2b0c..bb3388e 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -158,6 +158,7 @@ void ImportTest::testVsdMetadataTitleMs1252()
   assertXPath(m_doc, /document/setDocumentMetaData, subject, mysubject);
   assertXPath(m_doc, /document/setDocumentMetaData, initial-creator, 
vmiklos creator);
   assertXPath(m_doc, /document/setDocumentMetaData, keyword, mytag);
+  assertXPath(m_doc, /document/setDocumentMetaData, description, 
mycomment);
 }
 
 void ImportTest::testVsdMetadataTitleUtf8()
commit db443edcc59a9d48395e25f04a4c380d15877e4e
Author: Miklos Vajna vmik...@collabora.co.uk
Date:   Sun Dec 28 14:10:03 2014 +0100

VSDX: import description

Change-Id: I5e9e6fd793bb44c954e8255e70952badfb442d57

diff --git a/src/lib/VSDXMetaData.cpp b/src/lib/VSDXMetaData.cpp
index 1ce1dcd..7a0ff83 100644
--- a/src/lib/VSDXMetaData.cpp
+++ b/src/lib/VSDXMetaData.cpp
@@ -75,6 +75,8 @@ void 
libvisio::VSDXMetaData::readCoreProperties(xmlTextReaderPtr reader)
   break;
 case XML_CP_KEYWORDS:
   m_metaData.insert(meta:keyword, readString(reader, XML_CP_KEYWORDS));
+case XML_DC_DESCRIPTION:
+  m_metaData.insert(dc:description, readString(reader, 
XML_DC_DESCRIPTION));
 default:
   break;
 }
diff --git a/src/lib/tokens.txt b/src/lib/tokens.txt
index d4ad31d..617fb1a 100644
--- a/src/lib/tokens.txt
+++ b/src/lib/tokens.txt
@@ -233,3 +233,4 @@ dc:subject
 dc:title
 dcterms:created
 dcterms:modified
+dc:description
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 7aa8336..41f2b0c 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -146,6 +146,7 @@ void ImportTest::testVsdxMetadataTitle()
   assertXPath(m_doc, /document/setDocumentMetaData, creation-date, 
2014-11-24T10:35:17Z);
   assertXPath(m_doc, /document/setDocumentMetaData, date, 
2014-11-24T10:41:22Z);
   assertXPath(m_doc, /document/setDocumentMetaData, keyword, mytag);
+  assertXPath(m_doc, /document/setDocumentMetaData, description, 
mycomment);
 }
 
 void ImportTest::testVsdMetadataTitleMs1252()
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits