diff options
Diffstat (limited to 'chart2/source/controller/main')
5 files changed, 31 insertions, 17 deletions
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx index 139f17279b40..02c444d8f041 100644 --- a/chart2/source/controller/main/ChartController.cxx +++ b/chart2/source/controller/main/ChartController.cxx @@ -727,7 +727,7 @@ void ChartController::impl_createDrawViewController() { if( m_pDrawModelWrapper ) { - m_pDrawViewWrapper = new DrawViewWrapper(&m_pDrawModelWrapper->getSdrModel(),GetChartWindow()); + m_pDrawViewWrapper = new DrawViewWrapper(m_pDrawModelWrapper->getSdrModel(),GetChartWindow()); m_pDrawViewWrapper->attachParentReferenceDevice( getModel() ); } } diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx index d06524480847..00abbf63ad5e 100644 --- a/chart2/source/controller/main/ChartController_Tools.cxx +++ b/chart2/source/controller/main/ChartController_Tools.cxx @@ -395,11 +395,12 @@ void ChartController::impl_PasteShapes( SdrModel* pModel ) SdrObjListIter aIter( *pPage, SdrIterMode::DeepNoGroups ); while ( aIter.IsMore() ) { - SdrObject* pObj = aIter.Next(); - SdrObject* pNewObj = ( pObj ? pObj->Clone() : nullptr ); + SdrObject* pObj(aIter.Next()); + // Clone to new SdrModel + SdrObject* pNewObj(pObj ? pObj->Clone(&pDrawModelWrapper->getSdrModel()) : nullptr); + if ( pNewObj ) { - pNewObj->SetModel( &pDrawModelWrapper->getSdrModel() ); pNewObj->SetPage( pDestPage ); // set position @@ -516,7 +517,9 @@ void ChartController::executeDispatch_Copy() if ( pSelectedObj ) { xTransferable.set( new ChartTransferable( - &m_pDrawModelWrapper->getSdrModel(), pSelectedObj, aSelOID.isAdditionalShape() ) ); + m_pDrawModelWrapper->getSdrModel(), + pSelectedObj, + aSelOID.isAdditionalShape() ) ); } } } diff --git a/chart2/source/controller/main/ChartTransferable.cxx b/chart2/source/controller/main/ChartTransferable.cxx index 2eeb46a764f2..4888c4802b9f 100644 --- a/chart2/source/controller/main/ChartTransferable.cxx +++ b/chart2/source/controller/main/ChartTransferable.cxx @@ -46,12 +46,15 @@ using ::com::sun::star::uno::Reference; namespace chart { -ChartTransferable::ChartTransferable( SdrModel* pDrawModel, SdrObject* pSelectedObj, bool bDrawing ) - :m_pMarkedObjModel( nullptr ) +ChartTransferable::ChartTransferable( + SdrModel& rSdrModel, + SdrObject* pSelectedObj, + bool bDrawing) +: m_pMarkedObjModel( nullptr ) ,m_bDrawing( bDrawing ) { - std::unique_ptr<SdrExchangeView> pExchgView(o3tl::make_unique<SdrView>( pDrawModel )); - SdrPageView* pPv = pExchgView->ShowSdrPage( pDrawModel->GetPage( 0 )); + std::unique_ptr<SdrExchangeView> pExchgView(o3tl::make_unique<SdrView>( rSdrModel )); + SdrPageView* pPv = pExchgView->ShowSdrPage( rSdrModel.GetPage( 0 )); if( pSelectedObj ) pExchgView->MarkObj( pSelectedObj, pPv ); else diff --git a/chart2/source/controller/main/ChartTransferable.hxx b/chart2/source/controller/main/ChartTransferable.hxx index 35e4f5d514c1..6fc8b4c26f8c 100644 --- a/chart2/source/controller/main/ChartTransferable.hxx +++ b/chart2/source/controller/main/ChartTransferable.hxx @@ -36,16 +36,19 @@ namespace chart class ChartTransferable : public TransferableHelper { public: - explicit ChartTransferable( SdrModel* pDrawModel, SdrObject* pSelectedObj, bool bDrawing ); + explicit ChartTransferable( + SdrModel& rSdrModel, + SdrObject* pSelectedObj, + bool bDrawing ); virtual ~ChartTransferable() override; protected: // implementation of TransferableHelper methods - virtual void AddSupportedFormats() override; + virtual void AddSupportedFormats() override; virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override; - virtual bool WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, - const css::datatransfer::DataFlavor& rFlavor ) override; + virtual bool WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, + const css::datatransfer::DataFlavor& rFlavor ) override; private: css::uno::Reference< css::graphic::XGraphic > m_xMetaFileGraphic; diff --git a/chart2/source/controller/main/DrawCommandDispatch.cxx b/chart2/source/controller/main/DrawCommandDispatch.cxx index 7e318646ebf5..6c59620ce6c1 100644 --- a/chart2/source/controller/main/DrawCommandDispatch.cxx +++ b/chart2/source/controller/main/DrawCommandDispatch.cxx @@ -74,7 +74,7 @@ bool DrawCommandDispatch::isFeatureSupported( const OUString& rCommandURL ) return parseCommandURL( rCommandURL, &nFeatureId, &aBaseCommand, &aCustomShapeType ); } -::basegfx::B2DPolyPolygon getPolygon(const char* pResId, SdrModel const & rModel) +::basegfx::B2DPolyPolygon getPolygon(const char* pResId, const SdrModel& rModel) { ::basegfx::B2DPolyPolygon aReturn; XLineEndListRef pLineEndList = rModel.GetLineEndList(); @@ -123,7 +123,7 @@ void DrawCommandDispatch::setAttributes( SdrObject* pObj ) { const SfxItemSet& rSource = pSourceObj->GetMergedItemSet(); SfxItemSet aDest( - pObj->GetModel()->GetItemPool(), + pObj->getSdrModelFromSdrObject().GetItemPool(), svl::Items< // Ranges from SdrAttrObj: SDRATTR_START, SDRATTR_SHADOW_LAST, @@ -425,8 +425,13 @@ SdrObject* DrawCommandDispatch::createDefaultObject( const sal_uInt16 nID ) if ( pPage ) { SolarMutexGuard aGuard; - pObj = SdrObjFactory::MakeNewObject( pDrawViewWrapper->GetCurrentObjInventor(), - pDrawViewWrapper->GetCurrentObjIdentifier(), pPage ); + + pObj = SdrObjFactory::MakeNewObject( + pDrawModelWrapper->getSdrModel(), + pDrawViewWrapper->GetCurrentObjInventor(), + pDrawViewWrapper->GetCurrentObjIdentifier(), + pPage); + if ( pObj ) { Size aObjectSize( 4000, 2500 ); |