chart2/source/inc/chartview/DrawModelWrapper.hxx |    2 +-
 chart2/source/view/main/DrawModelWrapper.cxx     |    8 +++-----
 include/svx/svdmodel.hxx                         |    9 +++++----
 reportdesign/inc/RptModel.hxx                    |    2 +-
 reportdesign/source/core/sdr/RptModel.cxx        |    4 ++--
 sc/inc/drwlayer.hxx                              |    2 +-
 sc/source/core/data/drwlayer.cxx                 |    6 +++---
 sd/inc/drawdoc.hxx                               |    2 +-
 sd/source/core/drawdoc.cxx                       |    4 ++--
 sd/source/ui/animations/SlideTransitionPane.cxx  |    2 +-
 sd/source/ui/app/sdxfer.cxx                      |    4 ++--
 sd/source/ui/slideshow/slideshowimpl.cxx         |    2 +-
 svx/source/svdraw/svdmodel.cxx                   |    9 ++++-----
 svx/source/svdraw/svdoole2.cxx                   |    3 +--
 svx/source/unogallery/unogalitem.cxx             |    6 +++---
 svx/source/unogallery/unogaltheme.cxx            |    4 ++--
 svx/source/xml/xmlexport.cxx                     |   10 ++++++----
 sw/inc/drawdoc.hxx                               |    2 +-
 sw/source/core/draw/drawdoc.cxx                  |    4 ++--
 19 files changed, 42 insertions(+), 43 deletions(-)

New commits:
commit 516f7dafd009988f3fc58041bc265b836f4b7322
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Oct 6 09:58:45 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Oct 6 14:13:28 2023 +0200

    SdrModel::getUnoModel can use XModel instead of XInterface
    
    Change-Id: Ica10c62066881ba86099d2057ff6fe20e0084a85
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157632
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/inc/chartview/DrawModelWrapper.hxx 
b/chart2/source/inc/chartview/DrawModelWrapper.hxx
index fb977528e8f1..080587e7ecfe 100644
--- a/chart2/source/inc/chartview/DrawModelWrapper.hxx
+++ b/chart2/source/inc/chartview/DrawModelWrapper.hxx
@@ -66,7 +66,7 @@ public:
 
     SfxItemPool&            GetItemPool();
 
-    SAL_DLLPRIVATE virtual css::uno::Reference< css::uno::XInterface >
+    SAL_DLLPRIVATE virtual css::uno::Reference< css::frame::XModel >
         createUnoModel() override;
     SAL_DLLPRIVATE css::uno::Reference< css::frame::XModel >
         getUnoModel();
diff --git a/chart2/source/view/main/DrawModelWrapper.cxx 
b/chart2/source/view/main/DrawModelWrapper.cxx
index d5aff15c6660..9b4a8b28a1ef 100644
--- a/chart2/source/view/main/DrawModelWrapper.cxx
+++ b/chart2/source/view/main/DrawModelWrapper.cxx
@@ -123,16 +123,14 @@ DrawModelWrapper::~DrawModelWrapper()
     m_pRefDevice.disposeAndClear();
 }
 
-uno::Reference< uno::XInterface > DrawModelWrapper::createUnoModel()
+uno::Reference< frame::XModel > DrawModelWrapper::createUnoModel()
 {
-    uno::Reference< lang::XComponent > xComponent = new SvxUnoDrawingModel( 
this ); //tell Andreas Schluens if SvxUnoDrawingModel is not needed anymore -> 
remove export from svx to avoid link problems in writer
-    return uno::Reference< uno::XInterface >::query( xComponent );
+    return new SvxUnoDrawingModel( this ); //tell Andreas Schluens if 
SvxUnoDrawingModel is not needed anymore -> remove export from svx to avoid 
link problems in writer
 }
 
 uno::Reference< frame::XModel > DrawModelWrapper::getUnoModel()
 {
-    uno::Reference< uno::XInterface > xI = SdrModel::getUnoModel();
-    return uno::Reference<frame::XModel>::query( xI );
+    return SdrModel::getUnoModel();
 }
 
 SdrModel& DrawModelWrapper::getSdrModel()
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index 9016c9a03fe0..81ec0927db4c 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -22,6 +22,7 @@
 #include <functional>
 #include <memory>
 #include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/frame/XModel.hpp>
 #include <editeng/forbiddencharacterstable.hxx>
 #include <editeng/outliner.hxx>
 #include <rtl/ustring.hxx>
