Kaydet (Commit) bb9ad24b authored tarafından Armin Le Grand's avatar Armin Le Grand

#121656# Some more cleanups for SVG import, also const as const can

üst 997126e0
...@@ -59,6 +59,29 @@ namespace svgio ...@@ -59,6 +59,29 @@ namespace svgio
XmlSpace_preserve XmlSpace_preserve
}; };
// display property (see SVG 1.1. 11.5), not inheritable
enum Display // #121656#
{
Display_inline, // the default
Display_block,
Display_list_item,
Display_run_in,
Display_compact,
Display_marker,
Display_table,
Display_inline_table,
Display_table_row_group,
Display_table_header_group,
Display_table_footer_group,
Display_table_row,
Display_table_column_group,
Display_table_column,
Display_table_cell,
Display_table_caption,
Display_none,
Display_inherit
};
class SvgNode : private boost::noncopyable, public InfoProvider class SvgNode : private boost::noncopyable, public InfoProvider
{ {
private: private:
...@@ -80,6 +103,9 @@ namespace svgio ...@@ -80,6 +103,9 @@ namespace svgio
/// XmlSpace value /// XmlSpace value
XmlSpace maXmlSpace; XmlSpace maXmlSpace;
/// Display value #121656#
Display maDisplay;
/// CSS styles /// CSS styles
SvgStyleAttributeVector maCssStyleVector; SvgStyleAttributeVector maCssStyleVector;
...@@ -122,6 +148,10 @@ namespace svgio ...@@ -122,6 +148,10 @@ namespace svgio
XmlSpace getXmlSpace() const; XmlSpace getXmlSpace() const;
void setXmlSpace(XmlSpace eXmlSpace = XmlSpace_notset) { maXmlSpace = eXmlSpace; } void setXmlSpace(XmlSpace eXmlSpace = XmlSpace_notset) { maXmlSpace = eXmlSpace; }
/// Display access #121656#
Display getDisplay() const { return maDisplay; }
void setDisplay(Display eDisplay = Display_inherit) { maDisplay = eDisplay; }
/// alternative parent /// alternative parent
void setAlternativeParent(const SvgNode* pAlternativeParent = 0) { mpAlternativeParent = pAlternativeParent; } void setAlternativeParent(const SvgNode* pAlternativeParent = 0) { mpAlternativeParent = pAlternativeParent; }
}; };
......
...@@ -290,11 +290,11 @@ namespace svgio ...@@ -290,11 +290,11 @@ namespace svgio
void setStopColor(const SvgPaint& rStopColor) { maStopColor = rStopColor; } void setStopColor(const SvgPaint& rStopColor) { maStopColor = rStopColor; }
/// stroke-width content /// stroke-width content
SvgNumber getStrokeWidth() const; const SvgNumber getStrokeWidth() const;
void setStrokeWidth(const SvgNumber& rStrokeWidth = SvgNumber()) { maStrokeWidth = rStrokeWidth; } void setStrokeWidth(const SvgNumber& rStrokeWidth = SvgNumber()) { maStrokeWidth = rStrokeWidth; }
/// stop opacity content /// stop opacity content
SvgNumber getStopOpacity() const; const SvgNumber getStopOpacity() const;
void setStopOpacity(const SvgNumber& rStopOpacity = SvgNumber()) { maStopOpacity = rStopOpacity; } void setStopOpacity(const SvgNumber& rStopOpacity = SvgNumber()) { maStopOpacity = rStopOpacity; }
/// access to evtl. set fill gradient /// access to evtl. set fill gradient
...@@ -314,11 +314,11 @@ namespace svgio ...@@ -314,11 +314,11 @@ namespace svgio
void setSvgPatternNodeStroke(const SvgPatternNode* pNew) { mpSvgPatternNodeStroke = pNew; } void setSvgPatternNodeStroke(const SvgPatternNode* pNew) { mpSvgPatternNodeStroke = pNew; }
/// fill opacity content /// fill opacity content
SvgNumber getFillOpacity() const; const SvgNumber getFillOpacity() const;
void setFillOpacity(const SvgNumber& rFillOpacity = SvgNumber()) { maFillOpacity = rFillOpacity; } void setFillOpacity(const SvgNumber& rFillOpacity = SvgNumber()) { maFillOpacity = rFillOpacity; }
/// fill rule content /// fill rule content
FillRule getFillRule() const; const FillRule getFillRule() const;
void setFillRule(const FillRule aFillRule = FillRule_notset) { maFillRule = aFillRule; } void setFillRule(const FillRule aFillRule = FillRule_notset) { maFillRule = aFillRule; }
/// fill StrokeDasharray content /// fill StrokeDasharray content
...@@ -326,27 +326,27 @@ namespace svgio ...@@ -326,27 +326,27 @@ namespace svgio
void setStrokeDasharray(const SvgNumberVector& rStrokeDasharray = SvgNumberVector()) { maStrokeDasharray = rStrokeDasharray; } void setStrokeDasharray(const SvgNumberVector& rStrokeDasharray = SvgNumberVector()) { maStrokeDasharray = rStrokeDasharray; }
/// #121221# StrokeDasharray needs a set state, it *may* be set to empty by purpose /// #121221# StrokeDasharray needs a set state, it *may* be set to empty by purpose
bool getStrokeDasharraySet() const { return mbStrokeDasharraySet; } const bool getStrokeDasharraySet() const { return mbStrokeDasharraySet; }
void setStrokeDasharraySet(bool bNew) { mbStrokeDasharraySet = bNew; } void setStrokeDasharraySet(bool bNew) { mbStrokeDasharraySet = bNew; }
/// StrokeDashOffset content /// StrokeDashOffset content
SvgNumber getStrokeDashOffset() const; const SvgNumber getStrokeDashOffset() const;
void setStrokeDashOffset(const SvgNumber& rStrokeDashOffset = SvgNumber()) { maStrokeDashOffset = rStrokeDashOffset; } void setStrokeDashOffset(const SvgNumber& rStrokeDashOffset = SvgNumber()) { maStrokeDashOffset = rStrokeDashOffset; }
/// StrokeLinecap content /// StrokeLinecap content
StrokeLinecap getStrokeLinecap() const; const StrokeLinecap getStrokeLinecap() const;
void setStrokeLinecap(const StrokeLinecap aStrokeLinecap = StrokeLinecap_notset) { maStrokeLinecap = aStrokeLinecap; } void setStrokeLinecap(const StrokeLinecap aStrokeLinecap = StrokeLinecap_notset) { maStrokeLinecap = aStrokeLinecap; }
/// StrokeLinejoin content /// StrokeLinejoin content
StrokeLinejoin getStrokeLinejoin() const; const StrokeLinejoin getStrokeLinejoin() const;
void setStrokeLinejoin(const StrokeLinejoin aStrokeLinejoin = StrokeLinejoin_notset) { maStrokeLinejoin = aStrokeLinejoin; } void setStrokeLinejoin(const StrokeLinejoin aStrokeLinejoin = StrokeLinejoin_notset) { maStrokeLinejoin = aStrokeLinejoin; }
/// StrokeMiterLimit content /// StrokeMiterLimit content
SvgNumber getStrokeMiterLimit() const; const SvgNumber getStrokeMiterLimit() const;
void setStrokeMiterLimit(const SvgNumber& rStrokeMiterLimit = SvgNumber()) { maStrokeMiterLimit = rStrokeMiterLimit; } void setStrokeMiterLimit(const SvgNumber& rStrokeMiterLimit = SvgNumber()) { maStrokeMiterLimit = rStrokeMiterLimit; }
/// StrokeOpacity content /// StrokeOpacity content
SvgNumber getStrokeOpacity() const; const SvgNumber getStrokeOpacity() const;
void setStrokeOpacity(const SvgNumber& rStrokeOpacity = SvgNumber()) { maStrokeOpacity = rStrokeOpacity; } void setStrokeOpacity(const SvgNumber& rStrokeOpacity = SvgNumber()) { maStrokeOpacity = rStrokeOpacity; }
/// Font content /// Font content
...@@ -354,36 +354,36 @@ namespace svgio ...@@ -354,36 +354,36 @@ namespace svgio
void setFontFamily(const SvgStringVector& rSvgStringVector = SvgStringVector()) { maFontFamily = rSvgStringVector; } void setFontFamily(const SvgStringVector& rSvgStringVector = SvgStringVector()) { maFontFamily = rSvgStringVector; }
/// FontSize content /// FontSize content
SvgNumber getFontSize() const; const SvgNumber getFontSize() const;
void setFontSize(const SvgNumber& rFontSize = SvgNumber()) { maFontSize = rFontSize; } void setFontSize(const SvgNumber& rFontSize = SvgNumber()) { maFontSize = rFontSize; }
/// FontStretch content /// FontStretch content
FontStretch getFontStretch() const; const FontStretch getFontStretch() const;
void setFontStretch(const FontStretch aFontStretch = FontStretch_notset) { maFontStretch = aFontStretch; } void setFontStretch(const FontStretch aFontStretch = FontStretch_notset) { maFontStretch = aFontStretch; }
/// FontStyle content /// FontStyle content
FontStyle getFontStyle() const; const FontStyle getFontStyle() const;
void setFontStyle(const FontStyle aFontStyle = FontStyle_notset) { maFontStyle = aFontStyle; } void setFontStyle(const FontStyle aFontStyle = FontStyle_notset) { maFontStyle = aFontStyle; }
/// FontVariant content /// FontVariant content
FontVariant getFontVariant() const; const FontVariant getFontVariant() const;
void setFontVariant(const FontVariant aFontVariant = FontVariant_notset) { maFontVariant = aFontVariant; } void setFontVariant(const FontVariant aFontVariant = FontVariant_notset) { maFontVariant = aFontVariant; }
/// FontWeight content /// FontWeight content
FontWeight getFontWeight() const; const FontWeight getFontWeight() const;
void setFontWeight(const FontWeight aFontWeight = FontWeight_notset) { maFontWeight = aFontWeight; } void setFontWeight(const FontWeight aFontWeight = FontWeight_notset) { maFontWeight = aFontWeight; }
/// TextAlign content /// TextAlign content
TextAlign getTextAlign() const; const TextAlign getTextAlign() const;
void setTextAlign(const TextAlign aTextAlign = TextAlign_notset) { maTextAlign = aTextAlign; } void setTextAlign(const TextAlign aTextAlign = TextAlign_notset) { maTextAlign = aTextAlign; }
/// TextDecoration content /// TextDecoration content
const SvgStyleAttributes* getTextDecorationDefiningSvgStyleAttributes() const; const SvgStyleAttributes* getTextDecorationDefiningSvgStyleAttributes() const;
TextDecoration getTextDecoration() const; const TextDecoration getTextDecoration() const;
void setTextDecoration(const TextDecoration aTextDecoration = TextDecoration_notset) { maTextDecoration = aTextDecoration; } void setTextDecoration(const TextDecoration aTextDecoration = TextDecoration_notset) { maTextDecoration = aTextDecoration; }
/// TextAnchor content /// TextAnchor content
TextAnchor getTextAnchor() const; const TextAnchor getTextAnchor() const;
void setTextAnchor(const TextAnchor aTextAnchor = TextAnchor_notset) { maTextAnchor = aTextAnchor; } void setTextAnchor(const TextAnchor aTextAnchor = TextAnchor_notset) { maTextAnchor = aTextAnchor; }
/// Color content /// Color content
...@@ -391,7 +391,7 @@ namespace svgio ...@@ -391,7 +391,7 @@ namespace svgio
void setColor(const SvgPaint& rColor) { maColor = rColor; } void setColor(const SvgPaint& rColor) { maColor = rColor; }
/// Opacity content /// Opacity content
SvgNumber getOpacity() const { return maOpacity; } const SvgNumber getOpacity() const { return maOpacity; }
void setOpacity(const SvgNumber& rOpacity = SvgNumber()) { maOpacity = rOpacity; } void setOpacity(const SvgNumber& rOpacity = SvgNumber()) { maOpacity = rOpacity; }
// Title content // Title content
...@@ -411,17 +411,17 @@ namespace svgio ...@@ -411,17 +411,17 @@ namespace svgio
void setMaskXLink(const rtl::OUString& rNew) { maMaskXLink = rNew; } void setMaskXLink(const rtl::OUString& rNew) { maMaskXLink = rNew; }
// MarkerStartXLink content // MarkerStartXLink content
rtl::OUString getMarkerStartXLink() const; const rtl::OUString getMarkerStartXLink() const;
const SvgMarkerNode* accessMarkerStartXLink() const; const SvgMarkerNode* accessMarkerStartXLink() const;
void setMarkerStartXLink(const rtl::OUString& rNew) { maMarkerStartXLink = rNew; } void setMarkerStartXLink(const rtl::OUString& rNew) { maMarkerStartXLink = rNew; }
// MarkerMidXLink content // MarkerMidXLink content
rtl::OUString getMarkerMidXLink() const; const rtl::OUString getMarkerMidXLink() const;
const SvgMarkerNode* accessMarkerMidXLink() const; const SvgMarkerNode* accessMarkerMidXLink() const;
void setMarkerMidXLink(const rtl::OUString& rNew) { maMarkerMidXLink = rNew; } void setMarkerMidXLink(const rtl::OUString& rNew) { maMarkerMidXLink = rNew; }
// MarkerEndXLink content // MarkerEndXLink content
rtl::OUString getMarkerEndXLink() const; const rtl::OUString getMarkerEndXLink() const;
const SvgMarkerNode* accessMarkerEndXLink() const; const SvgMarkerNode* accessMarkerEndXLink() const;
void setMarkerEndXLink(const rtl::OUString& rNew) { maMarkerEndXLink = rNew; } void setMarkerEndXLink(const rtl::OUString& rNew) { maMarkerEndXLink = rNew; }
......
...@@ -43,6 +43,7 @@ namespace svgio ...@@ -43,6 +43,7 @@ namespace svgio
SVGTokenViewBox, SVGTokenViewBox,
SVGTokenTransform, SVGTokenTransform,
SVGTokenStyle, SVGTokenStyle,
SVGTokenDisplay, // #121656#
SVGTokenD, SVGTokenD,
SVGTokenX, SVGTokenX,
SVGTokenY, SVGTokenY,
......
...@@ -133,7 +133,7 @@ namespace svgio ...@@ -133,7 +133,7 @@ namespace svgio
void SvgClipPathNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rContent) const void SvgClipPathNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rContent) const
{ {
if(rContent.hasElements()) if(rContent.hasElements() && Display_none != getDisplay())
{ {
const drawinglayer::geometry::ViewInformation2D aViewInformation2D; const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
drawinglayer::primitive2d::Primitive2DSequence aClipTarget; drawinglayer::primitive2d::Primitive2DSequence aClipTarget;
......
...@@ -261,7 +261,7 @@ namespace svgio ...@@ -261,7 +261,7 @@ namespace svgio
{ {
const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink); const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink);
if(mpXLink) if(mpXLink && Display_none != mpXLink->getDisplay())
{ {
mpXLink->decomposeSvgNode(aNewTarget, true); mpXLink->decomposeSvgNode(aNewTarget, true);
......
...@@ -188,7 +188,7 @@ namespace svgio ...@@ -188,7 +188,7 @@ namespace svgio
const drawinglayer::primitive2d::Primitive2DSequence& SvgMarkerNode::getMarkerPrimitives() const const drawinglayer::primitive2d::Primitive2DSequence& SvgMarkerNode::getMarkerPrimitives() const
{ {
if(!aPrimitives.hasElements()) if(!aPrimitives.hasElements() && Display_none != getDisplay())
{ {
decomposeSvgNode(const_cast< SvgMarkerNode* >(this)->aPrimitives, true); decomposeSvgNode(const_cast< SvgMarkerNode* >(this)->aPrimitives, true);
} }
......
...@@ -199,7 +199,7 @@ namespace svgio ...@@ -199,7 +199,7 @@ namespace svgio
void SvgMaskNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rTarget) const void SvgMaskNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rTarget) const
{ {
if(rTarget.hasElements()) if(rTarget.hasElements() && Display_none != getDisplay())
{ {
drawinglayer::primitive2d::Primitive2DSequence aMaskTarget; drawinglayer::primitive2d::Primitive2DSequence aMaskTarget;
......
...@@ -150,6 +150,7 @@ namespace svgio ...@@ -150,6 +150,7 @@ namespace svgio
mpId(0), mpId(0),
mpClass(0), mpClass(0),
maXmlSpace(XmlSpace_notset), maXmlSpace(XmlSpace_notset),
maDisplay(Display_inline),
maCssStyleVector() maCssStyleVector()
{ {
OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type created (!)"); OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type created (!)");
...@@ -231,6 +232,104 @@ namespace svgio ...@@ -231,6 +232,104 @@ namespace svgio
} }
break; break;
} }
case SVGTokenDisplay:
{
if(aContent.getLength())
{
static rtl::OUString aStrInline(rtl::OUString::createFromAscii("inline"));
static rtl::OUString aStrBlock(rtl::OUString::createFromAscii("block"));
static rtl::OUString aStrList_item(rtl::OUString::createFromAscii("list-item"));
static rtl::OUString aStrRun_in(rtl::OUString::createFromAscii("run-in"));
static rtl::OUString aStrCompact(rtl::OUString::createFromAscii("compact"));
static rtl::OUString aStrMarker(rtl::OUString::createFromAscii("marker"));
static rtl::OUString aStrTable(rtl::OUString::createFromAscii("table"));
static rtl::OUString aStrInline_table(rtl::OUString::createFromAscii("inline-table"));
static rtl::OUString aStrTable_row_group(rtl::OUString::createFromAscii("table-row-group"));
static rtl::OUString aStrTable_header_group(rtl::OUString::createFromAscii("table-header-group"));
static rtl::OUString aStrTable_footer_group(rtl::OUString::createFromAscii("table-footer-group"));
static rtl::OUString aStrTable_row(rtl::OUString::createFromAscii("table-row"));
static rtl::OUString aStrTable_column_group(rtl::OUString::createFromAscii("table-column-group"));
static rtl::OUString aStrTable_column(rtl::OUString::createFromAscii("table-column"));
static rtl::OUString aStrTable_cell(rtl::OUString::createFromAscii("table-cell"));
static rtl::OUString aStrTable_caption(rtl::OUString::createFromAscii("table-caption"));
static rtl::OUString aStrNone(rtl::OUString::createFromAscii("none"));
static rtl::OUString aStrInherit(rtl::OUString::createFromAscii("inherit"));
if(aContent.match(aStrInline))
{
setDisplay(Display_inline);
}
else if(aContent.match(aStrNone))
{
setDisplay(Display_none);
}
else if(aContent.match(aStrInherit))
{
setDisplay(Display_inherit);
}
else if(aContent.match(aStrBlock))
{
setDisplay(Display_block);
}
else if(aContent.match(aStrList_item))
{
setDisplay(Display_list_item);
}
else if(aContent.match(aStrRun_in))
{
setDisplay(Display_run_in);
}
else if(aContent.match(aStrCompact))
{
setDisplay(Display_compact);
}
else if(aContent.match(aStrMarker))
{
setDisplay(Display_marker);
}
else if(aContent.match(aStrTable))
{
setDisplay(Display_table);
}
else if(aContent.match(aStrInline_table))
{
setDisplay(Display_inline_table);
}
else if(aContent.match(aStrTable_row_group))
{
setDisplay(Display_table_row_group);
}
else if(aContent.match(aStrTable_header_group))
{
setDisplay(Display_table_header_group);
}
else if(aContent.match(aStrTable_footer_group))
{
setDisplay(Display_table_footer_group);
}
else if(aContent.match(aStrTable_row))
{
setDisplay(Display_table_row);
}
else if(aContent.match(aStrTable_column_group))
{
setDisplay(Display_table_column_group);
}
else if(aContent.match(aStrTable_column))
{
setDisplay(Display_table_column);
}
else if(aContent.match(aStrTable_cell))
{
setDisplay(Display_table_cell);
}
else if(aContent.match(aStrTable_caption))
{
setDisplay(Display_table_caption);
}
}
break;
}
default: default:
{ {
break; break;
...@@ -240,6 +339,11 @@ namespace svgio ...@@ -240,6 +339,11 @@ namespace svgio
void SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& rTarget, bool bReferenced) const void SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& rTarget, bool bReferenced) const
{ {
if(Display_none == getDisplay())
{
return;
}
if(!bReferenced) if(!bReferenced)
{ {
if(SVGTokenDefs == getType() || if(SVGTokenDefs == getType() ||
...@@ -259,6 +363,9 @@ namespace svgio ...@@ -259,6 +363,9 @@ namespace svgio
// also not directly used are Markers and Patterns, only indirecty used // also not directly used are Markers and Patterns, only indirecty used
// by reference // by reference
// #121656# also do not decompose nodes which have display="none" set
// as property
return; return;
} }
} }
...@@ -273,7 +380,7 @@ namespace svgio ...@@ -273,7 +380,7 @@ namespace svgio
{ {
SvgNode* pCandidate = rChildren[a]; SvgNode* pCandidate = rChildren[a];
if(pCandidate) if(pCandidate && Display_none != pCandidate->getDisplay())
{ {
drawinglayer::primitive2d::Primitive2DSequence aNewTarget; drawinglayer::primitive2d::Primitive2DSequence aNewTarget;
......
...@@ -275,7 +275,7 @@ namespace svgio ...@@ -275,7 +275,7 @@ namespace svgio
const drawinglayer::primitive2d::Primitive2DSequence& SvgPatternNode::getPatternPrimitives() const const drawinglayer::primitive2d::Primitive2DSequence& SvgPatternNode::getPatternPrimitives() const
{ {
if(!aPrimitives.hasElements()) if(!aPrimitives.hasElements() && Display_none != getDisplay())
{ {
decomposeSvgNode(const_cast< SvgPatternNode* >(this)->aPrimitives, true); decomposeSvgNode(const_cast< SvgPatternNode* >(this)->aPrimitives, true);
} }
......
...@@ -1079,6 +1079,18 @@ namespace svgio ...@@ -1079,6 +1079,18 @@ namespace svgio
aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1); aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
} }
if(pTransform)
{
// create embedding group element with transformation. This applies the given
// transformation to the graphical content, but *not* to mask and/or clip (as needed)
const drawinglayer::primitive2d::Primitive2DReference xRef(
new drawinglayer::primitive2d::TransformPrimitive2D(
*pTransform,
aSource));
aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
}
if(getClipPathXLink().getLength()) if(getClipPathXLink().getLength())
{ {
// try to access linked ClipPath // try to access linked ClipPath
...@@ -1105,17 +1117,6 @@ namespace svgio ...@@ -1105,17 +1117,6 @@ namespace svgio
if(aSource.hasElements()) // test again, applied mask may have lead to empty geometry if(aSource.hasElements()) // test again, applied mask may have lead to empty geometry
{ {
if(pTransform)
{
// create embedding group element with transformation
const drawinglayer::primitive2d::Primitive2DReference xRef(
new drawinglayer::primitive2d::TransformPrimitive2D(
*pTransform,
aSource));
aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
}
// append to current target // append to current target
drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aSource); drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aSource);
} }
...@@ -1960,7 +1961,7 @@ namespace svgio ...@@ -1960,7 +1961,7 @@ namespace svgio
return 0; return 0;
} }
SvgNumber SvgStyleAttributes::getStrokeWidth() const const SvgNumber SvgStyleAttributes::getStrokeWidth() const
{ {
if(mbIsClipPathContent) if(mbIsClipPathContent)
{ {
...@@ -1982,7 +1983,7 @@ namespace svgio ...@@ -1982,7 +1983,7 @@ namespace svgio
return SvgNumber(1.0); return SvgNumber(1.0);
} }
SvgNumber SvgStyleAttributes::getStopOpacity() const const SvgNumber SvgStyleAttributes::getStopOpacity() const
{ {
if(maStopOpacity.isSet()) if(maStopOpacity.isSet())
{ {
...@@ -1993,7 +1994,7 @@ namespace svgio ...@@ -1993,7 +1994,7 @@ namespace svgio
return SvgNumber(1.0); return SvgNumber(1.0);
} }
SvgNumber SvgStyleAttributes::getFillOpacity() const const SvgNumber SvgStyleAttributes::getFillOpacity() const
{ {
if(mbIsClipPathContent) if(mbIsClipPathContent)
{ {
...@@ -2015,7 +2016,7 @@ namespace svgio ...@@ -2015,7 +2016,7 @@ namespace svgio
return SvgNumber(1.0); return SvgNumber(1.0);
} }
FillRule SvgStyleAttributes::getFillRule() const const FillRule SvgStyleAttributes::getFillRule() const
{ {
if(FillRule_notset != maFillRule) if(FillRule_notset != maFillRule)
{ {
...@@ -2056,7 +2057,7 @@ namespace svgio ...@@ -2056,7 +2057,7 @@ namespace svgio
return maStrokeDasharray; return maStrokeDasharray;
} }
SvgNumber SvgStyleAttributes::getStrokeDashOffset() const const SvgNumber SvgStyleAttributes::getStrokeDashOffset() const
{ {
if(maStrokeDashOffset.isSet()) if(maStrokeDashOffset.isSet())
{ {
...@@ -2074,7 +2075,7 @@ namespace svgio ...@@ -2074,7 +2075,7 @@ namespace svgio
return SvgNumber(0.0); return SvgNumber(0.0);
} }
StrokeLinecap SvgStyleAttributes::getStrokeLinecap() const const StrokeLinecap SvgStyleAttributes::getStrokeLinecap() const
{ {
if(maStrokeLinecap != StrokeLinecap_notset) if(maStrokeLinecap != StrokeLinecap_notset)
{ {
...@@ -2092,7 +2093,7 @@ namespace svgio ...@@ -2092,7 +2093,7 @@ namespace svgio
return StrokeLinecap_butt; return StrokeLinecap_butt;
} }
StrokeLinejoin SvgStyleAttributes::getStrokeLinejoin() const const StrokeLinejoin SvgStyleAttributes::getStrokeLinejoin() const
{ {
if(maStrokeLinejoin != StrokeLinejoin_notset) if(maStrokeLinejoin != StrokeLinejoin_notset)
{ {
...@@ -2110,7 +2111,7 @@ namespace svgio ...@@ -2110,7 +2111,7 @@ namespace svgio
return StrokeLinejoin_miter; return StrokeLinejoin_miter;
} }
SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const const SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const
{ {
if(maStrokeMiterLimit.isSet()) if(maStrokeMiterLimit.isSet())
{ {
...@@ -2128,7 +2129,7 @@ namespace svgio ...@@ -2128,7 +2129,7 @@ namespace svgio
return SvgNumber(4.0); return SvgNumber(4.0);
} }
SvgNumber SvgStyleAttributes::getStrokeOpacity() const const SvgNumber SvgStyleAttributes::getStrokeOpacity() const
{ {
if(maStrokeOpacity.isSet()) if(maStrokeOpacity.isSet())
{ {
...@@ -2164,7 +2165,7 @@ namespace svgio ...@@ -2164,7 +2165,7 @@ namespace svgio
return maFontFamily; return maFontFamily;
} }
SvgNumber SvgStyleAttributes::getFontSize() const const SvgNumber SvgStyleAttributes::getFontSize() const
{ {
if(maFontSize.isSet()) if(maFontSize.isSet())
{ {
...@@ -2182,7 +2183,7 @@ namespace svgio ...@@ -2182,7 +2183,7 @@ namespace svgio
return SvgNumber(12.0); return SvgNumber(12.0);
} }
FontStretch SvgStyleAttributes::getFontStretch() const const FontStretch SvgStyleAttributes::getFontStretch() const
{ {
if(maFontStretch != FontStretch_notset) if(maFontStretch != FontStretch_notset)
{ {
...@@ -2214,7 +2215,7 @@ namespace svgio ...@@ -2214,7 +2215,7 @@ namespace svgio
return FontStretch_normal; return FontStretch_normal;
} }
FontStyle SvgStyleAttributes::getFontStyle() const const FontStyle SvgStyleAttributes::getFontStyle() const
{ {
if(maFontStyle != FontStyle_notset) if(maFontStyle != FontStyle_notset)
{ {
...@@ -2232,7 +2233,7 @@ namespace svgio ...@@ -2232,7 +2233,7 @@ namespace svgio
return FontStyle_normal; return FontStyle_normal;
} }
FontWeight SvgStyleAttributes::getFontWeight() const const FontWeight SvgStyleAttributes::getFontWeight() const
{ {
if(maFontWeight != FontWeight_notset) if(maFontWeight != FontWeight_notset)
{ {
...@@ -2264,7 +2265,7 @@ namespace svgio ...@@ -2264,7 +2265,7 @@ namespace svgio
return FontWeight_400; return FontWeight_400;
} }
TextAlign SvgStyleAttributes::getTextAlign() const const TextAlign SvgStyleAttributes::getTextAlign() const
{ {
if(maTextAlign != TextAlign_notset) if(maTextAlign != TextAlign_notset)
{ {
...@@ -2300,7 +2301,7 @@ namespace svgio ...@@ -2300,7 +2301,7 @@ namespace svgio
return 0; return 0;
} }
TextDecoration SvgStyleAttributes::getTextDecoration() const const TextDecoration SvgStyleAttributes::getTextDecoration() const
{ {
const SvgStyleAttributes* pDefining = getTextDecorationDefiningSvgStyleAttributes(); const SvgStyleAttributes* pDefining = getTextDecorationDefiningSvgStyleAttributes();
...@@ -2315,7 +2316,7 @@ namespace svgio ...@@ -2315,7 +2316,7 @@ namespace svgio
} }
} }
TextAnchor SvgStyleAttributes::getTextAnchor() const const TextAnchor SvgStyleAttributes::getTextAnchor() const
{ {
if(maTextAnchor != TextAnchor_notset) if(maTextAnchor != TextAnchor_notset)
{ {
...@@ -2360,7 +2361,7 @@ namespace svgio ...@@ -2360,7 +2361,7 @@ namespace svgio
return 0; return 0;
} }
rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const const rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const
{ {
if(maMarkerStartXLink.getLength()) if(maMarkerStartXLink.getLength())
{ {
...@@ -2392,7 +2393,7 @@ namespace svgio ...@@ -2392,7 +2393,7 @@ namespace svgio
return mpMarkerStartXLink; return mpMarkerStartXLink;
} }
rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const const rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const
{ {
if(maMarkerMidXLink.getLength()) if(maMarkerMidXLink.getLength())
{ {
...@@ -2424,7 +2425,7 @@ namespace svgio ...@@ -2424,7 +2425,7 @@ namespace svgio
return mpMarkerMidXLink; return mpMarkerMidXLink;
} }
rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const const rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const
{ {
if(maMarkerEndXLink.getLength()) if(maMarkerEndXLink.getLength())
{ {
......
...@@ -35,6 +35,7 @@ namespace svgio ...@@ -35,6 +35,7 @@ namespace svgio
static rtl::OUString aSVGStrViewBox(rtl::OUString::createFromAscii("viewBox")); static rtl::OUString aSVGStrViewBox(rtl::OUString::createFromAscii("viewBox"));
static rtl::OUString aSVGStrTransform(rtl::OUString::createFromAscii("transform")); static rtl::OUString aSVGStrTransform(rtl::OUString::createFromAscii("transform"));
static rtl::OUString aSVGStrStyle(rtl::OUString::createFromAscii("style")); static rtl::OUString aSVGStrStyle(rtl::OUString::createFromAscii("style"));
static rtl::OUString aSVGStrDisplay(rtl::OUString::createFromAscii("display")); // #121656#
static rtl::OUString aSVGStrD(rtl::OUString::createFromAscii("d")); static rtl::OUString aSVGStrD(rtl::OUString::createFromAscii("d"));
static rtl::OUString aSVGStrX(rtl::OUString::createFromAscii("x")); static rtl::OUString aSVGStrX(rtl::OUString::createFromAscii("x"));
static rtl::OUString aSVGStrY(rtl::OUString::createFromAscii("y")); static rtl::OUString aSVGStrY(rtl::OUString::createFromAscii("y"));
...@@ -178,6 +179,7 @@ namespace svgio ...@@ -178,6 +179,7 @@ namespace svgio
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, SVGTokenViewBox)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, SVGTokenViewBox));
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, SVGTokenTransform)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, SVGTokenTransform));
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, SVGTokenStyle)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, SVGTokenStyle));
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDisplay, SVGTokenDisplay)); // #121656#
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, SVGTokenD)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, SVGTokenD));
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, SVGTokenX)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, SVGTokenX));
aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, SVGTokenY)); aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, SVGTokenY));
......
...@@ -151,7 +151,7 @@ namespace svgio ...@@ -151,7 +151,7 @@ namespace svgio
// try to access link to content // try to access link to content
const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink); const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink);
if(mpXLink) if(mpXLink && Display_none != mpXLink->getDisplay())
{ {
// decompose childs // decompose childs
drawinglayer::primitive2d::Primitive2DSequence aNewTarget; drawinglayer::primitive2d::Primitive2DSequence aNewTarget;
......
...@@ -151,7 +151,12 @@ namespace svgio ...@@ -151,7 +151,12 @@ namespace svgio
for(sal_uInt32 a(0); a < nCount; a++) for(sal_uInt32 a(0); a < nCount; a++)
{ {
rResults[a]->decomposeSvgNode(aRetval, false); SvgNode* pCandidate = rResults[a];
if(Display_none != pCandidate->getDisplay())
{
pCandidate->decomposeSvgNode(aRetval, false);
}
} }
} }
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment