Author: alg
Date: Wed Jan 23 10:27:24 2013
New Revision: 1437324

URL: http://svn.apache.org/viewvc?rev=1437324&view=rev
Log:
#121656# Some more cleanups for SVG import, also const as const can

Modified:
    openoffice/trunk/main/svgio/inc/svgio/svgreader/svgnode.hxx
    openoffice/trunk/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
    openoffice/trunk/main/svgio/inc/svgio/svgreader/svgtoken.hxx
    openoffice/trunk/main/svgio/source/svgreader/svgclippathnode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgimagenode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgmarkernode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgmasknode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgnode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgpatternnode.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgstyleattributes.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgtoken.cxx
    openoffice/trunk/main/svgio/source/svgreader/svgusenode.cxx
    openoffice/trunk/main/svgio/source/svguno/xsvgparser.cxx

Modified: openoffice/trunk/main/svgio/inc/svgio/svgreader/svgnode.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/inc/svgio/svgreader/svgnode.hxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/inc/svgio/svgreader/svgnode.hxx (original)
+++ openoffice/trunk/main/svgio/inc/svgio/svgreader/svgnode.hxx Wed Jan 23 
10:27:24 2013
@@ -59,6 +59,29 @@ namespace svgio
             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
         {
         private:
@@ -80,6 +103,9 @@ namespace svgio
             /// XmlSpace value
             XmlSpace                    maXmlSpace;
 
+            /// Display value #121656#
+            Display                     maDisplay;
+
             /// CSS styles
             SvgStyleAttributeVector     maCssStyleVector;
 
@@ -122,6 +148,10 @@ namespace svgio
             XmlSpace getXmlSpace() const;
             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
             void setAlternativeParent(const SvgNode* pAlternativeParent = 0) { 
mpAlternativeParent = pAlternativeParent; }
         };

Modified: openoffice/trunk/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx 
(original)
+++ openoffice/trunk/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx Wed 
Jan 23 10:27:24 2013
@@ -290,11 +290,11 @@ namespace svgio
             void setStopColor(const SvgPaint& rStopColor) { maStopColor = 
rStopColor; }
 
             /// stroke-width content
-            SvgNumber getStrokeWidth() const;
+            const SvgNumber getStrokeWidth() const;
             void setStrokeWidth(const SvgNumber& rStrokeWidth = SvgNumber()) { 
maStrokeWidth = rStrokeWidth; }
 
             /// stop opacity content
-            SvgNumber getStopOpacity() const;
+            const SvgNumber getStopOpacity() const;
             void setStopOpacity(const SvgNumber& rStopOpacity = SvgNumber()) { 
maStopOpacity = rStopOpacity; }
 
             /// access to evtl. set fill gradient
@@ -314,11 +314,11 @@ namespace svgio
             void setSvgPatternNodeStroke(const SvgPatternNode* pNew) { 
mpSvgPatternNodeStroke = pNew; }
 
             /// fill opacity content
-            SvgNumber getFillOpacity() const;
+            const SvgNumber getFillOpacity() const;
             void setFillOpacity(const SvgNumber& rFillOpacity = SvgNumber()) { 
maFillOpacity = rFillOpacity; }
 
             /// fill rule content
-            FillRule getFillRule() const;
+            const FillRule getFillRule() const;
             void setFillRule(const FillRule aFillRule = FillRule_notset) { 
maFillRule = aFillRule; }
 
             /// fill StrokeDasharray content
@@ -326,27 +326,27 @@ namespace svgio
             void setStrokeDasharray(const SvgNumberVector& rStrokeDasharray = 
SvgNumberVector()) { maStrokeDasharray = rStrokeDasharray; }
 
             /// #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; }
 
             /// StrokeDashOffset content
-            SvgNumber getStrokeDashOffset() const;
+            const SvgNumber getStrokeDashOffset() const;
             void setStrokeDashOffset(const SvgNumber& rStrokeDashOffset = 
SvgNumber()) { maStrokeDashOffset = rStrokeDashOffset; }
 
             /// StrokeLinecap content
-            StrokeLinecap getStrokeLinecap() const;
+            const StrokeLinecap getStrokeLinecap() const;
             void setStrokeLinecap(const StrokeLinecap aStrokeLinecap = 
StrokeLinecap_notset) { maStrokeLinecap = aStrokeLinecap; }
 
             /// StrokeLinejoin content
