You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/10/30 13:52:12 UTC

svn commit: r1537067 - /openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx

Author: alg
Date: Wed Oct 30 12:52:12 2013
New Revision: 1537067

URL: http://svn.apache.org/r1537067
Log:
i122433 corrected export of polygons with text

Modified:
    openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx

Modified: openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx?rev=1537067&r1=1537066&r2=1537067&view=diff
==============================================================================
--- openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx (original)
+++ openoffice/trunk/main/xmloff/source/draw/shapeexport2.cxx Wed Oct 30 12:52:12 2013
@@ -954,27 +954,27 @@ void XMLShapeExport::ImpExportEllipseSha
 
 		sal_Bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210#
 
-		if(bCircle)
-		{
-			// write circle
-			SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_CIRCLE, bCreateNewline, sal_True);
+        // prepare name (with most used)
+        enum ::xmloff::token::XMLTokenEnum eName(XML_CIRCLE);
 
-			ImpExportDescription( xShape ); // #i68101#
-			ImpExportEvents( xShape );
-			ImpExportGluePoints( xShape );
-			ImpExportText( xShape );
-		}
-		else
-		{
-			// write ellipse
-			SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_ELLIPSE, bCreateNewline, sal_True);
+        if(bCircle)
+        {
+            // name already set
+        }
+        else
+        {
+            // set name
+            eName = XML_ELLIPSE;
+        }
 
-			ImpExportDescription( xShape ); // #i68101#
-			ImpExportEvents( xShape );
-			ImpExportGluePoints( xShape );
-			ImpExportText( xShape );
-		}
-	}
+        // write ellipse or circle
+        SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, eName, bCreateNewline, sal_True);
+
+        ImpExportDescription( xShape ); // #i68101#
+        ImpExportEvents( xShape );
+        ImpExportGluePoints( xShape );
+        ImpExportText( xShape );
+    }
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -1013,6 +1013,9 @@ void XMLShapeExport::ImpExportPolygonSha
 
 		sal_Bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210#
 
+        // prepare name (with most used)
+        enum ::xmloff::token::XMLTokenEnum eName(XML_PATH);
+
         if(bBezier)
         {
             // get PolygonBezier
@@ -1032,14 +1035,6 @@ void XMLShapeExport::ImpExportPolygonSha
 
                 // write point array
                 mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString);
-
-                // write object now
-                SvXMLElementExport aOBJ(
-                    mrExport, 
-                    XML_NAMESPACE_DRAW, 
-                    XML_PATH, 
-                    bCreateNewline, 
-                    sal_True);
             }
         }
         else
@@ -1058,13 +1053,8 @@ void XMLShapeExport::ImpExportPolygonSha
                 // write point array
                 mrExport.AddAttribute(XML_NAMESPACE_DRAW, XML_POINTS, aPointString);
 
-                // write object now
-                SvXMLElementExport aOBJ(
-                    mrExport, 
-                    XML_NAMESPACE_DRAW, 
-                    aPolygon.isClosed() ? XML_POLYGON : XML_POLYLINE, 
-                    bCreateNewline, 
-                    sal_True);
+                // set name
+                eName = aPolygon.isClosed() ? XML_POLYGON : XML_POLYLINE;
             }
             else
             {
@@ -1078,17 +1068,19 @@ void XMLShapeExport::ImpExportPolygonSha
 
                 // write point array
                 mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString);
-
-                // write object now
-                SvXMLElementExport aOBJ(
-                    mrExport, 
-                    XML_NAMESPACE_DRAW, 
-                    XML_PATH, 
-                    bCreateNewline, 
-                    sal_True);
             }
         }
 
+        // write object, but after attributes are added since the destructor will
+        // consume all of these added attributes. Also before text is added; this may 
+        // open another SvXMLElementExport scope which needs to be inside this one
+        SvXMLElementExport aOBJ(
+            mrExport, 
+            XML_NAMESPACE_DRAW, 
+            eName, 
+            bCreateNewline, 
+            sal_True);
+
         ImpExportDescription( xShape ); // #i68101#
         ImpExportEvents( xShape );
         ImpExportGluePoints( xShape );