diff --git a/include/svx/sdr/primitive2d/sdrframeborderprimitive2d.hxx b/include/svx/sdr/primitive2d/sdrframeborderprimitive2d.hxx index b06b5f92d71e..82072669829d 100644 --- a/include/svx/sdr/primitive2d/sdrframeborderprimitive2d.hxx +++ b/include/svx/sdr/primitive2d/sdrframeborderprimitive2d.hxx @@ -54,6 +54,7 @@ namespace drawinglayer const svx::frame::Style& getStyle() const { return maStyle; } const basegfx::B2DVector& getNormalizedPerpendicular() const { return maNormalizedPerpendicular; } bool getStyleMirrored() const { return mbStyleMirrored; } + bool operator==(const SdrConnectStyleData& rCompare) const; }; std::vector maStart; @@ -77,6 +78,7 @@ namespace drawinglayer double fMinDiscreteUnit) const; double getMinimalNonZeroBorderWidth() const; + bool operator==(const SdrFrameBorderData& rCompare) const; }; typedef std::vector SdrFrameBorderDataVector; diff --git a/svx/source/sdr/primitive2d/sdrframeborderprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrframeborderprimitive2d.cxx index c853da76ad11..3c131948579b 100644 --- a/svx/source/sdr/primitive2d/sdrframeborderprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrframeborderprimitive2d.cxx @@ -654,6 +654,13 @@ namespace drawinglayer::primitive2d { } + bool SdrFrameBorderData::SdrConnectStyleData::operator==(const SdrFrameBorderData::SdrConnectStyleData& rCompare) const + { + return mbStyleMirrored == rCompare.mbStyleMirrored + && maStyle == rCompare.maStyle + && maNormalizedPerpendicular == rCompare.maNormalizedPerpendicular; + } + SdrFrameBorderData::SdrFrameBorderData( const basegfx::B2DPoint& rOrigin, const basegfx::B2DVector& rX, @@ -748,6 +755,16 @@ namespace drawinglayer::primitive2d } + bool SdrFrameBorderData::operator==(const SdrFrameBorderData& rCompare) const + { + return maOrigin == rCompare.maOrigin + && maX == rCompare.maX + && maStyle == rCompare.maStyle + && maColor == rCompare.maColor + && mbForceColor == rCompare.mbForceColor + && maStart == rCompare.maStart + && maEnd == rCompare.maEnd; + } void SdrFrameBorderPrimitive2D::create2DDecomposition( @@ -860,7 +877,9 @@ namespace drawinglayer::primitive2d { const SdrFrameBorderPrimitive2D& rCompare = static_cast(rPrimitive); - return getFrameBorders() == rCompare.getFrameBorders() + return (getFrameBorders() == rCompare.getFrameBorders() + || (getFrameBorders() && rCompare.getFrameBorders() + && *getFrameBorders() == *rCompare.getFrameBorders())) && doForceToSingleDiscreteUnit() == rCompare.doForceToSingleDiscreteUnit(); }