-            StrokeLinejoin getStrokeLinejoin() const;
+            const StrokeLinejoin getStrokeLinejoin() const;
             void setStrokeLinejoin(const StrokeLinejoin aStrokeLinejoin = 
StrokeLinejoin_notset) { maStrokeLinejoin = aStrokeLinejoin; }
 
             /// StrokeMiterLimit content
-            SvgNumber getStrokeMiterLimit() const;
+            const SvgNumber getStrokeMiterLimit() const;
             void setStrokeMiterLimit(const SvgNumber& rStrokeMiterLimit = 
SvgNumber()) { maStrokeMiterLimit = rStrokeMiterLimit; }
 
             /// StrokeOpacity content
-            SvgNumber getStrokeOpacity() const;
+            const SvgNumber getStrokeOpacity() const;
             void setStrokeOpacity(const SvgNumber& rStrokeOpacity = 
SvgNumber()) { maStrokeOpacity = rStrokeOpacity; }
 
             /// Font content
@@ -354,36 +354,36 @@ namespace svgio
             void setFontFamily(const SvgStringVector& rSvgStringVector = 
SvgStringVector()) { maFontFamily = rSvgStringVector; }
 
             /// FontSize content
-            SvgNumber getFontSize() const;
+            const SvgNumber getFontSize() const;
             void setFontSize(const SvgNumber& rFontSize = SvgNumber()) { 
maFontSize = rFontSize; }
 
             /// FontStretch content
-            FontStretch getFontStretch() const;
+            const FontStretch getFontStretch() const;
             void setFontStretch(const FontStretch aFontStretch = 
FontStretch_notset) { maFontStretch = aFontStretch; }
 
             /// FontStyle content
-            FontStyle getFontStyle() const;
+            const FontStyle getFontStyle() const;
             void setFontStyle(const FontStyle aFontStyle = FontStyle_notset) { 
maFontStyle = aFontStyle; }
 
             /// FontVariant content
-            FontVariant getFontVariant() const;
+            const FontVariant getFontVariant() const;
             void setFontVariant(const FontVariant aFontVariant = 
FontVariant_notset) { maFontVariant = aFontVariant; }
 
             /// FontWeight content
-            FontWeight getFontWeight() const;
+            const FontWeight getFontWeight() const;
             void setFontWeight(const FontWeight aFontWeight = 
FontWeight_notset) { maFontWeight = aFontWeight; }
 
             /// TextAlign content
-            TextAlign getTextAlign() const;
+            const TextAlign getTextAlign() const;
             void setTextAlign(const TextAlign aTextAlign = TextAlign_notset) { 
maTextAlign = aTextAlign; }
 
             /// TextDecoration content
             const SvgStyleAttributes* 
getTextDecorationDefiningSvgStyleAttributes() const;
-            TextDecoration getTextDecoration() const;
+            const TextDecoration getTextDecoration() const;
             void setTextDecoration(const TextDecoration aTextDecoration = 
TextDecoration_notset) { maTextDecoration = aTextDecoration; }
 
             /// TextAnchor content
-            TextAnchor getTextAnchor() const;
+            const TextAnchor getTextAnchor() const;
             void setTextAnchor(const TextAnchor aTextAnchor = 
TextAnchor_notset) { maTextAnchor = aTextAnchor; }
 
             /// Color content
@@ -391,7 +391,7 @@ namespace svgio
             void setColor(const SvgPaint& rColor) { maColor = rColor; }
 
             /// Opacity content
-            SvgNumber getOpacity() const { return maOpacity; }
+            const SvgNumber getOpacity() const { return maOpacity; }
             void setOpacity(const SvgNumber& rOpacity = SvgNumber()) { 
maOpacity = rOpacity; }
 
             // Title content
@@ -411,17 +411,17 @@ namespace svgio
             void setMaskXLink(const rtl::OUString& rNew) { maMaskXLink = rNew; 
}
 
             // MarkerStartXLink content
-            rtl::OUString getMarkerStartXLink() const;
+            const rtl::OUString getMarkerStartXLink() const;
             const SvgMarkerNode* accessMarkerStartXLink() const;
             void setMarkerStartXLink(const rtl::OUString& rNew) { 
maMarkerStartXLink = rNew; }
 
             // MarkerMidXLink content
-            rtl::OUString getMarkerMidXLink() const;
+            const rtl::OUString getMarkerMidXLink() const;
             const SvgMarkerNode* accessMarkerMidXLink() const;
             void setMarkerMidXLink(const rtl::OUString& rNew) { 
maMarkerMidXLink = rNew; }
 
             // MarkerEndXLink content
-            rtl::OUString getMarkerEndXLink() const;
+            const rtl::OUString getMarkerEndXLink() const;
             const SvgMarkerNode* accessMarkerEndXLink() const;
             void setMarkerEndXLink(const rtl::OUString& rNew) { 
maMarkerEndXLink = rNew; }
 

Modified: openoffice/trunk/main/svgio/inc/svgio/svgreader/svgtoken.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/inc/svgio/svgreader/svgtoken.hxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/inc/svgio/svgreader/svgtoken.hxx (original)
+++ openoffice/trunk/main/svgio/inc/svgio/svgreader/svgtoken.hxx Wed Jan 23 
10:27:24 2013
@@ -43,6 +43,7 @@ namespace svgio
             SVGTokenViewBox,
             SVGTokenTransform,
             SVGTokenStyle,
+            SVGTokenDisplay, // #121656#
             SVGTokenD,
             SVGTokenX,
             SVGTokenY,

Modified: openoffice/trunk/main/svgio/source/svgreader/svgclippathnode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgclippathnode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgclippathnode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgclippathnode.cxx Wed Jan 23 
10:27:24 2013
@@ -133,7 +133,7 @@ namespace svgio
 
         void 
SvgClipPathNode::apply(drawinglayer::primitive2d::Primitive2DSequence& 
rContent) const
         {
-            if(rContent.hasElements())
+            if(rContent.hasElements() && Display_none != getDisplay())
             {
                 const drawinglayer::geometry::ViewInformation2D 
aViewInformation2D;
                 drawinglayer::primitive2d::Primitive2DSequence aClipTarget;

Modified: openoffice/trunk/main/svgio/source/svgreader/svgimagenode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgimagenode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgimagenode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgimagenode.cxx Wed Jan 23 
10:27:24 2013
@@ -261,7 +261,7 @@ namespace svgio
                     {
                         const SvgNode* mpXLink = 
getDocument().findSvgNodeById(maXLink);
 
-                        if(mpXLink)
+                        if(mpXLink && Display_none != mpXLink->getDisplay())
                         {
                             mpXLink->decomposeSvgNode(aNewTarget, true);
 

Modified: openoffice/trunk/main/svgio/source/svgreader/svgmarkernode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgmarkernode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgmarkernode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgmarkernode.cxx Wed Jan 23 
10:27:24 2013
@@ -188,7 +188,7 @@ namespace svgio
 
         const drawinglayer::primitive2d::Primitive2DSequence& 
SvgMarkerNode::getMarkerPrimitives() const
         {
-            if(!aPrimitives.hasElements())
+            if(!aPrimitives.hasElements() && Display_none != getDisplay())
             {
                 decomposeSvgNode(const_cast< SvgMarkerNode* 
>(this)->aPrimitives, true);
             }

Modified: openoffice/trunk/main/svgio/source/svgreader/svgmasknode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgmasknode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgmasknode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgmasknode.cxx Wed Jan 23 
10:27:24 2013
@@ -199,7 +199,7 @@ namespace svgio
 
         void 
SvgMaskNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rTarget) 
const
         {
-            if(rTarget.hasElements())
+            if(rTarget.hasElements() && Display_none != getDisplay())
             {
                 drawinglayer::primitive2d::Primitive2DSequence aMaskTarget;
 

Modified: openoffice/trunk/main/svgio/source/svgreader/svgnode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgnode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgnode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgnode.cxx Wed Jan 23 
10:27:24 2013
@@ -150,6 +150,7 @@ namespace svgio
             mpId(0),
             mpClass(0),
             maXmlSpace(XmlSpace_notset),
+            maDisplay(Display_inline),
             maCssStyleVector()
         {
             OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type 
created (!)");
@@ -231,6 +232,104 @@ namespace svgio
                     }
                     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:
                 {
                     break;
@@ -240,6 +339,11 @@ namespace svgio
 
         void 
SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& 
rTarget, bool bReferenced) const
         {
+            if(Display_none == getDisplay())
+            {
+                return;
+            }
+
             if(!bReferenced)
             {
                 if(SVGTokenDefs == getType() || 
@@ -259,6 +363,9 @@ namespace svgio
 
                     // also not directly used are Markers and Patterns, only 
indirecty used
                     // by reference
+
+                    // #121656# also do not decompose nodes which have 
display="none" set
+                    // as property
                     return;
                 }
             }
@@ -273,7 +380,7 @@ namespace svgio
                 {
                     SvgNode* pCandidate = rChildren[a];
 
-                    if(pCandidate)
+                    if(pCandidate && Display_none != pCandidate->getDisplay())
                     {
                         drawinglayer::primitive2d::Primitive2DSequence 
aNewTarget;
 

Modified: openoffice/trunk/main/svgio/source/svgreader/svgpatternnode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgpatternnode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgpatternnode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgpatternnode.cxx Wed Jan 23 
10:27:24 2013
@@ -275,7 +275,7 @@ namespace svgio
 
         const drawinglayer::primitive2d::Primitive2DSequence& 
SvgPatternNode::getPatternPrimitives() const
         {
-            if(!aPrimitives.hasElements())
+            if(!aPrimitives.hasElements() && Display_none != getDisplay())
             {
                 decomposeSvgNode(const_cast< SvgPatternNode* 
>(this)->aPrimitives, true);
             }

Modified: openoffice/trunk/main/svgio/source/svgreader/svgstyleattributes.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgstyleattributes.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgstyleattributes.cxx 
(original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgstyleattributes.cxx Wed Jan 
23 10:27:24 2013
@@ -1079,6 +1079,18 @@ namespace svgio
                     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())
                 {
                     // try to access linked ClipPath
@@ -1105,17 +1117,6 @@ namespace svgio
 
                     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
                         
drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget,
 aSource);
                     }
@@ -1960,7 +1961,7 @@ namespace svgio
             return 0;
         }
 
-        SvgNumber SvgStyleAttributes::getStrokeWidth() const 
+        const SvgNumber SvgStyleAttributes::getStrokeWidth() const 
         { 
             if(mbIsClipPathContent)
             {
@@ -1982,7 +1983,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        SvgNumber SvgStyleAttributes::getStopOpacity() const 
+        const SvgNumber SvgStyleAttributes::getStopOpacity() const 
         { 
             if(maStopOpacity.isSet()) 
             {
@@ -1993,7 +1994,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        SvgNumber SvgStyleAttributes::getFillOpacity() const 
+        const SvgNumber SvgStyleAttributes::getFillOpacity() const 
         { 
             if(mbIsClipPathContent)
             {
@@ -2015,7 +2016,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        FillRule SvgStyleAttributes::getFillRule() const
+        const FillRule SvgStyleAttributes::getFillRule() const
         {
             if(FillRule_notset != maFillRule)
             {
@@ -2056,7 +2057,7 @@ namespace svgio
             return maStrokeDasharray; 
         }
 
-        SvgNumber SvgStyleAttributes::getStrokeDashOffset() const 
+        const SvgNumber SvgStyleAttributes::getStrokeDashOffset() const 
         { 
             if(maStrokeDashOffset.isSet()) 
             {
@@ -2074,7 +2075,7 @@ namespace svgio
             return SvgNumber(0.0); 
         }
 
-        StrokeLinecap SvgStyleAttributes::getStrokeLinecap() const
+        const StrokeLinecap SvgStyleAttributes::getStrokeLinecap() const
         {
             if(maStrokeLinecap != StrokeLinecap_notset)
             {
@@ -2092,7 +2093,7 @@ namespace svgio
             return StrokeLinecap_butt; 
         }
 
-        StrokeLinejoin SvgStyleAttributes::getStrokeLinejoin() const
+        const StrokeLinejoin SvgStyleAttributes::getStrokeLinejoin() const
         {
             if(maStrokeLinejoin != StrokeLinejoin_notset)
             {
@@ -2110,7 +2111,7 @@ namespace svgio
             return StrokeLinejoin_miter; 
         }
 
-        SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const 
+        const SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const 
         { 
             if(maStrokeMiterLimit.isSet()) 
             {
@@ -2128,7 +2129,7 @@ namespace svgio
             return SvgNumber(4.0); 
         }
 
-        SvgNumber SvgStyleAttributes::getStrokeOpacity() const 
+        const SvgNumber SvgStyleAttributes::getStrokeOpacity() const 
         { 
             if(maStrokeOpacity.isSet()) 
             {
@@ -2164,7 +2165,7 @@ namespace svgio
             return maFontFamily; 
         }
 
-        SvgNumber SvgStyleAttributes::getFontSize() const 
+        const SvgNumber SvgStyleAttributes::getFontSize() const 
         { 
             if(maFontSize.isSet()) 
             {
@@ -2182,7 +2183,7 @@ namespace svgio
             return SvgNumber(12.0); 
         }
 
-        FontStretch SvgStyleAttributes::getFontStretch() const
+        const FontStretch SvgStyleAttributes::getFontStretch() const
         {
             if(maFontStretch != FontStretch_notset)
             {
@@ -2214,7 +2215,7 @@ namespace svgio
             return FontStretch_normal; 
         }
 
-        FontStyle SvgStyleAttributes::getFontStyle() const
+        const FontStyle SvgStyleAttributes::getFontStyle() const
         {
             if(maFontStyle != FontStyle_notset)
             {
@@ -2232,7 +2233,7 @@ namespace svgio
             return FontStyle_normal; 
         }
 
-        FontWeight SvgStyleAttributes::getFontWeight() const
+        const FontWeight SvgStyleAttributes::getFontWeight() const
         {
             if(maFontWeight != FontWeight_notset)
             {
@@ -2264,7 +2265,7 @@ namespace svgio
             return FontWeight_400; 
         }
 
-        TextAlign SvgStyleAttributes::getTextAlign() const
+        const TextAlign SvgStyleAttributes::getTextAlign() const
         {
             if(maTextAlign != TextAlign_notset)
             {
@@ -2300,7 +2301,7 @@ namespace svgio
             return 0; 
         }
 
-        TextDecoration SvgStyleAttributes::getTextDecoration() const
+        const TextDecoration SvgStyleAttributes::getTextDecoration() const
         {
             const SvgStyleAttributes* pDefining = 
getTextDecorationDefiningSvgStyleAttributes();
 
@@ -2315,7 +2316,7 @@ namespace svgio
             }
         }
 
-        TextAnchor SvgStyleAttributes::getTextAnchor() const
+        const TextAnchor SvgStyleAttributes::getTextAnchor() const
         {
             if(maTextAnchor != TextAnchor_notset)
             {
@@ -2360,7 +2361,7 @@ namespace svgio
             return 0;
         }
 
-        rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const 
+        const rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const 
         { 
             if(maMarkerStartXLink.getLength())
             {
@@ -2392,7 +2393,7 @@ namespace svgio
             return mpMarkerStartXLink;
         }
 
-        rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const 
+        const rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const 
         { 
             if(maMarkerMidXLink.getLength())
             {
@@ -2424,7 +2425,7 @@ namespace svgio
             return mpMarkerMidXLink;
         }
 
-        rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const 
+        const rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const 
         { 
             if(maMarkerEndXLink.getLength())
             {

Modified: openoffice/trunk/main/svgio/source/svgreader/svgtoken.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgtoken.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgtoken.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgtoken.cxx Wed Jan 23 
10:27:24 2013
@@ -35,6 +35,7 @@ namespace svgio
         static rtl::OUString 
aSVGStrViewBox(rtl::OUString::createFromAscii("viewBox"));
         static rtl::OUString 
aSVGStrTransform(rtl::OUString::createFromAscii("transform"));
         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 aSVGStrX(rtl::OUString::createFromAscii("x"));
         static rtl::OUString aSVGStrY(rtl::OUString::createFromAscii("y"));
@@ -178,6 +179,7 @@ namespace svgio
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, 
SVGTokenViewBox));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, 
SVGTokenTransform));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, 
SVGTokenStyle));
+                aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDisplay, 
SVGTokenDisplay)); // #121656#
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, 
SVGTokenD));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, 
SVGTokenX));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, 
SVGTokenY));

Modified: openoffice/trunk/main/svgio/source/svgreader/svgusenode.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svgreader/svgusenode.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svgreader/svgusenode.cxx (original)
+++ openoffice/trunk/main/svgio/source/svgreader/svgusenode.cxx Wed Jan 23 
10:27:24 2013
@@ -151,7 +151,7 @@ namespace svgio
             // try to access link to content
             const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink);
 
-            if(mpXLink)
+            if(mpXLink && Display_none != mpXLink->getDisplay())
             {
                 // decompose childs
                 drawinglayer::primitive2d::Primitive2DSequence aNewTarget;

Modified: openoffice/trunk/main/svgio/source/svguno/xsvgparser.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svgio/source/svguno/xsvgparser.cxx?rev=1437324&r1=1437323&r2=1437324&view=diff
==============================================================================
--- openoffice/trunk/main/svgio/source/svguno/xsvgparser.cxx (original)
+++ openoffice/trunk/main/svgio/source/svguno/xsvgparser.cxx Wed Jan 23 
10:27:24 2013
@@ -151,7 +151,12 @@ namespace svgio
 
                 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


Reply via email to