@@ -253,7 +254,7 @@ public:
 
 protected:
     void implDtorClearModel();
-    virtual css::uno::Reference< css::uno::XInterface > createUnoModel();
+    virtual css::uno::Reference< css::frame::XModel > createUnoModel();
 
 private:
     SdrModel(const SdrModel& rSrcModel) = delete;
@@ -267,7 +268,7 @@ private:
     SVX_DLLPRIVATE void ImpCreateTables(bool bDisablePropertyFiles);
 
     // this is a weak reference to a possible living api wrapper for this model
-    css::uno::Reference< css::uno::XInterface > mxUnoModel;
+    css::uno::Reference< css::frame::XModel > mxUnoModel;
 
     // used to disable unique name checking during page move
     bool mbMakePageObjectsNamesUnique = true;
@@ -553,8 +554,8 @@ public:
     bool GetDisableTextEditUsesCommonUndoManager() const { return 
mbDisableTextEditUsesCommonUndoManager; }
     void SetDisableTextEditUsesCommonUndoManager(bool bNew) { 
mbDisableTextEditUsesCommonUndoManager = bNew; }
 
-    css::uno::Reference< css::uno::XInterface > const & getUnoModel();
-    void setUnoModel( const css::uno::Reference< css::uno::XInterface >& 
xModel );
+    css::uno::Reference< css::frame::XModel > const & getUnoModel();
+    void setUnoModel( const css::uno::Reference< css::frame::XModel >& xModel 
);
 
     // these functions are used by the api to disable repaints during a
     // set of api calls.
diff --git a/reportdesign/inc/RptModel.hxx b/reportdesign/inc/RptModel.hxx
index b0c14aabc230..a80c1f9c0a63 100644
--- a/reportdesign/inc/RptModel.hxx
+++ b/reportdesign/inc/RptModel.hxx
@@ -46,7 +46,7 @@ private:
     ::dbaui::DBSubComponentController*  m_pController;
     ::reportdesign::OReportDefinition*  m_pReportDefinition;
 
-    virtual css::uno::Reference< css::uno::XInterface > createUnoModel() 
override;
+    virtual css::uno::Reference< css::frame::XModel > createUnoModel() 
override;
 
     OReportModel( const OReportModel& ) = delete;
     void operator=(const OReportModel& rSrcModel) = delete;
diff --git a/reportdesign/source/core/sdr/RptModel.cxx 
b/reportdesign/source/core/sdr/RptModel.cxx
index 6f7cfa1482d8..0aad6b6f0895 100644
--- a/reportdesign/source/core/sdr/RptModel.cxx
+++ b/reportdesign/source/core/sdr/RptModel.cxx
@@ -139,9 +139,9 @@ uno::Reference< report::XReportDefinition > 
OReportModel::getReportDefinition()
     return xReportDefinition;
 }
 
-uno::Reference< uno::XInterface > OReportModel::createUnoModel()
+uno::Reference< frame::XModel > OReportModel::createUnoModel()
 {
-    return uno::Reference< uno::XInterface 
>(getReportDefinition(),uno::UNO_QUERY);
+    return getReportDefinition();
 }
 
 uno::Reference< uno::XInterface > OReportModel::createShape(const OUString& 
aServiceSpecifier,uno::Reference< drawing::XShape >& _rShape,sal_Int32 
nOrientation)
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index eea0b118b521..6f1322b4b9d6 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -227,7 +227,7 @@ private:
 public:
     static void     SetGlobalDrawPersist(SfxObjectShell* pPersist);
 private:
-    virtual css::uno::Reference< css::uno::XInterface > createUnoModel() 
override;
+    virtual css::uno::Reference< css::frame::XModel > createUnoModel() 
override;
 };
 
 extern bool bDrawIsInUndo; // somewhere as member!
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index 26ee7fb41375..a909a9d11ad1 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -2938,11 +2938,11 @@ void ScDrawLayer::SetChanged( bool bFlg /* = true */ )
     FmFormModel::SetChanged( bFlg );
 }
 
