src/lib/MSPUBCollector.cpp | 53 +++++++++++++++++++-------------------------- src/lib/MSPUBCollector.h | 2 - src/lib/MSPUBParser.cpp | 15 +++++------- src/lib/MSPUBParser2k.cpp | 2 - src/lib/MSPUBParser97.cpp | 2 - src/lib/PolygonUtils.cpp | 14 +++++------ src/lib/ShapeInfo.h | 7 ++--- 7 files changed, 43 insertions(+), 52 deletions(-)
New commits: commit 45093bd820c2e7863aebed9b106488021a641061 Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Tue Apr 16 09:25:20 2013 +0200 *.is_initialized() -> status diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp index 36f51ca..895b736 100644 --- a/src/lib/MSPUBCollector.cpp +++ b/src/lib/MSPUBCollector.cpp @@ -333,7 +333,7 @@ std::vector<int> libmspub::MSPUBCollector::getShapeAdjustValues(const ShapeInfo boost::optional<std::vector<libmspub::TextParagraph> > libmspub::MSPUBCollector::getShapeText(const ShapeInfo &info) const { - if (info.m_textId.is_initialized()) + if (!!info.m_textId) { unsigned stringId = info.m_textId.get(); const std::vector<TextParagraph> *ptr_str = getIfExists_const(m_textStringsById, stringId); @@ -350,11 +350,11 @@ void libmspub::MSPUBCollector::setupShapeStructures(ShapeGroupElement &elt) ShapeInfo *ptr_info = getIfExists(m_shapeInfosBySeqNum, elt.getSeqNum()); if (ptr_info) { - if (ptr_info->m_imgIndex.is_initialized()) + if (!!ptr_info->m_imgIndex) { unsigned index = ptr_info->m_imgIndex.get(); int rot = 0; - if (ptr_info->m_innerRotation.is_initialized()) + if (!!ptr_info->m_innerRotation) rot = ptr_info->m_innerRotation.get(); if (index - 1 < m_images.size()) { @@ -390,7 +390,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo bool hasStroke = false; bool hasBorderArt = false; boost::optional<unsigned> maybeBorderImg = info.m_borderImgIndex; - if (maybeBorderImg.is_initialized() && !info.m_lines.empty()) + if (!!maybeBorderImg && !info.m_lines.empty()) { hasStroke = true; hasBorderArt = true; @@ -409,7 +409,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo WPXString fill = graphicsProps["draw:fill"] ? graphicsProps["draw:fill"]->getStr() : "none"; bool hasFill = fill != "none"; boost::optional<std::vector<TextParagraph> > maybeText = getShapeText(info); - bool hasText = maybeText.is_initialized(); + bool hasText = !!maybeText; bool makeLayer = hasBorderArt || (hasStroke && hasFill) || (hasStroke && hasText) || (hasFill && hasText); if (makeLayer) @@ -432,7 +432,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo BorderPosition borderPosition = hasBorderArt ? INSIDE_SHAPE : info.m_borderPosition.get_value_or(HALF_INSIDE_SHAPE); ShapeType type; - if (info.m_cropType.is_initialized()) + if (!!info.m_cropType) { type = info.m_cropType.get(); } @@ -460,7 +460,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo width -= 2 * borderImgWidth; } } - if (info.m_pictureRecolor.is_initialized()) + if (!!info.m_pictureRecolor) { Color obc = info.m_pictureRecolor.get().getFinalColor(m_paletteColors); graphicsProps.insert("draw:color-mode", "greyscale"); @@ -472,7 +472,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo static_cast<double>(obc.g) / 255.0, WPX_PERCENT); } bool shadowPropsInserted = false; - if (info.m_shadow.is_initialized()) + if (!!info.m_shadow) { const Shadow &s = info.m_shadow.get(); if (!needsEmulation(s)) @@ -496,7 +496,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo writeCustomShape(type, graphicsProps, m_painter, x, y, height, width, true, foldedTransform, std::vector<Line>(), boost::bind(&libmspub::MSPUBCollector::getCalculationValue, this, info, _1, false, adjustValues), m_paletteColors, info.getCustomShape()); - if (info.m_pictureRecolor.is_initialized()) + if (!!info.m_pictureRecolor) { graphicsProps.remove("draw:color-mode"); graphicsProps.remove("draw:red"); @@ -581,7 +581,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo m_painter->drawRectangle(leftRectProps); std::vector<unsigned>::const_iterator iOffset = ba.m_offsets.begin(); boost::optional<Color> oneBitColor; - if (info.m_lineBackColor.is_initialized()) + if (!!info.m_lineBackColor) { oneBitColor = info.m_lineBackColor.get().getFinalColor(m_paletteColors); } @@ -732,7 +732,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo height = strokeCoord.getHeightIn(); width = strokeCoord.getWidthIn(); graphicsProps.insert("draw:fill", "none"); - if (info.m_dash.is_initialized() && !info.m_dash.get().m_dots.empty()) + if (!!info.m_dash && !info.m_dash.get().m_dots.empty()) { const Dash &dash = info.m_dash.get(); graphicsProps.insert("draw:stroke", "dash"); @@ -753,7 +753,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo WPXString dots; dots.sprintf("draw:dots%d", i + 1); graphicsProps.insert(dots.cstr(), static_cast<int>(dash.m_dots[i].m_count)); - if (dash.m_dots[i].m_length.is_initialized()) + if (!!dash.m_dots[i].m_length) { WPXString length; length.sprintf("draw:dots%d-length", i + 1); @@ -793,7 +793,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo props.insert("fo:padding-top", (double)margins.m_top / EMUS_IN_INCH); props.insert("fo:padding-right", (double)margins.m_right / EMUS_IN_INCH); props.insert("fo:padding-bottom", (double)margins.m_bottom / EMUS_IN_INCH); - if(info.m_verticalAlign.is_initialized()) + if(!!info.m_verticalAlign) { switch (info.m_verticalAlign.get()) { @@ -837,7 +837,7 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo const char *libmspub::MSPUBCollector::getCalculatedEncoding() const { - if (m_calculatedEncoding.is_initialized()) + if (!!m_calculatedEncoding) { return m_calculatedEncoding.get(); } @@ -908,7 +908,7 @@ void libmspub::MSPUBCollector::writeImage(double x, double y, boost::optional<Color> oneBitColor) const { WPXPropertyList props; - if (oneBitColor.is_initialized()) + if (!!oneBitColor) { Color obc = oneBitColor.get(); props.insert("draw:color-mode", "greyscale"); @@ -1128,7 +1128,7 @@ void libmspub::MSPUBCollector::addFont(std::vector<unsigned char> name) WPXPropertyList libmspub::MSPUBCollector::getParaStyleProps(const ParagraphStyle &style, boost::optional<unsigned> defaultParaStyleIndex) const { ParagraphStyle _nothing; - const ParagraphStyle &defaultStyle = defaultParaStyleIndex.is_initialized() && defaultParaStyleIndex.get() < m_defaultParaStyles.size() ? m_defaultParaStyles[defaultParaStyleIndex.get()] : _nothing; + const ParagraphStyle &defaultStyle = !!defaultParaStyleIndex && defaultParaStyleIndex.get() < m_defaultParaStyles.size() ? m_defaultParaStyles[defaultParaStyleIndex.get()] : _nothing; WPXPropertyList ret; Alignment align = style.m_align.get_value_or( defaultStyle.m_align.get_value_or(LEFT)); @@ -1199,7 +1199,7 @@ WPXPropertyList libmspub::MSPUBCollector::getParaStyleProps(const ParagraphStyle WPXPropertyList libmspub::MSPUBCollector::getCharStyleProps(const CharacterStyle &style, boost::optional<unsigned> defaultCharStyleIndex) const { CharacterStyle _nothing = CharacterStyle(false, false, false); - if (!defaultCharStyleIndex.is_initialized()) + if (!defaultCharStyleIndex) { defaultCharStyleIndex = 0; } @@ -1217,11 +1217,11 @@ WPXPropertyList libmspub::MSPUBCollector::getCharStyleProps(const CharacterStyle { ret.insert("style:text-underline-type", "single"); } - if (style.textSizeInPt.is_initialized()) + if (!!style.textSizeInPt) { ret.insert("fo:font-size", style.textSizeInPt.get() / POINTS_IN_INCH); } - else if (defaultCharStyle.textSizeInPt.is_initialized()) + else if (!!defaultCharStyle.textSizeInPt) { ret.insert("fo:font-size", defaultCharStyle.textSizeInPt.get() / POINTS_IN_INCH); @@ -1238,7 +1238,7 @@ WPXPropertyList libmspub::MSPUBCollector::getCharStyleProps(const CharacterStyle { ret.insert("fo:color", getColorString(Color(0, 0, 0))); // default color is black } - if (style.fontIndex.is_initialized() && + if (!!style.fontIndex && style.fontIndex.get() < m_fonts.size()) { WPXString str; @@ -1246,7 +1246,7 @@ WPXPropertyList libmspub::MSPUBCollector::getCharStyleProps(const CharacterStyle getCalculatedEncoding()); ret.insert("style:font-name", str); } - else if (defaultCharStyle.fontIndex.is_initialized() && + else if (!!defaultCharStyle.fontIndex && defaultCharStyle.fontIndex.get() < m_fonts.size()) { WPXString str; @@ -1336,7 +1336,7 @@ void libmspub::MSPUBCollector::writePage(unsigned pageSeqNum) const { m_painter->startGraphics(pageProps); boost::optional<unsigned> masterSeqNum = getMasterPageSeqNum(pageSeqNum); - bool hasMaster = masterSeqNum.is_initialized(); + bool hasMaster = !!masterSeqNum; if (hasMaster) { writePageBackground(masterSeqNum.get()); diff --git a/src/lib/MSPUBParser.cpp b/src/lib/MSPUBParser.cpp index 50334d3..412dc5f 100644 --- a/src/lib/MSPUBParser.cpp +++ b/src/lib/MSPUBParser.cpp @@ -358,7 +358,7 @@ bool libmspub::MSPUBParser::parseContents(WPXInputStream *input) { m_contentChunks.back().end = trailerPart.dataOffset + trailerPart.dataLength; } - if (!m_documentChunkIndex.is_initialized()) + if (!m_documentChunkIndex) { return false; } @@ -504,7 +504,7 @@ bool libmspub::MSPUBParser::parseFontChunk( eotOffset = subSubInfo.dataOffset; } } - if (name.is_initialized() && eotOffset.is_initialized()) + if (!!name && !!eotOffset) { input->seek(eotOffset.get(), WPX_SEEK_SET); MSPUBBlockInfo eotRecord = parseBlock(input, true); @@ -690,8 +690,7 @@ bool libmspub::MSPUBParser::parseShape(WPXInputStream *input, rowcolArrayOffset = info.dataOffset; } } - if (cellsSeqNum.is_initialized() && numRows.is_initialized() && - numCols.is_initialized() && rowcolArrayOffset.is_initialized()) + if (!!cellsSeqNum && !!numRows && !!numCols && !!rowcolArrayOffset) { unsigned nr = numRows.get(); unsigned nc = numCols.get(); @@ -749,7 +748,7 @@ bool libmspub::MSPUBParser::parseShape(WPXInputStream *input, break; } } - if (!index.is_initialized()) + if (!index) { MSPUB_DEBUG_MSG(("WARNING: Couldn't find cells of seqnum %u corresponding to table of seqnum %d.\n", csn, chunk.seqNum)); @@ -1511,7 +1510,7 @@ void libmspub::MSPUBParser::parseEscherShape(WPXInputStream *input, const Escher { maybe_tertiaryFoptValues = extractEscherValues(input, cTertiaryFopt); } - if (maybe_tertiaryFoptValues.is_initialized()) + if (!!maybe_tertiaryFoptValues) { const std::map<unsigned short, unsigned> &tertiaryFoptValues = maybe_tertiaryFoptValues.get(); @@ -1567,7 +1566,7 @@ void libmspub::MSPUBParser::parseEscherShape(WPXInputStream *input, const Escher } else { - if (maybe_tertiaryFoptValues.is_initialized()) + if (!!maybe_tertiaryFoptValues) { std::map<unsigned short, unsigned> &tertiaryFoptValues = maybe_tertiaryFoptValues.get(); @@ -1771,9 +1770,9 @@ void libmspub::MSPUBParser::parseEscherShape(WPXInputStream *input, const Escher if (!wrapVertexData.empty()) { std::vector<libmspub::Vertex> ret = parseVertices(wrapVertexData); - m_collector->setShapeClipPath(*shapeSeqNum, ret); + m_collector->setShapeClipPath(*shapeSeqNum, ret); MSPUB_DEBUG_MSG(("Current Escher shape has wrap Path\n")); - } + } } if (foundAnchor) { diff --git a/src/lib/MSPUBParser2k.cpp b/src/lib/MSPUBParser2k.cpp index 04fda00..f9ecd9d 100644 --- a/src/lib/MSPUBParser2k.cpp +++ b/src/lib/MSPUBParser2k.cpp @@ -464,7 +464,7 @@ bool libmspub::MSPUBParser2k::parseContents(WPXInputStream *input) bool libmspub::MSPUBParser2k::parseDocument(WPXInputStream *input) { - if (m_documentChunkIndex.is_initialized()) + if (!!m_documentChunkIndex) { input->seek(m_contentChunks[m_documentChunkIndex.get()].offset, WPX_SEEK_SET); input->seek(0x14, WPX_SEEK_CUR); diff --git a/src/lib/MSPUBParser97.cpp b/src/lib/MSPUBParser97.cpp index b2bd872..27c0e15 100644 --- a/src/lib/MSPUBParser97.cpp +++ b/src/lib/MSPUBParser97.cpp @@ -66,7 +66,7 @@ bool libmspub::MSPUBParser97::parse() bool libmspub::MSPUBParser97::parseDocument(WPXInputStream *input) { - if (m_documentChunkIndex.is_initialized()) + if (!!m_documentChunkIndex) { input->seek(m_contentChunks[m_documentChunkIndex.get()].offset + 0x12, WPX_SEEK_SET); unsigned short coordinateSystemMark = readU16(input); diff --git a/src/lib/PolygonUtils.cpp b/src/lib/PolygonUtils.cpp index df72a16..29baf5a 100644 --- a/src/lib/PolygonUtils.cpp +++ b/src/lib/PolygonUtils.cpp @@ -6030,9 +6030,9 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr bool modifier = cmd.m_command == ELLIPTICALQUADRANTX ? true : false; const Vertex &curr = shape->mp_vertices[vertexIndex]; Vector2D curr2D(x + scaleX * getSpecialIfNecessary(calculator, curr.m_x), y + scaleY * getSpecialIfNecessary(calculator, curr.m_y)); - if (lastPoint.is_initialized()) + if (!!lastPoint) { - if (!pathBegin.is_initialized()) + if (!pathBegin) { pathBegin = curr2D; } @@ -6166,7 +6166,7 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr getRayEllipseIntersection(startX, startY, rx, ry, cx, cy, startX, startY); getRayEllipseIntersection(endX, endY, rx, ry, cx, cy, endX, endY); Vector2D start2D(startX, startY); - if (!pathBegin.is_initialized()) + if (!pathBegin) { pathBegin = start2D; } @@ -6225,7 +6225,7 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr WPXPropertyList moveVertex; Vector2D start(cx + rx * cos(startAngle * M_PI / 180), cy + ry * sin(startAngle * M_PI / 180)); - if (!pathBegin.is_initialized()) + if (!pathBegin) { pathBegin = start; } @@ -6328,7 +6328,7 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr case CLOSESUBPATH: { MSPUB_DEBUG_MSG(("CLOSESUBPATH\n")); - if (!pathBegin.is_initialized()) + if (!pathBegin) { MSPUB_DEBUG_MSG(("Tried to close a subpath that hadn't yet begun!\n")); } @@ -6352,7 +6352,7 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr //intentionally no break case ENDSUBPATH: MSPUB_DEBUG_MSG(("ENDSUBPATH\n")); - if (closeEverything && pathBegin.is_initialized()) + if (closeEverything && !!pathBegin) { WPXPropertyList end; end.insert("libwpg:path-action", "Z"); @@ -6373,7 +6373,7 @@ void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsPr } if (hasUnclosedElements && closeEverything) { - if (pathBegin.is_initialized()) + if (!!pathBegin) { WPXPropertyList end; end.insert("libwpg:path-action", "Z"); diff --git a/src/lib/ShapeInfo.h b/src/lib/ShapeInfo.h index 9bbac5c..1604ee5 100644 --- a/src/lib/ShapeInfo.h +++ b/src/lib/ShapeInfo.h @@ -94,11 +94,11 @@ struct ShapeInfo } boost::shared_ptr<const CustomShape> getCustomShape() const { - if (m_customShape.is_initialized()) + if (!!m_customShape) { return getFromDynamicCustomShape(m_customShape.get()); } - if (m_cropType.is_initialized()) + if (!!m_cropType) { return boost::shared_ptr<const CustomShape>( libmspub::getCustomShape(m_cropType.get()), commit 7cde4c70fdc966a333fe8ddc1c6c61ae759dc56c Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Tue Apr 16 09:27:09 2013 +0200 Revert "Added output of the dash style value as libmspub:dashstyle property" The dashes are already handled! Reading before coding! This reverts commit 2b840822cc91f28a8b8d5c0b1b40ddf039778f68. diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp index 032908b..36f51ca 100644 --- a/src/lib/MSPUBCollector.cpp +++ b/src/lib/MSPUBCollector.cpp @@ -760,12 +760,6 @@ boost::function<void(void)> libmspub::MSPUBCollector::paintShape(const ShapeInfo graphicsProps.insert(length.cstr(), dash.m_dots[i].m_length.get(), WPX_INCH); } } - if (info.m_dashStyle.is_initialized()) - { - WPXString dst; - dst.sprintf("%d", info.m_dashStyle.get()); - graphicsProps.insert("libmspub:dashstyle", dst); - } } else { @@ -1107,10 +1101,9 @@ void libmspub::MSPUBCollector::setShapeImgIndex(unsigned seqNum, unsigned index) m_shapeInfosBySeqNum[seqNum].m_imgIndex = index; } -void libmspub::MSPUBCollector::setShapeDash(unsigned seqNum, unsigned dashStyle, const Dash &dash) +void libmspub::MSPUBCollector::setShapeDash(unsigned seqNum, const Dash &dash) { m_shapeInfosBySeqNum[seqNum].m_dash = dash; - m_shapeInfosBySeqNum[seqNum].m_dashStyle = dashStyle; } void libmspub::MSPUBCollector::setShapeFill(unsigned seqNum, boost::shared_ptr<Fill> fill, bool skipIfNotBg) diff --git a/src/lib/MSPUBCollector.h b/src/lib/MSPUBCollector.h index e23ba5e..5755043 100644 --- a/src/lib/MSPUBCollector.h +++ b/src/lib/MSPUBCollector.h @@ -96,7 +96,7 @@ public: void setShapeCoordinatesInEmu(unsigned seqNum, int xs, int ys, int xe, int ye); void setShapeImgIndex(unsigned seqNum, unsigned index); void setShapeFill(unsigned seqNum, boost::shared_ptr<Fill> fill, bool skipIfNotBg); - void setShapeDash(unsigned seqNum, unsigned dashStyle, const Dash &dash); + void setShapeDash(unsigned seqNum, const Dash &dash); void setAdjustValue(unsigned seqNum, unsigned index, int adjust); void setShapeRotation(unsigned seqNum, double rotation); void setShapeFlip(unsigned, bool, bool); diff --git a/src/lib/MSPUBParser.cpp b/src/lib/MSPUBParser.cpp index fd5dea1..50334d3 100644 --- a/src/lib/MSPUBParser.cpp +++ b/src/lib/MSPUBParser.cpp @@ -1679,7 +1679,7 @@ void libmspub::MSPUBParser::parseEscherShape(WPXInputStream *input, const Escher } if (ptr_lineDashing) { - m_collector->setShapeDash(*shapeSeqNum, *ptr_lineDashing, getDash( + m_collector->setShapeDash(*shapeSeqNum, getDash( static_cast<MSPUBDashStyle>(*ptr_lineDashing), lineWidth, dotStyle)); } @@ -1771,9 +1771,9 @@ void libmspub::MSPUBParser::parseEscherShape(WPXInputStream *input, const Escher if (!wrapVertexData.empty()) { std::vector<libmspub::Vertex> ret = parseVertices(wrapVertexData); - m_collector->setShapeClipPath(*shapeSeqNum, ret); + m_collector->setShapeClipPath(*shapeSeqNum, ret); MSPUB_DEBUG_MSG(("Current Escher shape has wrap Path\n")); - } + } } if (foundAnchor) { diff --git a/src/lib/ShapeInfo.h b/src/lib/ShapeInfo.h index fd4eaad..9bbac5c 100644 --- a/src/lib/ShapeInfo.h +++ b/src/lib/ShapeInfo.h @@ -70,7 +70,6 @@ struct ShapeInfo bool m_stretchBorderArt; boost::optional<ColorReference> m_lineBackColor; boost::optional<Dash> m_dash; - boost::optional<unsigned> m_dashStyle; boost::optional<TableInfo> m_tableInfo; boost::optional<std::vector<unsigned> > m_tableCellTextEnds; boost::optional<unsigned> m_numColumns; @@ -87,7 +86,7 @@ struct ShapeInfo m_textId(), m_adjustValuesByIndex(), m_adjustValues(), m_rotation(), m_flips(), m_margins(), m_borderPosition(), m_fill(), m_customShape(), m_stretchBorderArt(false), - m_lineBackColor(), m_dash(), m_dashStyle(0), m_tableInfo(), + m_lineBackColor(), m_dash(), m_tableInfo(), m_tableCellTextEnds(), m_numColumns(), m_columnSpacing(0), m_beginArrow(), m_endArrow(), m_verticalAlign(), m_pictureRecolor(), m_shadow(), m_innerRotation(), m_clipPath()
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits