Author: alg Date: Fri Nov 8 12:44:22 2013 New Revision: 1539999 URL: http://svn.apache.org/r1539999 Log: i123616 be more flexible regarding the data type for polygon data
Modified: openoffice/trunk/main/svx/source/unodraw/unoshape.cxx Modified: openoffice/trunk/main/svx/source/unodraw/unoshape.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/unodraw/unoshape.cxx?rev=1539999&r1=1539998&r2=1539999&view=diff ============================================================================== --- openoffice/trunk/main/svx/source/unodraw/unoshape.cxx (original) +++ openoffice/trunk/main/svx/source/unodraw/unoshape.cxx Fri Nov 8 12:44:22 2013 @@ -92,6 +92,7 @@ #include <editeng/outlobj.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b2dhommatrixtools.hxx> +#include <basegfx/polygon/b2dpolypolygontools.hxx> #include <vector> @@ -2403,12 +2404,26 @@ bool SvxShape::setPropertyValueImpl( con } break; } - case OWN_ATTR_EDGE_POLYPOLYGONBEZIER: - { - drawing::PolyPolygonBezierCoords aPolyPoly; - if ( rValue >>= aPolyPoly ) - { - basegfx::B2DPolyPolygon aNewPolyPolygon( SvxConvertPolyPolygonBezierToB2DPolyPolygon( &aPolyPoly ) ); + case OWN_ATTR_EDGE_POLYPOLYGONBEZIER: + { + basegfx::B2DPolyPolygon aNewPolyPolygon; + + // #123616# be a little bit more flexible regardin gthe data type used + if( rValue.getValueType() == ::getCppuType(( const drawing::PointSequenceSequence*)0)) + { + // get polygpon data from PointSequenceSequence + aNewPolyPolygon = basegfx::tools::UnoPointSequenceSequenceToB2DPolyPolygon( + *(const drawing::PointSequenceSequence*)rValue.getValue()); + } + else if( rValue.getValueType() == ::getCppuType(( const drawing::PolyPolygonBezierCoords*)0)) + { + // get polygpon data from PolyPolygonBezierCoords + aNewPolyPolygon = basegfx::tools::UnoPolyPolygonBezierCoordsToB2DPolyPolygon( + *(const drawing::PolyPolygonBezierCoords*)rValue.getValue()); + } + + if(aNewPolyPolygon.count()) + { // --> OD 2010-02-19 #i108851# - reintroduction of fix for issue i59051 ForceMetricToItemPoolMetric( aNewPolyPolygon ); // <-- @@ -2419,9 +2434,9 @@ bool SvxShape::setPropertyValueImpl( con } pEdgeObj->SetEdgeTrackPath( aNewPolyPolygon ); return true; - } - } - } + } + } + } } break; }