src/lib/MSPUBCollector.cpp | 6 +++--- src/lib/MSPUBSVGGenerator.cpp | 35 +++++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 15 deletions(-)
New commits: commit b4c7fe03433a0db5a625e76fa7fa81e4a41f85c6 Author: Franz Schmid <fr...@linux-hp-i7.site> Date: Fri Apr 19 20:49:01 2013 +0200 First Line left indent is signed not unsigned. diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp index 4af4969..a8d55ca 100644 --- a/src/lib/MSPUBCollector.cpp +++ b/src/lib/MSPUBCollector.cpp @@ -1167,8 +1167,8 @@ WPXPropertyList libmspub::MSPUBCollector::getParaStyleProps(const ParagraphStyle defaultStyle.m_spaceAfterEmu.get_value_or(0)); unsigned spaceBeforeEmu = style.m_spaceBeforeEmu.get_value_or( defaultStyle.m_spaceBeforeEmu.get_value_or(0)); - unsigned firstLineIndentEmu = style.m_firstLineIndentEmu.get_value_or( - defaultStyle.m_firstLineIndentEmu.get_value_or(0)); + int firstLineIndentEmu = style.m_firstLineIndentEmu.get_value_or( + defaultStyle.m_firstLineIndentEmu.get_value_or(0)); unsigned leftIndentEmu = style.m_leftIndentEmu.get_value_or( defaultStyle.m_leftIndentEmu.get_value_or(0)); unsigned rightIndentEmu = style.m_rightIndentEmu.get_value_or( commit 826cb95f46f0853bfaec885ca2b9f8b88f036771 Author: Franz Schmid <fr...@linux-hp-i7.site> Date: Wed Apr 17 22:48:01 2013 +0200 Fixed crash when converting files with dashed lines to svg. diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp index 895b736..4af4969 100644 --- a/src/lib/MSPUBCollector.cpp +++ b/src/lib/MSPUBCollector.cpp @@ -743,7 +743,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo graphicsProps.insert("svg:stroke-linecap", "round"); break; case RECT_DOT: - graphicsProps.insert("svg:stroke-linecap", "rect"); + graphicsProps.insert("svg:stroke-linecap", "butt"); break; default: break; diff --git a/src/lib/MSPUBSVGGenerator.cpp b/src/lib/MSPUBSVGGenerator.cpp index 7546230..4b5482f 100644 --- a/src/lib/MSPUBSVGGenerator.cpp +++ b/src/lib/MSPUBSVGGenerator.cpp @@ -546,9 +546,10 @@ void libmspub::MSPUBSVGGenerator::writeStyle(bool /* isClosed */) { m_outputSink << "style=\""; + double width = 1.0 / 72.0; if (m_style["svg:stroke-width"]) { - double width = m_style["svg:stroke-width"]->getDouble(); + width = m_style["svg:stroke-width"]->getDouble(); if (width == 0.0 && m_style["draw:stroke"] && m_style["draw:stroke"]->getStr() != "none") width = 0.2 / 72.0; // reasonable hairline m_outputSink << "stroke-width: " << doubleToString(72*width) << "; "; @@ -562,29 +563,39 @@ void libmspub::MSPUBSVGGenerator::writeStyle(bool /* isClosed */) } if (m_style["draw:stroke"] && m_style["draw:stroke"]->getStr() == "solid") - m_outputSink << "stroke-dasharray: solid; "; - else if (m_style["draw:stroke"] && m_style["draw:stroke"]->getStr() == "dash") + m_outputSink << "stroke-dasharray: none; "; + if (m_style["draw:stroke"] && m_style["draw:stroke"]->getStr() == "dash") { - int dots1 = m_style["draw:dots1"]->getInt(); - int dots2 = m_style["draw:dots2"]->getInt(); - double dots1len = m_style["draw:dots1-length"]->getDouble(); - double dots2len = m_style["draw:dots2-length"]->getDouble(); - double gap = m_style["draw:distance"]->getDouble(); + int dots1 = 0; + if (m_style["draw:dots1"]) + dots1 = m_style["draw:dots1"]->getInt(); + int dots2 = 0; + if (m_style["draw:dots2"]) + dots2 = m_style["draw:dots2"]->getInt(); + double dots1len = width * 72.0; + double dots2len = width * 72.0; + double gap = width * 72.0; + if (m_style["draw:dots1-length"]) + dots1len = m_style["draw:dots1-length"]->getDouble() * 72.0; + if (m_style["draw:dots2-length"]) + dots2len = m_style["draw:dots2-length"]->getDouble() * 72.0; + if (m_style["draw:distance"]) + gap = m_style["draw:distance"]->getDouble() * 72.0; m_outputSink << "stroke-dasharray: "; for (int i = 0; i < dots1; i++) { if (i) m_outputSink << ", "; - m_outputSink << (int)dots1len; + m_outputSink << dots1len; m_outputSink << ", "; - m_outputSink << (int)gap; + m_outputSink << gap; } for (int j = 0; j < dots2; j++) { m_outputSink << ", "; - m_outputSink << (int)dots2len; + m_outputSink << dots2len; m_outputSink << ", "; - m_outputSink << (int)gap; + m_outputSink << gap; } m_outputSink << "; "; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits