summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorChristian Lippka ORACLE <christian.lippka@oracle.com>2011-03-09 18:32:29 +0100
committerChristian Lippka ORACLE <christian.lippka@oracle.com>2011-03-09 18:32:29 +0100
commit7bd8816087332807a2320b9e7711fdda751bf204 (patch)
tree073a535f05d4a5e025e3130b06f91665dd810ec9 /svx
parent7e78dded94afc6f3c6cadab1a10e2bca857c5baa (diff)
impress210: #i41995# fixed import of path animation from sxi files
Diffstat (limited to 'svx')
-rw-r--r--svx/inc/svx/svdobj.hxx3
-rw-r--r--svx/inc/svx/svdogrp.hxx3
-rw-r--r--svx/inc/svx/svdovirt.hxx2
-rw-r--r--svx/source/svdraw/svdobj.cxx6
-rw-r--r--svx/source/svdraw/svdogrp.cxx11
-rw-r--r--svx/source/svdraw/svdovirt.cxx2
6 files changed, 21 insertions, 6 deletions
diff --git a/svx/inc/svx/svdobj.hxx b/svx/inc/svx/svdobj.hxx
index 86d6f0717bb7..ef915a43ae30 100644
--- a/svx/inc/svx/svdobj.hxx
+++ b/svx/inc/svx/svdobj.hxx
@@ -673,7 +673,8 @@ public:
// a new method for accessing the last BoundRect.
virtual const Rectangle& GetLastBoundRect() const;
- virtual void RecalcBoundRect();
+ // If bForced is true, the boundrect is also calculated when the model is locked
+ virtual void RecalcBoundRect(bool bForced = false);
void BroadcastObjectChange() const;
diff --git a/svx/inc/svx/svdogrp.hxx b/svx/inc/svx/svdogrp.hxx
index 9cf0ad056047..bae18a85a261 100644
--- a/svx/inc/svx/svdogrp.hxx
+++ b/svx/inc/svx/svdogrp.hxx
@@ -79,6 +79,9 @@ public:
virtual const Rectangle& GetCurrentBoundRect() const;
virtual const Rectangle& GetSnapRect() const;
+ // If bForced is true, the boundrect is also calculated when the model is locked
+ virtual void RecalcBoundRect(bool bForced = false);
+
virtual void operator=(const SdrObject& rObj);
virtual void TakeObjNameSingul(String& rName) const;
diff --git a/svx/inc/svx/svdovirt.hxx b/svx/inc/svx/svdovirt.hxx
index dba62f84730e..b169e9e03958 100644
--- a/svx/inc/svx/svdovirt.hxx
+++ b/svx/inc/svx/svdovirt.hxx
@@ -76,7 +76,7 @@ public:
virtual const Rectangle& GetCurrentBoundRect() const;
virtual const Rectangle& GetLastBoundRect() const;
- virtual void RecalcBoundRect();
+ virtual void RecalcBoundRect(bool bForced = false);
virtual void SetChanged();
virtual SdrObject* Clone() const;
virtual void operator=(const SdrObject& rObj);
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 81ff5005d0f6..4cf78b1cebb5 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -926,14 +926,14 @@ const Rectangle& SdrObject::GetLastBoundRect() const
return aOutRect;
}
-void SdrObject::RecalcBoundRect()
+void SdrObject::RecalcBoundRect(bool bForced)
{
// #i101680# suppress BoundRect calculations on import(s)
- if(pModel && pModel->isLocked() )
+ if(pModel && pModel->isLocked() && !bForced )
return;
// central new method which will calculate the BoundRect using primitive geometry
- if(aOutRect.IsEmpty())
+ if(aOutRect.IsEmpty() || bForced)
{
const drawinglayer::primitive2d::Primitive2DSequence xPrimitives(GetViewContact().getViewIndependentPrimitive2DSequence());
diff --git a/svx/source/svdraw/svdogrp.cxx b/svx/source/svdraw/svdogrp.cxx
index ede6b35178f9..c62732ed044b 100644
--- a/svx/source/svdraw/svdogrp.cxx
+++ b/svx/source/svdraw/svdogrp.cxx
@@ -282,6 +282,17 @@ const Rectangle& SdrObjGroup::GetCurrentBoundRect() const
// <--
}
+void SdrObjGroup::RecalcBoundRect(bool bForced)
+{
+ if( bForced )
+ {
+ sal_uIntPtr nAnz=pSub->GetObjCount();
+ for( sal_uIntPtr i=0; i<nAnz; i++)
+ pSub->GetObj(i)->RecalcBoundRect(true);
+ }
+
+ SdrObject::RecalcBoundRect(bForced);
+}
const Rectangle& SdrObjGroup::GetSnapRect() const
{
diff --git a/svx/source/svdraw/svdovirt.cxx b/svx/source/svdraw/svdovirt.cxx
index c6703f2305df..53d81b54d27e 100644
--- a/svx/source/svdraw/svdovirt.cxx
+++ b/svx/source/svdraw/svdovirt.cxx
@@ -148,7 +148,7 @@ const Rectangle& SdrVirtObj::GetLastBoundRect() const
return aOutRect;
}
-void SdrVirtObj::RecalcBoundRect()
+void SdrVirtObj::RecalcBoundRect(bool bForced)
{
aOutRect=rRefObj.GetCurrentBoundRect();
aOutRect+=aAnchor;