From 06d8e6264487e3084b583e5158d9b89f8480b3eb Mon Sep 17 00:00:00 2001 From: Armin Le Grand Date: Sun, 8 Apr 2018 14:47:23 +0200 Subject: Make getSdrModelFromUnoModel work with SdrModel& Change-Id: Iea3af7db77ef778db7bbdf2c1b6b1b956fd57fec Reviewed-on: https://gerrit.libreoffice.org/52592 Tested-by: Jenkins Reviewed-by: Armin Le Grand --- include/svx/unomod.hxx | 6 +++++- include/svx/unomodel.hxx | 2 +- reportdesign/inc/ReportDefinition.hxx | 2 +- reportdesign/source/core/api/ReportDefinition.cxx | 5 +++-- sc/inc/docuno.hxx | 2 +- sc/source/ui/unoobj/docuno.cxx | 4 ++-- sd/source/ui/inc/unomodel.hxx | 2 +- sd/source/ui/unoidl/unomodel.cxx | 5 +++-- svx/source/form/fmdmod.cxx | 5 ++--- svx/source/unodraw/unomod.cxx | 5 +++-- sw/inc/unotxdoc.hxx | 2 +- sw/source/uibase/uno/unotxdoc.cxx | 4 ++-- 12 files changed, 25 insertions(+), 19 deletions(-) diff --git a/include/svx/unomod.hxx b/include/svx/unomod.hxx index 04571c9071b2..f8ecfd6fc965 100644 --- a/include/svx/unomod.hxx +++ b/include/svx/unomod.hxx @@ -34,7 +34,11 @@ class SVX_DLLPUBLIC SvxUnoDrawMSFactory : public css::lang::XMultiServiceFactory { protected: /** abstract SdrModel provider */ - virtual SdrModel* getSdrModelFromUnoModel() const = 0; //TTTT make reference return + // Every App has a DrwingLayer as internal Tooling, thus ist is + // not too hard to asl a UnoModel to hand back a DrawingLayer Model in the + // form of an SdrModel. Thus, returning a reference and make usages + // safer and easier is justified. + virtual SdrModel& getSdrModelFromUnoModel() const = 0; //TTTT make reference return public: SvxUnoDrawMSFactory() throw() {}; diff --git a/include/svx/unomodel.hxx b/include/svx/unomodel.hxx index e637e4486d2a..5d5e15a5bee8 100644 --- a/include/svx/unomodel.hxx +++ b/include/svx/unomodel.hxx @@ -56,7 +56,7 @@ private: protected: // SvxUnoDrawMSFactory - virtual SdrModel* getSdrModelFromUnoModel() const override; + virtual SdrModel& getSdrModelFromUnoModel() const override; public: SvxUnoDrawingModel( SdrModel* pDoc ) throw(); diff --git a/reportdesign/inc/ReportDefinition.hxx b/reportdesign/inc/ReportDefinition.hxx index 79c58c998600..bdcaeb8f2552 100644 --- a/reportdesign/inc/ReportDefinition.hxx +++ b/reportdesign/inc/ReportDefinition.hxx @@ -188,7 +188,7 @@ namespace reportdesign protected: /** abstract SdrModel provider */ - virtual SdrModel* getSdrModelFromUnoModel() const override; + virtual SdrModel& getSdrModelFromUnoModel() const override; public: //TTTT Needed? Or same as above? diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx index 11064f21d36e..82de0192902e 100644 --- a/reportdesign/source/core/api/ReportDefinition.cxx +++ b/reportdesign/source/core/api/ReportDefinition.cxx @@ -2020,9 +2020,10 @@ std::shared_ptr OReportDefinition::getSdrModel(const uno::R return pReportModel; } -SdrModel* OReportDefinition::getSdrModelFromUnoModel() const +SdrModel& OReportDefinition::getSdrModelFromUnoModel() const { - return m_pImpl->m_pReportModel.get(); + OSL_ENSURE(m_pImpl->m_pReportModel.get(), "No SdrModel in ReportDesign, should not happen"); + return *m_pImpl->m_pReportModel.get(); } uno::Reference< uno::XInterface > SAL_CALL OReportDefinition::createInstanceWithArguments( const OUString& aServiceSpecifier, const uno::Sequence< uno::Any >& _aArgs) diff --git a/sc/inc/docuno.hxx b/sc/inc/docuno.hxx index 8c7382cd1050..bb99b2e07f59 100644 --- a/sc/inc/docuno.hxx +++ b/sc/inc/docuno.hxx @@ -125,7 +125,7 @@ protected: const SfxItemPropertySet& GetPropertySet() const { return aPropSet; } /** abstract SdrModel provider */ - virtual SdrModel* getSdrModelFromUnoModel() const override; + virtual SdrModel& getSdrModelFromUnoModel() const override; public: ScModelObj(ScDocShell* pDocSh); diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index ee46cd116c43..c0fcc48264e1 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -373,7 +373,7 @@ void ScModelObj::CreateAndSet(ScDocShell* pDocSh) pDocSh->SetBaseModel( new ScModelObj(pDocSh) ); } -SdrModel* ScModelObj::getSdrModelFromUnoModel() const +SdrModel& ScModelObj::getSdrModelFromUnoModel() const { ScDocument& rDoc(pDocShell->GetDocument()); @@ -382,7 +382,7 @@ SdrModel* ScModelObj::getSdrModelFromUnoModel() const rDoc.InitDrawLayer(); } - return rDoc.GetDrawLayer(); + return *rDoc.GetDrawLayer(); // TTTT should be reference } ScModelObj::ScModelObj( ScDocShell* pDocSh ) : diff --git a/sd/source/ui/inc/unomodel.hxx b/sd/source/ui/inc/unomodel.hxx index 381b22be955f..0baaa22eda96 100644 --- a/sd/source/ui/inc/unomodel.hxx +++ b/sd/source/ui/inc/unomodel.hxx @@ -130,7 +130,7 @@ private: protected: /** abstract SdrModel provider */ - virtual SdrModel* getSdrModelFromUnoModel() const override; + virtual SdrModel& getSdrModelFromUnoModel() const override; public: SdXImpressDocument(::sd::DrawDocShell* pShell, bool bClipBoard); diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index b6ee7d5d1122..dc53abb989b5 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -2714,9 +2714,10 @@ void SdXImpressDocument::initializeDocument() } } -SdrModel* SdXImpressDocument::getSdrModelFromUnoModel() const +SdrModel& SdXImpressDocument::getSdrModelFromUnoModel() const { - return GetDoc(); + OSL_ENSURE(GetDoc(), "No SdrModel in draw/Impress, should not happen"); + return *GetDoc(); // TTTT should be reference } void SAL_CALL SdXImpressDocument::dispose() diff --git a/svx/source/form/fmdmod.cxx b/svx/source/form/fmdmod.cxx index ac197b2ff419..509d4c4ed5dc 100644 --- a/svx/source/form/fmdmod.cxx +++ b/svx/source/form/fmdmod.cxx @@ -39,9 +39,8 @@ using namespace ::svxform; } else if ( rServiceSpecifier == "com.sun.star.drawing.ControlShape" ) { - SdrModel* pTargetModel = getSdrModelFromUnoModel(); - OSL_ENSURE(pTargetModel, "Got no SdrModel for SdrShape construction (!)"); - SdrObject* pObj = new FmFormObj(*pTargetModel); + SdrModel& rTargetModel(getSdrModelFromUnoModel()); + SdrObject* pObj = new FmFormObj(rTargetModel); xRet = static_cast(static_cast(new SvxShapeControl(pObj))); } diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx index dd1d1317f7a6..83f621ab6e8e 100644 --- a/svx/source/unodraw/unomod.cxx +++ b/svx/source/unodraw/unomod.cxx @@ -246,9 +246,10 @@ uno::Sequence< OUString > SvxUnoDrawMSFactory::concatServiceNames( uno::Sequence return aSeq; } -SdrModel* SvxUnoDrawingModel::getSdrModelFromUnoModel() const +SdrModel& SvxUnoDrawingModel::getSdrModelFromUnoModel() const { - return mpDoc; + OSL_ENSURE(mpDoc, "No SdrModel in UnoDrawingModel, should not happen"); + return *mpDoc; } SvxUnoDrawingModel::SvxUnoDrawingModel(SdrModel* pDoc) throw() diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index eb0964f922c6..3d1577d52d0f 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -201,7 +201,7 @@ private: protected: /** abstract SdrModel provider */ - virtual SdrModel* getSdrModelFromUnoModel() const override; + virtual SdrModel& getSdrModelFromUnoModel() const override; virtual ~SwXTextDocument() override; public: diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 3aa9a3cfa688..0b39cd08a47d 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -450,10 +450,10 @@ SwXTextDocument::SwXTextDocument(SwDocShell* pShell) { } -SdrModel* SwXTextDocument::getSdrModelFromUnoModel() const +SdrModel& SwXTextDocument::getSdrModelFromUnoModel() const { OSL_ENSURE(pDocShell->GetDoc()->getIDocumentDrawModelAccess().GetOrCreateDrawModel(), "No SdrModel in SwDoc, should not happen"); - return pDocShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); + return *pDocShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); } SwXTextDocument::~SwXTextDocument() -- cgit