[Libreoffice-commits] core.git: 4 commits - basctl/source include/svx reportdesign/source sc/inc svx/source sw/source
Kohei Yoshida
kohei.yoshida at collabora.com
Mon Dec 8 20:24:17 PST 2014
basctl/source/inc/dlgedfac.hxx | 1
include/svx/svdobj.hxx | 59 +++++++++-------
reportdesign/source/ui/inc/dlgedfac.hxx | 1
sc/inc/userdat.hxx | 1
svx/source/svdraw/svdfmtf.hxx | 2
svx/source/svdraw/svdobj.cxx | 96 ++++++++++++++++++++++-----
svx/source/table/tableundo.hxx | 1
sw/source/core/layout/anchoreddrawobject.cxx | 4 -
8 files changed, 120 insertions(+), 45 deletions(-)
New commits:
commit 28c251e3cc374314dc19fd772148707b0c711454
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Dec 8 23:20:14 2014 -0500
Remove more unnecessary header includes and use forward declaration.
Change-Id: I88d0fb0e7c20d4b1414516e3bd2f961811b2eb8c
diff --git a/basctl/source/inc/dlgedfac.hxx b/basctl/source/inc/dlgedfac.hxx
index d63dae8..6e8af7d 100644
--- a/basctl/source/inc/dlgedfac.hxx
+++ b/basctl/source/inc/dlgedfac.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_BASCTL_SOURCE_INC_DLGEDFAC_HXX
#include <svx/svdobj.hxx>
+#include <tools/link.hxx>
#include <com/sun/star/frame/XModel.hpp>
namespace basctl
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 21789af..1502a4f 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -26,18 +26,13 @@
#include <rtl/ustring.hxx>
#include <svl/lstner.hxx>
#include <svl/poolitem.hxx>
-#include <svx/svdsob.hxx>
#include <svx/svdtypes.hxx>
-#include <svx/svdglue.hxx>
-#include <svx/xdash.hxx>
-#include <svx/xpoly.hxx>
#include <svx/xenum.hxx>
#include <svx/svxdllapi.h>
#include <svx/shapeproperty.hxx>
#include <tools/weakbase.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/mapmod.hxx>
-#include <vcl/timer.hxx>
+#include <tools/mapunit.hxx>
+#include <tools/gen.hxx>
// forward declarations
@@ -70,6 +65,19 @@ class SdrVirtObj;
class SdrDragView;
class SdrObjUserDataList;
class SdrObjPlusData;
+class SdrGluePoint;
+class SdrGluePointList;
+class SetOfByte;
+class OutputDevice;
+class Fraction;
+class Link;
+
+namespace basegfx {
+
+class B2DPolyPolygon;
+class B2DHomMatrix;
+
+}
namespace sdr
{
diff --git a/reportdesign/source/ui/inc/dlgedfac.hxx b/reportdesign/source/ui/inc/dlgedfac.hxx
index 1f3c146..864dd36 100644
--- a/reportdesign/source/ui/inc/dlgedfac.hxx
+++ b/reportdesign/source/ui/inc/dlgedfac.hxx
@@ -22,6 +22,7 @@
#include <svx/svdobj.hxx>
+#include <tools/link.hxx>
namespace rptui
{
diff --git a/sc/inc/userdat.hxx b/sc/inc/userdat.hxx
index 6f13894..edfcf9b 100644
--- a/sc/inc/userdat.hxx
+++ b/sc/inc/userdat.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_SC_INC_USERDAT_HXX
#include <svx/svdobj.hxx>
+#include <tools/link.hxx>
#include <svtools/imap.hxx>
#include "global.hxx"
#include "address.hxx"
diff --git a/svx/source/svdraw/svdfmtf.hxx b/svx/source/svdraw/svdfmtf.hxx
index 8663296..5494b1f 100644
--- a/svx/source/svdraw/svdfmtf.hxx
+++ b/svx/source/svdraw/svdfmtf.hxx
@@ -25,7 +25,7 @@
#include <vcl/metaact.hxx>
#include <vcl/virdev.hxx>
#include <svx/svdobj.hxx>
-
+#include <svx/xdash.hxx>
// Forward Declarations
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 025903a..3ff4238 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -129,6 +129,8 @@
#include <svx/xlntrit.hxx>
#include <svx/xlnwtit.hxx>
#include <svx/xpoly.hxx>
+#include <svx/svdglue.hxx>
+#include <svx/svdsob.hxx>
#include <rtl/strbuf.hxx>
#include <svdoopengl.hxx>
#include <svdobjplusdata.hxx>
diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx
index 60b958f..2baa1a6 100644
--- a/sw/source/core/layout/anchoreddrawobject.cxx
+++ b/sw/source/core/layout/anchoreddrawobject.cxx
@@ -641,7 +641,7 @@ const SwRect SwAnchoredDrawObject::GetObjBoundRect() const
aPageRect = GetPageFrm()->Prt().SVRect();
else
aPageRect = GetPageFrm( )->GetBoundRect( ).SVRect();
- nTargetWidth = aPageRect.GetWidth( ) * GetDrawObj( )->GetRelativeWidth( ).get( );
+ nTargetWidth = aPageRect.GetWidth( ) * (*GetDrawObj( )->GetRelativeWidth());
}
long nTargetHeight = aCurrObjRect.GetHeight( );
@@ -653,7 +653,7 @@ const SwRect SwAnchoredDrawObject::GetObjBoundRect() const
aPageRect = GetPageFrm()->Prt().SVRect();
else
aPageRect = GetPageFrm( )->GetBoundRect( ).SVRect();
- nTargetHeight = aPageRect.GetHeight( ) * GetDrawObj( )->GetRelativeHeight( ).get( );
+ nTargetHeight = aPageRect.GetHeight( ) * (*GetDrawObj( )->GetRelativeHeight());
}
if ( nTargetWidth != aCurrObjRect.GetWidth( ) || nTargetHeight != aCurrObjRect.GetHeight( ) )
commit 1f1aee5fbd034c5f7c967e19631b6507408ec00f
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Dec 8 22:28:09 2014 -0500
Move these to Impl and remove boost::optional include.
Change-Id: I394d164c4d3f26d906204e2ed89efeef597ba810
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 02d98bc..21789af 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -39,8 +39,6 @@
#include <vcl/mapmod.hxx>
#include <vcl/timer.hxx>
-#include <boost/optional.hpp>
-
// forward declarations
class SfxBroadcaster;
@@ -358,20 +356,17 @@ protected:
// global static ItemPool for not-yet-inserted items
private:
static SdrItemPool* mpGlobalItemPool;
- boost::optional<double> mnRelativeWidth;
- sal_Int16 meRelativeWidthRelation;
- boost::optional<double> mnRelativeHeight;
- sal_Int16 meRelativeHeightRelation;
+
public:
static SdrItemPool& GetGlobalDrawObjectItemPool();
- void SetRelativeWidth( double nValue ) { mnRelativeWidth.reset( nValue ); }
- void SetRelativeWidthRelation( sal_Int16 eValue ) { meRelativeWidthRelation = eValue; }
- void SetRelativeHeight( double nValue ) { mnRelativeHeight.reset( nValue ); }
- void SetRelativeHeightRelation( sal_Int16 eValue ) { meRelativeHeightRelation = eValue; }
- boost::optional<double> GetRelativeWidth( ) const { return mnRelativeWidth; }
- sal_Int16 GetRelativeWidthRelation() const { return meRelativeWidthRelation; }
- boost::optional<double> GetRelativeHeight( ) const { return mnRelativeHeight; }
- sal_Int16 GetRelativeHeightRelation() const { return meRelativeHeightRelation; }
+ void SetRelativeWidth( double nValue );
+ void SetRelativeWidthRelation( sal_Int16 eValue );
+ void SetRelativeHeight( double nValue );
+ void SetRelativeHeightRelation( sal_Int16 eValue );
+ const double* GetRelativeWidth() const;
+ sal_Int16 GetRelativeWidthRelation() const;
+ const double* GetRelativeHeight() const;
+ sal_Int16 GetRelativeHeightRelation() const;
// evil calc grid/shape drawlayer syncing
Point GetGridOffset() const { return aGridOffset; }
void SetGridOffset( const Point& rGridOffset ){ aGridOffset = rGridOffset; }
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 1579795..025903a 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -135,6 +135,7 @@
#include <svdobjuserdatalist.hxx>
#include <boost/scoped_ptr.hpp>
+#include <boost/optional.hpp>
#include <libxml/xmlwriter.h>
using namespace ::com::sun::star;
@@ -271,6 +272,15 @@ SdrObjTransformInfoRec::SdrObjTransformInfoRec() :
struct SdrObject::Impl
{
sdr::ObjectUserVector maObjectUsers;
+
+ boost::optional<double> mnRelativeWidth;
+ sal_Int16 meRelativeWidthRelation;
+ boost::optional<double> mnRelativeHeight;
+ sal_Int16 meRelativeHeightRelation;
+
+ Impl() :
+ meRelativeWidthRelation(text::RelOrientation::PAGE_FRAME),
+ meRelativeHeightRelation(text::RelOrientation::PAGE_FRAME) {}
};
@@ -360,8 +370,6 @@ SdrObject::SdrObject() :
,pGrabBagItem(NULL)
,mnNavigationPosition(SAL_MAX_UINT32)
,mnLayerID(0)
- ,meRelativeWidthRelation(text::RelOrientation::PAGE_FRAME)
- ,meRelativeHeightRelation(text::RelOrientation::PAGE_FRAME)
,mpSvxShape( NULL )
,maWeakUnoShape()
,mbDoNotInsertIntoPageAutomatically(false)
@@ -546,6 +554,52 @@ SdrItemPool& SdrObject::GetGlobalDrawObjectItemPool()
return *mpGlobalItemPool;
}
+void SdrObject::SetRelativeWidth( double nValue )
+{
+ mpImpl->mnRelativeWidth.reset( nValue );
+}
+
+void SdrObject::SetRelativeWidthRelation( sal_Int16 eValue )
+{
+ mpImpl->meRelativeWidthRelation = eValue;
+}
+
+void SdrObject::SetRelativeHeight( double nValue )
+{
+ mpImpl->mnRelativeHeight.reset( nValue );
+}
+
+void SdrObject::SetRelativeHeightRelation( sal_Int16 eValue )
+{
+ mpImpl->meRelativeHeightRelation = eValue;
+}
+
+const double* SdrObject::GetRelativeWidth( ) const
+{
+ if (!mpImpl->mnRelativeWidth)
+ return NULL;
+
+ return &mpImpl->mnRelativeWidth.get();
+}
+
+sal_Int16 SdrObject::GetRelativeWidthRelation() const
+{
+ return mpImpl->meRelativeWidthRelation;
+}
+
+const double* SdrObject::GetRelativeHeight( ) const
+{
+ if (!mpImpl->mnRelativeHeight)
+ return NULL;
+
+ return &mpImpl->mnRelativeHeight.get();
+}
+
+sal_Int16 SdrObject::GetRelativeHeightRelation() const
+{
+ return mpImpl->meRelativeHeightRelation;
+}
+
SfxItemPool & SdrObject::GetObjectItemPool() const
{
if(pModel)
@@ -1530,10 +1584,10 @@ void SdrObject::Resize(const Point& rRef, const Fraction& xFact, const Fraction&
if (xFact.GetNumerator()!=xFact.GetDenominator() || yFact.GetNumerator()!=yFact.GetDenominator()) {
if (bUnsetRelative)
{
- mnRelativeWidth.reset( );
- meRelativeWidthRelation = text::RelOrientation::PAGE_FRAME;
- meRelativeHeightRelation = text::RelOrientation::PAGE_FRAME;
- mnRelativeHeight.reset( );
+ mpImpl->mnRelativeWidth.reset();
+ mpImpl->meRelativeWidthRelation = text::RelOrientation::PAGE_FRAME;
+ mpImpl->meRelativeHeightRelation = text::RelOrientation::PAGE_FRAME;
+ mpImpl->mnRelativeHeight.reset();
}
Rectangle aBoundRect0; if (pUserCall!=NULL) aBoundRect0=GetLastBoundRect();
NbcResize(rRef,xFact,yFact);
commit 822b3482414fe9be0e271727d58581a1df1d3b83
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Dec 8 21:43:11 2014 -0500
Add Impl to SdrObject and hide ObjectUser member.
SdrObject is quite large and we can't pimplize it in one go. Let's do
it bit by bit.
Change-Id: I40abe71799f6dcae90854dcc6979acc1d6ed7462
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 9e54989..02d98bc 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -20,7 +20,6 @@
#ifndef INCLUDED_SVX_SVDOBJ_HXX
#define INCLUDED_SVX_SVDOBJ_HXX
-#include <memory>
#include <typeinfo>
#include <com/sun/star/uno/Any.hxx>
#include <cppuhelper/weakref.hxx>
@@ -33,7 +32,6 @@
#include <svx/xdash.hxx>
#include <svx/xpoly.hxx>
#include <svx/xenum.hxx>
-#include <svx/sdrobjectuser.hxx>
#include <svx/svxdllapi.h>
#include <svx/shapeproperty.hxx>
#include <tools/weakbase.hxx>
@@ -80,8 +78,10 @@ namespace sdr
namespace properties
{
class BaseProperties;
- } // end of namespace properties
-} // end of namespace sdr
+ }
+
+ class ObjectUser;
+}
// #110094#
namespace sdr
@@ -262,10 +262,10 @@ class SvxShape;
class SVX_DLLPUBLIC SdrObject: public SfxListener, public tools::WeakBase< SdrObject >
{
private:
- SdrObject( const SdrObject& ); // disabled
+ struct Impl;
+ Impl* mpImpl;
- // ObjectUser section
- sdr::ObjectUserVector maObjectUsers;
+ SdrObject( const SdrObject& ); // disabled
public:
void AddObjectUser(sdr::ObjectUser& rNewUser);
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index d8a1442..1579795 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <svx/svdobj.hxx>
#include <config_features.h>
#include "sal/config.h"
@@ -66,6 +67,7 @@
#include <svx/sdr/contact/viewcontactofsdrobj.hxx>
#include <sdr/properties/emptyproperties.hxx>
#include <svx/sdrhittesthelper.hxx>
+#include <svx/sdrobjectuser.hxx>
#include <svx/sdrobjectfilter.hxx>
#include <svx/svddrag.hxx>
#include <svx/svdetc.hxx>
@@ -73,7 +75,6 @@
#include <svx/svditer.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdoashp.hxx>
-#include <svx/svdobj.hxx>
#include <svx/svdocapt.hxx>
#include <svx/svdocirc.hxx>
#include <svx/svdoedge.hxx>
@@ -267,6 +268,11 @@ SdrObjTransformInfoRec::SdrObjTransformInfoRec() :
bCanConvToPathLineToArea(true),
bCanConvToPolyLineToArea(true) {}
+struct SdrObject::Impl
+{
+ sdr::ObjectUserVector maObjectUsers;
+};
+
// BaseProperties section
@@ -291,15 +297,16 @@ sdr::properties::BaseProperties& SdrObject::GetProperties() const
void SdrObject::AddObjectUser(sdr::ObjectUser& rNewUser)
{
- maObjectUsers.push_back(&rNewUser);
+ mpImpl->maObjectUsers.push_back(&rNewUser);
}
void SdrObject::RemoveObjectUser(sdr::ObjectUser& rOldUser)
{
- const ::sdr::ObjectUserVector::iterator aFindResult = ::std::find(maObjectUsers.begin(), maObjectUsers.end(), &rOldUser);
- if(aFindResult != maObjectUsers.end())
+ const sdr::ObjectUserVector::iterator aFindResult =
+ std::find(mpImpl->maObjectUsers.begin(), mpImpl->maObjectUsers.end(), &rOldUser);
+ if (aFindResult != mpImpl->maObjectUsers.end())
{
- maObjectUsers.erase(aFindResult);
+ mpImpl->maObjectUsers.erase(aFindResult);
}
}
@@ -340,8 +347,9 @@ void SdrObject::SetBoundRectDirty()
TYPEINIT1(SdrObject,SfxListener);
-SdrObject::SdrObject()
- :mpProperties(0L)
+SdrObject::SdrObject() :
+ mpImpl(new Impl),
+ mpProperties(0L)
,mpViewContact(0L)
,pObjList(NULL)
,pPage(NULL)
@@ -387,7 +395,7 @@ SdrObject::SdrObject()
SdrObject::~SdrObject()
{
// tell all the registered ObjectUsers that the page is in destruction
- ::sdr::ObjectUserVector aListCopy(maObjectUsers.begin(), maObjectUsers.end());
+ sdr::ObjectUserVector aListCopy(mpImpl->maObjectUsers.begin(), mpImpl->maObjectUsers.end());
for(::sdr::ObjectUserVector::iterator aIterator = aListCopy.begin(); aIterator != aListCopy.end(); ++aIterator)
{
sdr::ObjectUser* pObjectUser = *aIterator;
@@ -397,7 +405,7 @@ SdrObject::~SdrObject()
// Clear the vector. This means that user do not need to call RemoveObjectUser()
// when they get called from ObjectInDestruction().
- maObjectUsers.clear();
+ mpImpl->maObjectUsers.clear();
try
{
@@ -431,6 +439,8 @@ SdrObject::~SdrObject()
delete mpViewContact;
mpViewContact = 0L;
}
+
+ delete mpImpl;
}
void SdrObject::Free( SdrObject*& _rpObject )
diff --git a/svx/source/table/tableundo.hxx b/svx/source/table/tableundo.hxx
index 1f7e24d..c9747cb 100644
--- a/svx/source/table/tableundo.hxx
+++ b/svx/source/table/tableundo.hxx
@@ -26,6 +26,7 @@
#include "svx/svdotable.hxx"
#include "svx/svdobj.hxx"
#include "svx/svdundo.hxx"
+#include <svx/sdrobjectuser.hxx>
#include "celltypes.hxx"
commit ac732491868fd233c68b45fd358a811c9810dd7b
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Dec 8 20:19:49 2014 -0500
Officially disable the copy c'tor of SdrObject.
Change-Id: I5f4ccad5077427afd09668c93f56c0ecce5f6f5d
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 30c3961..9e54989 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -262,6 +262,8 @@ class SvxShape;
class SVX_DLLPUBLIC SdrObject: public SfxListener, public tools::WeakBase< SdrObject >
{
private:
+ SdrObject( const SdrObject& ); // disabled
+
// ObjectUser section
sdr::ObjectUserVector maObjectUsers;
More information about the Libreoffice-commits
mailing list