diff options
author | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2015-05-24 11:53:59 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2015-05-24 21:49:44 +0200 |
commit | 551c204740a37c8dbc7acd35bc9fe683ade3fe80 (patch) | |
tree | 0a06abd4d0ebeee01a85de85739406669cfa55ff /drawinglayer | |
parent | 187af9b0c09f6ba57e994a25a756f0994beae7e5 (diff) |
Fix tdf#87509 - default sdr attribute is special object.
The drawinglayer attributes signal defaultness by object identity, not
value equalness. That should fix a number of subtle cache and redraw
problems.
Change-Id: I049ffda228a48db71cef108571805c6e41e4b149
Diffstat (limited to 'drawinglayer')
13 files changed, 52 insertions, 0 deletions
diff --git a/drawinglayer/source/attribute/fillgradientattribute.cxx b/drawinglayer/source/attribute/fillgradientattribute.cxx index 2689d071cf67..497817e9b3d4 100644 --- a/drawinglayer/source/attribute/fillgradientattribute.cxx +++ b/drawinglayer/source/attribute/fillgradientattribute.cxx @@ -142,6 +142,10 @@ namespace drawinglayer bool FillGradientAttribute::operator==(const FillGradientAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpFillGradientAttribute == mpFillGradientAttribute; } diff --git a/drawinglayer/source/attribute/fillgraphicattribute.cxx b/drawinglayer/source/attribute/fillgraphicattribute.cxx index bd7b98ea48b2..89422befac87 100644 --- a/drawinglayer/source/attribute/fillgraphicattribute.cxx +++ b/drawinglayer/source/attribute/fillgraphicattribute.cxx @@ -120,6 +120,10 @@ namespace drawinglayer bool FillGraphicAttribute::operator==(const FillGraphicAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpFillGraphicAttribute == mpFillGraphicAttribute; } diff --git a/drawinglayer/source/attribute/fillhatchattribute.cxx b/drawinglayer/source/attribute/fillhatchattribute.cxx index 9e3adc79114f..f54db0861655 100644 --- a/drawinglayer/source/attribute/fillhatchattribute.cxx +++ b/drawinglayer/source/attribute/fillhatchattribute.cxx @@ -131,6 +131,10 @@ namespace drawinglayer bool FillHatchAttribute::operator==(const FillHatchAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpFillHatchAttribute == mpFillHatchAttribute; } diff --git a/drawinglayer/source/attribute/lineattribute.cxx b/drawinglayer/source/attribute/lineattribute.cxx index 6cf96e1d58f4..6d22e569ada7 100644 --- a/drawinglayer/source/attribute/lineattribute.cxx +++ b/drawinglayer/source/attribute/lineattribute.cxx @@ -118,6 +118,10 @@ namespace drawinglayer bool LineAttribute::operator==(const LineAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpLineAttribute == mpLineAttribute; } diff --git a/drawinglayer/source/attribute/linestartendattribute.cxx b/drawinglayer/source/attribute/linestartendattribute.cxx index f11e66f3e156..f3a0822a575f 100644 --- a/drawinglayer/source/attribute/linestartendattribute.cxx +++ b/drawinglayer/source/attribute/linestartendattribute.cxx @@ -110,6 +110,10 @@ namespace drawinglayer bool LineStartEndAttribute::operator==(const LineStartEndAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpLineStartEndAttribute == mpLineStartEndAttribute; } diff --git a/drawinglayer/source/attribute/sdrfillattribute.cxx b/drawinglayer/source/attribute/sdrfillattribute.cxx index aacfa877977d..2ad96fec408f 100644 --- a/drawinglayer/source/attribute/sdrfillattribute.cxx +++ b/drawinglayer/source/attribute/sdrfillattribute.cxx @@ -126,6 +126,10 @@ namespace drawinglayer bool SdrFillAttribute::operator==(const SdrFillAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrFillAttribute == mpSdrFillAttribute; } diff --git a/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx b/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx index 4ad7cdb91662..ea7e691cd169 100644 --- a/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx +++ b/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx @@ -161,6 +161,10 @@ namespace drawinglayer bool SdrFillGraphicAttribute::operator==(const SdrFillGraphicAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrFillGraphicAttribute == mpSdrFillGraphicAttribute; } diff --git a/drawinglayer/source/attribute/sdrlightingattribute3d.cxx b/drawinglayer/source/attribute/sdrlightingattribute3d.cxx index 9e3f809be312..43b4b946d3da 100644 --- a/drawinglayer/source/attribute/sdrlightingattribute3d.cxx +++ b/drawinglayer/source/attribute/sdrlightingattribute3d.cxx @@ -102,6 +102,10 @@ namespace drawinglayer bool SdrLightingAttribute::operator==(const SdrLightingAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrLightingAttribute == mpSdrLightingAttribute; } diff --git a/drawinglayer/source/attribute/sdrlineattribute.cxx b/drawinglayer/source/attribute/sdrlineattribute.cxx index 5afcac016887..f1842fa03853 100644 --- a/drawinglayer/source/attribute/sdrlineattribute.cxx +++ b/drawinglayer/source/attribute/sdrlineattribute.cxx @@ -142,6 +142,10 @@ namespace drawinglayer bool SdrLineAttribute::operator==(const SdrLineAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrLineAttribute == mpSdrLineAttribute; } diff --git a/drawinglayer/source/attribute/sdrlinestartendattribute.cxx b/drawinglayer/source/attribute/sdrlinestartendattribute.cxx index 20aa45da1837..b64f98c59042 100644 --- a/drawinglayer/source/attribute/sdrlinestartendattribute.cxx +++ b/drawinglayer/source/attribute/sdrlinestartendattribute.cxx @@ -144,6 +144,10 @@ namespace drawinglayer bool SdrLineStartEndAttribute::operator==(const SdrLineStartEndAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrLineStartEndAttribute == mpSdrLineStartEndAttribute; } diff --git a/drawinglayer/source/attribute/sdrsceneattribute3d.cxx b/drawinglayer/source/attribute/sdrsceneattribute3d.cxx index 5776d201c34a..a8734406220c 100644 --- a/drawinglayer/source/attribute/sdrsceneattribute3d.cxx +++ b/drawinglayer/source/attribute/sdrsceneattribute3d.cxx @@ -123,6 +123,10 @@ namespace drawinglayer bool SdrSceneAttribute::operator==(const SdrSceneAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpSdrSceneAttribute == mpSdrSceneAttribute; } diff --git a/drawinglayer/source/attribute/sdrshadowattribute.cxx b/drawinglayer/source/attribute/sdrshadowattribute.cxx index 9630593d90af..907423aa2238 100644 --- a/drawinglayer/source/attribute/sdrshadowattribute.cxx +++ b/drawinglayer/source/attribute/sdrshadowattribute.cxx @@ -109,6 +109,10 @@ namespace drawinglayer bool SdrShadowAttribute::operator==(const SdrShadowAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return mpSdrShadowAttribute == rCandidate.mpSdrShadowAttribute; } diff --git a/drawinglayer/source/attribute/strokeattribute.cxx b/drawinglayer/source/attribute/strokeattribute.cxx index 08445b04a5c4..efbcc5dbcc42 100644 --- a/drawinglayer/source/attribute/strokeattribute.cxx +++ b/drawinglayer/source/attribute/strokeattribute.cxx @@ -110,6 +110,10 @@ namespace drawinglayer bool StrokeAttribute::operator==(const StrokeAttribute& rCandidate) const { + // tdf#87509 default attr is always != non-default attr, even with same values + if(rCandidate.isDefault() != isDefault()) + return false; + return rCandidate.mpStrokeAttribute == mpStrokeAttribute; } |