-css::uno::Reference< css::uno::XInterface > ScDrawLayer::createUnoModel()
+css::uno::Reference< css::frame::XModel > ScDrawLayer::createUnoModel()
 {
-    css::uno::Reference< css::uno::XInterface > xRet;
+    css::uno::Reference< css::frame::XModel > xRet;
     if( pDoc && pDoc->GetDocumentShell() )
-        xRet = 
static_cast<cppu::OWeakObject*>(pDoc->GetDocumentShell()->GetModel());
+        xRet = pDoc->GetDocumentShell()->GetModel();
 
     return xRet;
 }
diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx
index 12814f3717b8..5b602c45ec12 100644
--- a/sd/inc/drawdoc.hxx
+++ b/sd/inc/drawdoc.hxx
@@ -191,7 +191,7 @@ private:
 
     sal_Int32 mnImagePreferredDPI;
 
-    SAL_DLLPRIVATE virtual css::uno::Reference< css::uno::XInterface > 
createUnoModel() override;
+    SAL_DLLPRIVATE virtual css::uno::Reference< css::frame::XModel > 
createUnoModel() override;
 
 public:
 
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx
index 3adb91275784..76a1efd2d97b 100644
--- a/sd/source/core/drawdoc.cxx
+++ b/sd/source/core/drawdoc.cxx
@@ -1010,9 +1010,9 @@ void SdDrawDocument::SetOnlineSpell(bool bIn)
 }
 
 // OnlineSpelling: highlighting on/off
