[Libreoffice-commits] libvisio.git: Branch 'libvisio-0.0' - src/lib
Fridrich Å trba
fridrich.strba at bluewin.ch
Mon Feb 3 04:35:50 PST 2014
src/lib/VSDXParser.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++++
src/lib/VSDXTheme.cpp | 8 +++---
src/lib/tokens.txt | 10 ++++++++
3 files changed, 74 insertions(+), 4 deletions(-)
New commits:
commit 271be232a69d19628a3fd7782176a140d1e92e40
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date: Mon Feb 3 13:32:52 2014 +0100
Parse the quick-style pointers
Change-Id: I2d6b5a72c6c2764793992d1ca6363c831fa425b0
(cherry picked from commit 17843d542375641f707d9737fa77fff5180ec031)
diff --git a/src/lib/VSDXParser.cpp b/src/lib/VSDXParser.cpp
index 730a353..e4dc1b1 100644
--- a/src/lib/VSDXParser.cpp
+++ b/src/lib/VSDXParser.cpp
@@ -852,6 +852,37 @@ void libvisio::VSDXParser::readStyleProperties(xmlTextReaderPtr reader)
if (XML_READER_TYPE_ELEMENT == tokenType)
readCharacter(reader);
break;
+ case XML_QUICKSTYLELINECOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!strokeColour)
+ strokeColour = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
+ case XML_QUICKSTYLEFILLCOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!fillColourFG)
+ fillColourFG = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ if (!fillColourBG)
+ fillColourBG = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
+ case XML_QUICKSTYLESHADOWCOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!shadowColourFG)
+ shadowColourFG = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ if (!shadowColourBG)
+ shadowColourBG = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
default:
break;
}
@@ -1170,6 +1201,35 @@ void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader)
if (XML_READER_TYPE_ELEMENT == tokenType)
ret = readBoolData(m_shape.m_misc.m_hideText, reader);
break;
+ case XML_QUICKSTYLELINECOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!m_shape.m_lineStyle.colour)
+ m_shape.m_lineStyle.colour = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
+ case XML_QUICKSTYLEFILLCOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!m_shape.m_fillStyle.fgColour)
+ m_shape.m_fillStyle.fgColour = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ if (!m_shape.m_fillStyle.bgColour)
+ m_shape.m_fillStyle.bgColour = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
+ case XML_QUICKSTYLESHADOWCOLOR:
+ if (XML_READER_TYPE_ELEMENT == tokenType)
+ {
+ long tmpValue;
+ ret = readLongData(tmpValue, reader);
+ if (!m_shape.m_fillStyle.shadowFgColour)
+ m_shape.m_fillStyle.shadowFgColour = m_currentTheme.getThemeColour((unsigned)tmpValue);
+ }
+ break;
default:
if (XML_SECTION == tokenClass && XML_READER_TYPE_ELEMENT == tokenType)
ret = skipSection(reader);
diff --git a/src/lib/VSDXTheme.cpp b/src/lib/VSDXTheme.cpp
index f2f094d..b67330a 100644
--- a/src/lib/VSDXTheme.cpp
+++ b/src/lib/VSDXTheme.cpp
@@ -170,7 +170,7 @@ void libvisio::VSDXTheme::readClrScheme(xmlTextReaderPtr reader)
tokenType = xmlTextReaderNodeType(reader);
switch (tokenId)
{
- case XML_A_SRGBCLR:
+ case XML_A_DK1:
readThemeColour(reader, tokenId, m_clrScheme.m_dk1);
break;
case XML_A_DK2:
@@ -268,7 +268,7 @@ void libvisio::VSDXTheme::readVariationClrSchemeLst(xmlTextReaderPtr reader)
tokenType = xmlTextReaderNodeType(reader);
switch (tokenId)
{
- case XML_VT_VARIATIONSTYLESCHEME:
+ case XML_VT_VARIATIONCLRSCHEME:
{
VSDXVariationClrScheme varClrSch;
readVariationClrScheme(reader, varClrSch);
@@ -279,7 +279,7 @@ void libvisio::VSDXTheme::readVariationClrSchemeLst(xmlTextReaderPtr reader)
break;
}
}
- while ((XML_VT_VARIATIONSTYLESCHEMELST != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
+ while ((XML_VT_VARIATIONCLRSCHEMELST != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
}
void libvisio::VSDXTheme::readVariationClrScheme(xmlTextReaderPtr reader, VSDXVariationClrScheme &varClrSch)
@@ -323,7 +323,7 @@ void libvisio::VSDXTheme::readVariationClrScheme(xmlTextReaderPtr reader, VSDXVa
break;
}
}
- while ((XML_VT_VARIATIONSTYLESCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
+ while ((XML_VT_VARIATIONCLRSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
}
boost::optional<libvisio::Colour> libvisio::VSDXTheme::getThemeColour(unsigned value, unsigned variationIndex) const
diff --git a/src/lib/tokens.txt b/src/lib/tokens.txt
index 7c4a966..4421b59 100644
--- a/src/lib/tokens.txt
+++ b/src/lib/tokens.txt
@@ -132,6 +132,16 @@ PinY
PolylineTo
Pos
pp
+QuickStyleEffectsMatrix
+QuickStyleFillColor
+QuickStyleFillMatrix
+QuickStyleFontMatrix
+QuickStyleLineColor
+QuickStyleLineMatrix
+QuickStyleShadowColor
+QuickStyleType
+QuickStyleVariation
+QuickStyleShadowColor
Rel
RelCubBezTo
RelEllipticalArcTo
More information about the Libreoffice-commits
mailing list