-uno::Reference< uno::XInterface > SdDrawDocument::createUnoModel()
+uno::Reference< frame::XModel > SdDrawDocument::createUnoModel()
 {
-    uno::Reference< uno::XInterface > xModel;
+    uno::Reference< frame::XModel > xModel;
 
     try
     {
diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx 
b/sd/source/ui/animations/SlideTransitionPane.cxx
index ac3f01762d50..e2c954623eaa 100644
--- a/sd/source/ui/animations/SlideTransitionPane.cxx
+++ b/sd/source/ui/animations/SlideTransitionPane.cxx
@@ -436,7 +436,7 @@ void SlideTransitionPane::Initialize(SdDrawDocument* pDoc)
     mxVS_TRANSITION_ICONSWin.reset(new weld::CustomWeld(*m_xBuilder, 
"transitions_icons", *mxVS_TRANSITION_ICONS));
 
     if( pDoc )
-        mxModel.set( pDoc->getUnoModel(), uno::UNO_QUERY );
+        mxModel = pDoc->getUnoModel();
     // TODO: get correct view
     if( mxModel.is())
         mxView.set( mxModel->getCurrentController(), uno::UNO_QUERY );
diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx
index 693dd399c321..11fc9017f64d 100644
--- a/sd/source/ui/app/sdxfer.cxx
+++ b/sd/source/ui/app/sdxfer.cxx
@@ -574,8 +574,8 @@ bool SdTransferable::WriteObject( 
tools::SvRef<SotTempStream>& rxOStm, void* pOb
                     pDoc->BurnInStyleSheetAttributes();
                 rxOStm->SetBufferSize( 16348 );
 
-                Reference< XComponent > xComponent( new SdXImpressDocument( 
pDoc, true ) );
-                pDoc->setUnoModel( Reference< XInterface >::query( xComponent 
) );
+                rtl::Reference< SdXImpressDocument > xComponent( new 
SdXImpressDocument( pDoc, true ) );
+                pDoc->setUnoModel( xComponent );
 
                 {
                     css::uno::Reference<css::io::XOutputStream> xDocOut( new 
utl::OOutputStreamWrapper( *rxOStm ) );
diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx 
b/sd/source/ui/slideshow/slideshowimpl.cxx
index f91a6aaa816b..903e7d925baf 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -487,7 +487,7 @@ constexpr OUStringLiteral gsBookmark( u"Bookmark" );
 constexpr OUStringLiteral gsVerb( u"Verb" );
 
 SlideshowImpl::SlideshowImpl( const Reference< XPresentation2 >& 
xPresentation, ViewShell* pViewSh, ::sd::View* pView, SdDrawDocument* pDoc, 
vcl::Window* pParentWindow )
-: mxModel(pDoc->getUnoModel(),UNO_QUERY_THROW)
+: mxModel(pDoc->getUnoModel())
 , maUpdateTimer("SlideShowImpl maUpdateTimer")
 , maInputFreezeTimer("SlideShowImpl maInputFreezeTimer")
 , maDeactivateTimer("SlideShowImpl maDeactivateTimer")
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index ef4ffdfb9c29..ba57b71c685b 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -1579,7 +1579,7 @@ std::shared_ptr<model::Theme> const& SdrModel::getTheme() 
const
     return mpImpl->mpTheme;
 }
 
-uno::Reference< uno::XInterface > const & SdrModel::getUnoModel()
+uno::Reference< frame::XModel > const & SdrModel::getUnoModel()
 {
     if( !mxUnoModel.is() )
         mxUnoModel = createUnoModel();
@@ -1587,7 +1587,7 @@ uno::Reference< uno::XInterface > const & 
SdrModel::getUnoModel()
     return mxUnoModel;
 }
 
-void SdrModel::setUnoModel(const uno::Reference<uno::XInterface>& xModel)
+void SdrModel::setUnoModel(const uno::Reference<frame::XModel>& xModel)
 {
     mxUnoModel = xModel;
 }
@@ -1604,11 +1604,10 @@ void SdrModel::adaptSizeAndBorderForAllPages(
     // to do this for higher-level (derived) Models (e.g. Draw/Impress)
 }
 
-uno::Reference< uno::XInterface > SdrModel::createUnoModel()
+uno::Reference< frame::XModel > SdrModel::createUnoModel()
 {
     OSL_FAIL( "SdrModel::createUnoModel() - base implementation should not be 
called!" );
-    uno::Reference<uno::XInterface> xInt;
-    return xInt;
+    return nullptr;
 }
 
 void SdrModel::setLock( bool bLock )
diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
index 58c0c5d8ff91..0362d3656b3e 100644
--- a/svx/source/svdraw/svdoole2.cxx
+++ b/svx/source/svdraw/svdoole2.cxx
@@ -1917,8 +1917,7 @@ bool SdrOle2Obj::IsCalc() const
 
 uno::Reference< frame::XModel > SdrOle2Obj::GetParentXModel() const
 {
-    uno::Reference< frame::XModel > 
xDoc(getSdrModelFromSdrObject().getUnoModel(), uno::UNO_QUERY);
-    return xDoc;
+    return getSdrModelFromSdrObject().getUnoModel();
 }
 
 bool SdrOle2Obj::CalculateNewScaling( Fraction& aScaleWidth, Fraction& 
aScaleHeight, Size& aObjAreaSize )
diff --git a/svx/source/unogallery/unogalitem.cxx 
b/svx/source/unogallery/unogalitem.cxx
index 5e72a25c0a28..d6efdf2822d8 100644
--- a/svx/source/unogallery/unogalitem.cxx
+++ b/svx/source/unogallery/unogalitem.cxx
@@ -314,10 +314,10 @@ void GalleryItem::_getPropertyValues( const 
comphelper::PropertyMapEntry** ppEnt
 
                     if( pGalTheme && pGalTheme->GetModel( 
pGalTheme->maGalleryObjectCollection.searchPosWithObject( implGetObject() ), 
*pModel ) )
                     {
-                        uno::Reference< lang::XComponent > xDrawing( new 
GalleryDrawingModel( pModel ) );
+                        rtl::Reference< GalleryDrawingModel > xDrawing( new 
GalleryDrawingModel( pModel ) );
 
-                        pModel->setUnoModel( uno::Reference< uno::XInterface 
>::query( xDrawing ) );
-                        *pValue <<= xDrawing;
+                        pModel->setUnoModel( xDrawing );
+                        *pValue <<= uno::Reference< lang::XComponent 
>(xDrawing);
                     }
                     else
                         delete pModel;
diff --git a/svx/source/unogallery/unogaltheme.cxx 
b/svx/source/unogallery/unogaltheme.cxx
index b40cbc3651ba..f35548b634b7 100644
--- a/svx/source/unogallery/unogaltheme.cxx
+++ b/svx/source/unogallery/unogaltheme.cxx
@@ -259,8 +259,8 @@ void SAL_CALL GalleryTheme::update(  )
                     rtl::Reference<SdrPage> pNewPage = 
pOrigPage->CloneSdrPage(*pTmpModel);
                     pTmpModel->InsertPage(pNewPage.get(), 0);
 
-                    uno::Reference< lang::XComponent > xDrawing( new 
GalleryDrawingModel( pTmpModel ) );
-                    pTmpModel->setUnoModel( uno::Reference< uno::XInterface 
>::query( xDrawing ) );
+                    rtl::Reference< GalleryDrawingModel > xDrawing( new 
GalleryDrawingModel( pTmpModel ) );
+                    pTmpModel->setUnoModel( xDrawing );
 
                     nRet = insertDrawingByIndex( xDrawing, nIndex );
                     return nRet;
diff --git a/svx/source/xml/xmlexport.cxx b/svx/source/xml/xmlexport.cxx
index d6bc3870ce08..f3ba564ce03f 100644
--- a/svx/source/xml/xmlexport.cxx
+++ b/svx/source/xml/xmlexport.cxx
@@ -57,8 +57,9 @@ bool SvxDrawingLayerExport( SdrModel* pModel, const 
uno::Reference<io::XOutputSt
     {
         if( !xSourceDoc.is() )
         {
-            xSourceDoc = new SvxUnoDrawingModel( pModel );
-            pModel->setUnoModel( Reference< XInterface >::query( xSourceDoc ) 
);
+            rtl::Reference<SvxUnoDrawingModel> pDrawingModel = new 
SvxUnoDrawingModel( pModel );
+            xSourceDoc = pDrawingModel;
+            pModel->setUnoModel( pDrawingModel );
         }
 
         uno::Reference< uno::XComponentContext> xContext( 
::comphelper::getProcessComponentContext() );
@@ -152,8 +153,9 @@ bool SvxDrawingLayerImport( SdrModel* pModel, const 
uno::Reference<io::XInputStr
     Reference< lang::XComponent > xTargetDocument( xComponent );
     if( !xTargetDocument.is() )
     {
-        xTargetDocument = new SvxUnoDrawingModel( pModel );
-        pModel->setUnoModel( Reference< XInterface >::query( xTargetDocument ) 
);
+        rtl::Reference<SvxUnoDrawingModel> pDrawingModel = new 
SvxUnoDrawingModel( pModel );
+        xTargetDocument = pDrawingModel;
+        pModel->setUnoModel( pDrawingModel );
     }
 
     Reference< frame::XModel > xTargetModel( xTargetDocument, UNO_QUERY );
diff --git a/sw/inc/drawdoc.hxx b/sw/inc/drawdoc.hxx
index d80be90bc220..c4e6d23ad086 100644
--- a/sw/inc/drawdoc.hxx
+++ b/sw/inc/drawdoc.hxx
@@ -43,7 +43,7 @@ public:
 
 private:
     /// override of <SdrModel::createUnoModel()> is needed to provide 
corresponding uno model.
-    virtual css::uno::Reference<css::uno::XInterface> createUnoModel() 
override;
+    virtual css::uno::Reference<css::frame::XModel> createUnoModel() override;
 };
 
 #endif
diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx
index 6d86df36b6bb..4470168feb95 100644
--- a/sw/source/core/draw/drawdoc.cxx
+++ b/sw/source/core/draw/drawdoc.cxx
@@ -129,9 +129,9 @@ uno::Reference<embed::XStorage> 
SwDrawModel::GetDocumentStorage() const
     return m_rDoc.GetDocStorage();
 }
 
-uno::Reference< uno::XInterface > SwDrawModel::createUnoModel()
+uno::Reference< frame::XModel > SwDrawModel::createUnoModel()
 {
-    uno::Reference< uno::XInterface > xModel;
+    uno::Reference< frame::XModel > xModel;
 
     try
     {

Reply via email to