summaryrefslogtreecommitdiff
path: root/sd/source/ui
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-01-16 15:55:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-01-17 12:40:28 +0000
commit5355f52b14d7237ba0f9fdd910eca579292242bd (patch)
tree8b6b1d6c30d848867f2cda290821334471cc3422 /sd/source/ui
parentc1d50d738fd9fcae5e621efcd687121ef5219f1f (diff)
XUnoTunnel->dynamic_cast in sd::DrawController
Just past the concrete type down through a couple of layers, rather than using a generic type and then casting Change-Id: I7ba6c83463f3db7176b72cb7e764d3659706ae78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145638 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sd/source/ui')
-rw-r--r--sd/source/ui/framework/factories/BasicPaneFactory.cxx3
-rw-r--r--sd/source/ui/framework/factories/BasicViewFactory.cxx3
-rw-r--r--sd/source/ui/framework/factories/PresentationFactory.cxx2
-rw-r--r--sd/source/ui/framework/module/CenterViewFocusModule.cxx12
-rw-r--r--sd/source/ui/framework/module/CenterViewFocusModule.hxx5
-rw-r--r--sd/source/ui/framework/module/DrawModule.cxx3
-rw-r--r--sd/source/ui/framework/module/ImpressModule.cxx3
-rw-r--r--sd/source/ui/framework/module/PresentationModule.cxx2
-rw-r--r--sd/source/ui/framework/module/ShellStackGuard.cxx11
-rw-r--r--sd/source/ui/framework/module/ShellStackGuard.hxx4
-rw-r--r--sd/source/ui/framework/module/ToolBarModule.cxx12
-rw-r--r--sd/source/ui/framework/module/ToolBarModule.hxx4
-rw-r--r--sd/source/ui/inc/DrawController.hxx10
-rw-r--r--sd/source/ui/inc/framework/DrawModule.hxx7
-rw-r--r--sd/source/ui/inc/framework/ImpressModule.hxx7
-rw-r--r--sd/source/ui/inc/framework/PresentationModule.hxx7
-rw-r--r--sd/source/ui/sidebar/PanelFactory.cxx2
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterService.cxx3
-rw-r--r--sd/source/ui/unoidl/DrawController.cxx13
-rw-r--r--sd/source/ui/view/GraphicViewShellBase.cxx3
-rw-r--r--sd/source/ui/view/ImpressViewShellBase.cxx5
-rw-r--r--sd/source/ui/view/PresentationViewShellBase.cxx4
-rw-r--r--sd/source/ui/view/ViewTabBar.cxx6
23 files changed, 61 insertions, 70 deletions
diff --git a/sd/source/ui/framework/factories/BasicPaneFactory.cxx b/sd/source/ui/framework/factories/BasicPaneFactory.cxx
index c01d315a3d9c..64cec425ad54 100644
--- a/sd/source/ui/framework/factories/BasicPaneFactory.cxx
+++ b/sd/source/ui/framework/factories/BasicPaneFactory.cxx
@@ -132,8 +132,7 @@ void SAL_CALL BasicPaneFactory::initialize (const Sequence<Any>& aArguments)
// Tunnel through the controller to obtain access to the ViewShellBase.
try
{
- Reference<lang::XUnoTunnel> xTunnel (xController, UNO_QUERY_THROW);
- if (auto pController = comphelper::getFromUnoTunnel<DrawController>(xTunnel))
+ if (auto pController = dynamic_cast<DrawController*>(xController.get()))
mpViewShellBase = pController->GetViewShellBase();
}
catch(RuntimeException&)
diff --git a/sd/source/ui/framework/factories/BasicViewFactory.cxx b/sd/source/ui/framework/factories/BasicViewFactory.cxx
index 5e862c6aebc2..6a6b8065e180 100644
--- a/sd/source/ui/framework/factories/BasicViewFactory.cxx
+++ b/sd/source/ui/framework/factories/BasicViewFactory.cxx
@@ -237,8 +237,7 @@ void SAL_CALL BasicViewFactory::initialize (const Sequence<Any>& aArguments)
Reference<frame::XController> xController (aArguments[0], UNO_QUERY_THROW);
// Tunnel through the controller to obtain a ViewShellBase.
- Reference<lang::XUnoTunnel> xTunnel (xController, UNO_QUERY_THROW);
- ::sd::DrawController* pController = comphelper::getFromUnoTunnel<sd::DrawController>(xTunnel);
+ ::sd::DrawController* pController = dynamic_cast<sd::DrawController*>(xController.get());
if (pController != nullptr)
mpBase = pController->GetViewShellBase();
diff --git a/sd/source/ui/framework/factories/PresentationFactory.cxx b/sd/source/ui/framework/factories/PresentationFactory.cxx
index c1d408856187..73c2d4bdb732 100644
--- a/sd/source/ui/framework/factories/PresentationFactory.cxx
+++ b/sd/source/ui/framework/factories/PresentationFactory.cxx
@@ -113,7 +113,7 @@ void SAL_CALL PresentationFactory::releaseResource (
{
ThrowIfDisposed();
- auto pController = comphelper::getFromUnoTunnel<sd::DrawController>(mxController);
+ auto pController = dynamic_cast<sd::DrawController*>(mxController.get());
if (pController != nullptr)
{
ViewShellBase* pBase = pController->GetViewShellBase();
diff --git a/sd/source/ui/framework/module/CenterViewFocusModule.cxx b/sd/source/ui/framework/module/CenterViewFocusModule.cxx
index f5de61ca65d6..2c799e04bbb1 100644
--- a/sd/source/ui/framework/module/CenterViewFocusModule.cxx
+++ b/sd/source/ui/framework/module/CenterViewFocusModule.cxx
@@ -39,20 +39,18 @@ namespace sd::framework {
//===== CenterViewFocusModule ====================================================
-CenterViewFocusModule::CenterViewFocusModule (Reference<frame::XController> const & rxController)
+CenterViewFocusModule::CenterViewFocusModule (rtl::Reference<sd::DrawController> const & rxController)
: mbValid(false),
mpBase(nullptr),
mbNewViewCreated(false)
{
- Reference<XControllerManager> xControllerManager (rxController, UNO_QUERY);
- if (xControllerManager.is())
+ if (rxController.is())
{
- mxConfigurationController = xControllerManager->getConfigurationController();
+ mxConfigurationController = rxController->getConfigurationController();
// Tunnel through the controller to obtain a ViewShellBase.
- auto pController = comphelper::getFromUnoTunnel<sd::DrawController>(rxController);
- if (pController != nullptr)
- mpBase = pController->GetViewShellBase();
+ if (rxController != nullptr)
+ mpBase = rxController->GetViewShellBase();
// Check, if all required objects do exist.
if (mxConfigurationController.is() && mpBase!=nullptr)
diff --git a/sd/source/ui/framework/module/CenterViewFocusModule.hxx b/sd/source/ui/framework/module/CenterViewFocusModule.hxx
index c6d5d348e3b2..e721562db029 100644
--- a/sd/source/ui/framework/module/CenterViewFocusModule.hxx
+++ b/sd/source/ui/framework/module/CenterViewFocusModule.hxx
@@ -21,6 +21,7 @@
#include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp>
#include <comphelper/compbase.hxx>
+#include <rtl/ref.hxx>
namespace com::sun::star::drawing::framework
{
@@ -33,6 +34,7 @@ class XController;
namespace sd
{
+class DrawController;
class ViewShellBase;
}
@@ -49,8 +51,7 @@ typedef comphelper::WeakComponentImplHelper<css::drawing::framework::XConfigurat
class CenterViewFocusModule final : public CenterViewFocusModuleInterfaceBase
{
public:
- explicit CenterViewFocusModule(
- css::uno::Reference<css::frame::XController> const& rxController);
+ explicit CenterViewFocusModule(rtl::Reference<sd::DrawController> const& rxController);
virtual ~CenterViewFocusModule() override;
virtual void disposing(std::unique_lock<std::mutex>&) override;
diff --git a/sd/source/ui/framework/module/DrawModule.cxx b/sd/source/ui/framework/module/DrawModule.cxx
index 17f4671fcb7f..aaa2d90bb38a 100644
--- a/sd/source/ui/framework/module/DrawModule.cxx
+++ b/sd/source/ui/framework/module/DrawModule.cxx
@@ -23,13 +23,14 @@
#include "CenterViewFocusModule.hxx"
#include "SlideSorterModule.hxx"
#include "ToolBarModule.hxx"
+#include <DrawController.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
namespace sd::framework
{
-void DrawModule::Initialize(Reference<frame::XController> const& rxController)
+void DrawModule::Initialize(rtl::Reference<sd::DrawController> const& rxController)
{
new sd::framework::CenterViewFocusModule(rxController);
new sd::framework::SlideSorterModule(rxController, FrameworkHelper::msLeftDrawPaneURL);
diff --git a/sd/source/ui/framework/module/ImpressModule.cxx b/sd/source/ui/framework/module/ImpressModule.cxx
index 139b250fd002..f89212e4a0a8 100644
--- a/sd/source/ui/framework/module/ImpressModule.cxx
+++ b/sd/source/ui/framework/module/ImpressModule.cxx
@@ -25,13 +25,14 @@
#include "SlideSorterModule.hxx"
#include "ToolBarModule.hxx"
#include "ShellStackGuard.hxx"
+#include <DrawController.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
namespace sd::framework {
-void ImpressModule::Initialize (Reference<frame::XController> const & rxController)
+void ImpressModule::Initialize (rtl::Reference<sd::DrawController> const & rxController)
{
new CenterViewFocusModule(rxController);
new ViewTabBarModule(
diff --git a/sd/source/ui/framework/module/PresentationModule.cxx b/sd/source/ui/framework/module/PresentationModule.cxx
index fb0ac0558d80..c1ff16159d68 100644
--- a/sd/source/ui/framework/module/PresentationModule.cxx
+++ b/sd/source/ui/framework/module/PresentationModule.cxx
@@ -26,7 +26,7 @@ using namespace ::com::sun::star::uno;
namespace sd::framework
{
-void PresentationModule::Initialize(Reference<frame::XController> const& rxController)
+void PresentationModule::Initialize(rtl::Reference<sd::DrawController> const& rxController)
{
new sd::framework::CenterViewFocusModule(rxController);
}
diff --git a/sd/source/ui/framework/module/ShellStackGuard.cxx b/sd/source/ui/framework/module/ShellStackGuard.cxx
index 83d73b055a54..d7dcfb0f2923 100644
--- a/sd/source/ui/framework/module/ShellStackGuard.cxx
+++ b/sd/source/ui/framework/module/ShellStackGuard.cxx
@@ -38,19 +38,16 @@ namespace sd::framework {
//===== CenterViewFocusModule ====================================================
-ShellStackGuard::ShellStackGuard (Reference<frame::XController> const & rxController)
+ShellStackGuard::ShellStackGuard (rtl::Reference<sd::DrawController> const & rxController)
: mpBase(nullptr),
maPrinterPollingIdle("sd ShellStackGuard PrinterPollingIdle")
{
- Reference<XControllerManager> xControllerManager (rxController, UNO_QUERY);
- if (xControllerManager.is())
+ if (rxController.is())
{
- mxConfigurationController = xControllerManager->getConfigurationController();
+ mxConfigurationController = rxController->getConfigurationController();
// Tunnel through the controller to obtain a ViewShellBase.
- auto pController = comphelper::getFromUnoTunnel<sd::DrawController>(rxController);
- if (pController != nullptr)
- mpBase = pController->GetViewShellBase();
+ mpBase = rxController->GetViewShellBase();
}
if (mxConfigurationController.is())
diff --git a/sd/source/ui/framework/module/ShellStackGuard.hxx b/sd/source/ui/framework/module/ShellStackGuard.hxx
index 72b7ed2c6603..fe94037816f9 100644
--- a/sd/source/ui/framework/module/ShellStackGuard.hxx
+++ b/sd/source/ui/framework/module/ShellStackGuard.hxx
@@ -23,6 +23,7 @@
#include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp>
+#include <rtl/ref.hxx>
#include <vcl/idle.hxx>
#include <comphelper/compbase.hxx>
#include <memory>
@@ -38,6 +39,7 @@ class XController;
namespace sd
{
+class DrawController;
class ViewShellBase;
}
@@ -59,7 +61,7 @@ typedef comphelper::WeakComponentImplHelper<css::drawing::framework::XConfigurat
class ShellStackGuard : public ShellStackGuardInterfaceBase
{
public:
- explicit ShellStackGuard(css::uno::Reference<css::frame::XController> const& rxController);
+ explicit ShellStackGuard(rtl::Reference<sd::DrawController> const& rxController);
virtual ~ShellStackGuard() override;
virtual void disposing(std::unique_lock<std::mutex>&) override;
diff --git a/sd/source/ui/framework/module/ToolBarModule.cxx b/sd/source/ui/framework/module/ToolBarModule.cxx
index 3cecf7b031f0..de7f3e583126 100644
--- a/sd/source/ui/framework/module/ToolBarModule.cxx
+++ b/sd/source/ui/framework/module/ToolBarModule.cxx
@@ -41,20 +41,18 @@ namespace sd::framework {
//===== ToolBarModule =========================================================
ToolBarModule::ToolBarModule (
- const Reference<frame::XController>& rxController)
+ const rtl::Reference<sd::DrawController>& rxController)
: mpBase(nullptr),
mbMainViewSwitchUpdatePending(false)
{
// Tunnel through the controller to obtain a ViewShellBase.
- auto pController = comphelper::getFromUnoTunnel<sd::DrawController>(rxController);
- if (pController != nullptr)
- mpBase = pController->GetViewShellBase();
+ if (rxController != nullptr)
+ mpBase = rxController->GetViewShellBase();
- Reference<XControllerManager> xControllerManager (rxController, UNO_QUERY);
- if (!xControllerManager.is())
+ if (!rxController.is())
return;
- mxConfigurationController = xControllerManager->getConfigurationController();
+ mxConfigurationController = rxController->getConfigurationController();
if (!mxConfigurationController.is())
return;
diff --git a/sd/source/ui/framework/module/ToolBarModule.hxx b/sd/source/ui/framework/module/ToolBarModule.hxx
index f9189657de04..bf0c017ef981 100644
--- a/sd/source/ui/framework/module/ToolBarModule.hxx
+++ b/sd/source/ui/framework/module/ToolBarModule.hxx
@@ -23,12 +23,14 @@
#include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp>
#include <comphelper/compbase.hxx>
#include <o3tl/deleter.hxx>
+#include <rtl/ref.hxx>
#include <memory>
namespace com::sun::star::drawing::framework { class XConfigurationController; }
namespace com::sun::star::frame { class XController; }
namespace sd {
+class DrawController;
class ViewShellBase;
}
@@ -50,7 +52,7 @@ public:
This is the access point to the drawing framework.
*/
explicit ToolBarModule (
- const css::uno::Reference<css::frame::XController>& rxController);
+ const rtl::Reference<sd::DrawController>& rxController);
virtual ~ToolBarModule() override;
virtual void disposing(std::unique_lock<std::mutex>&) override;
diff --git a/sd/source/ui/inc/DrawController.hxx b/sd/source/ui/inc/DrawController.hxx
index 2c15e26eb601..c2f4f7be215d 100644
--- a/sd/source/ui/inc/DrawController.hxx
+++ b/sd/source/ui/inc/DrawController.hxx
@@ -26,7 +26,6 @@
#include <com/sun/star/drawing/XDrawView.hpp>
#include <com/sun/star/drawing/framework/XControllerManager.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <comphelper/uno3.hxx>
#include <cppuhelper/implbase.hxx>
#include <unotools/weakref.hxx>
@@ -51,8 +50,7 @@ typedef ::cppu::ImplInheritanceHelper <
css::drawing::XDrawView,
css::view::XSelectionChangeListener,
css::view::XFormLayerAccess,
- css::drawing::framework::XControllerManager,
- css::lang::XUnoTunnel
+ css::drawing::framework::XControllerManager
> DrawControllerInterfaceBase;
class BroadcastHelperOwner
@@ -159,8 +157,6 @@ public:
*/
void ReleaseViewShellBase();
- static const css::uno::Sequence<sal_Int8>& getUnoTunnelId();
-
DECLARE_XINTERFACE()
DECLARE_XTYPEPROVIDER()
@@ -220,10 +216,6 @@ public:
virtual css::uno::Reference<css::drawing::framework::XModuleController> SAL_CALL
getModuleController() override;
- // XUnoTunnel
-
- virtual sal_Int64 SAL_CALL getSomething (const css::uno::Sequence<sal_Int8>& rId) override;
-
private:
/** This method must return the name to index table. This table
contains all property names and types of this object.
diff --git a/sd/source/ui/inc/framework/DrawModule.hxx b/sd/source/ui/inc/framework/DrawModule.hxx
index 79a59b4f9030..819091998687 100644
--- a/sd/source/ui/inc/framework/DrawModule.hxx
+++ b/sd/source/ui/inc/framework/DrawModule.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <sal/types.h>
+#include <rtl/ref.hxx>
namespace com::sun::star::frame
{
@@ -29,6 +30,10 @@ namespace com::sun::star::uno
{
template <typename> class Reference;
}
+namespace sd
+{
+class DrawController;
+}
namespace sd::framework
{
@@ -38,7 +43,7 @@ namespace sd::framework
class DrawModule
{
public:
- static void Initialize(css::uno::Reference<css::frame::XController> const& rxController);
+ static void Initialize(rtl::Reference<sd::DrawController> const& rxController);
};
} // end of namespace sd::framework
diff --git a/sd/source/ui/inc/framework/ImpressModule.hxx b/sd/source/ui/inc/framework/ImpressModule.hxx
index da7ede9d9952..fc4e2b83978d 100644
--- a/sd/source/ui/inc/framework/ImpressModule.hxx
+++ b/sd/source/ui/inc/framework/ImpressModule.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <sal/types.h>
+#include <rtl/ref.hxx>
namespace com::sun::star::frame
{
@@ -29,6 +30,10 @@ namespace com::sun::star::uno
{
template <class interface_type> class Reference;
}
+namespace sd
+{
+class DrawController;
+}
namespace sd::framework
{
@@ -38,7 +43,7 @@ namespace sd::framework
class ImpressModule
{
public:
- static void Initialize(css::uno::Reference<css::frame::XController> const& rxController);
+ static void Initialize(rtl::Reference<sd::DrawController> const& rxController);
};
} // end of namespace sd::framework
diff --git a/sd/source/ui/inc/framework/PresentationModule.hxx b/sd/source/ui/inc/framework/PresentationModule.hxx
index f6dcfbc695da..437534f707f9 100644
--- a/sd/source/ui/inc/framework/PresentationModule.hxx
+++ b/sd/source/ui/inc/framework/PresentationModule.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <sal/types.h>
+#include <rtl/ref.hxx>
namespace com::sun::star::frame
{
@@ -29,6 +30,10 @@ namespace com::sun::star::uno
{
template <class interface_type> class Reference;
}
+namespace sd
+{
+class DrawController;
+}
namespace sd::framework
{
@@ -38,7 +43,7 @@ namespace sd::framework
class PresentationModule
{
public:
- static void Initialize(css::uno::Reference<css::frame::XController> const& rxController);
+ static void Initialize(rtl::Reference<sd::DrawController> const& rxController);
};
} // end of namespace sd::framework
diff --git a/sd/source/ui/sidebar/PanelFactory.cxx b/sd/source/ui/sidebar/PanelFactory.cxx
index c7ca8c25c4c8..752f3db7f1ac 100644
--- a/sd/source/ui/sidebar/PanelFactory.cxx
+++ b/sd/source/ui/sidebar/PanelFactory.cxx
@@ -79,7 +79,7 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement (
// Tunnel through the controller to obtain a ViewShellBase.
ViewShellBase* pBase = nullptr;
- auto pController = comphelper::getFromUnoTunnel<sd::DrawController>(xFrame->getController());
+ rtl::Reference<sd::DrawController> pController = dynamic_cast<sd::DrawController*>(xFrame->getController().get());
if (pController != nullptr)
pBase = pController->GetViewShellBase();
if (pBase == nullptr)
diff --git a/sd/source/ui/slidesorter/shell/SlideSorterService.cxx b/sd/source/ui/slidesorter/shell/SlideSorterService.cxx
index a086f3b9e209..fa65cba421b4 100644
--- a/sd/source/ui/slidesorter/shell/SlideSorterService.cxx
+++ b/sd/source/ui/slidesorter/shell/SlideSorterService.cxx
@@ -78,8 +78,7 @@ void SAL_CALL SlideSorterService::initialize (const Sequence<Any>& rArguments)
// Tunnel through the controller to obtain a ViewShellBase.
ViewShellBase* pBase = nullptr;
- Reference<lang::XUnoTunnel> xTunnel (xController, UNO_QUERY_THROW);
- ::sd::DrawController* pController = comphelper::getFromUnoTunnel<sd::DrawController>(xTunnel);
+ ::sd::DrawController* pController = dynamic_cast<sd::DrawController*>(xController.get());
if (pController != nullptr)
pBase = pController->GetViewShellBase();
diff --git a/sd/source/ui/unoidl/DrawController.cxx b/sd/source/ui/unoidl/DrawController.cxx
index 41c30e23e45d..f33e9038131f 100644
--- a/sd/source/ui/unoidl/DrawController.cxx
+++ b/sd/source/ui/unoidl/DrawController.cxx
@@ -551,19 +551,6 @@ Reference<XModuleController> SAL_CALL
return mxModuleController;
}
-//===== XUnoTunnel ============================================================
-
-const Sequence<sal_Int8>& DrawController::getUnoTunnelId()
-{
- static const comphelper::UnoIdInit theDrawControllerUnoTunnelId;
- return theDrawControllerUnoTunnelId.getSeq();
-}
-
-sal_Int64 SAL_CALL DrawController::getSomething (const Sequence<sal_Int8>& rId)
-{
- return comphelper::getSomethingImpl(rId, this);
-}
-
//===== Properties ============================================================
void DrawController::FillPropertyTable (
diff --git a/sd/source/ui/view/GraphicViewShellBase.cxx b/sd/source/ui/view/GraphicViewShellBase.cxx
index d58c8a0d2479..573c9fc2a058 100644
--- a/sd/source/ui/view/GraphicViewShellBase.cxx
+++ b/sd/source/ui/view/GraphicViewShellBase.cxx
@@ -20,6 +20,7 @@
#include <GraphicViewShellBase.hxx>
#include <GraphicDocShell.hxx>
+#include <DrawController.hxx>
#include <app.hrc>
#include <framework/DrawModule.hxx>
#include <framework/FrameworkHelper.hxx>
@@ -84,7 +85,7 @@ void GraphicViewShellBase::Execute(SfxRequest& rRequest)
void GraphicViewShellBase::InitializeFramework()
{
- css::uno::Reference<css::frame::XController> xController(GetController());
+ rtl::Reference<sd::DrawController> xController(&GetDrawController());
sd::framework::DrawModule::Initialize(xController);
}
diff --git a/sd/source/ui/view/ImpressViewShellBase.cxx b/sd/source/ui/view/ImpressViewShellBase.cxx
index 96b0b5aa9154..9b28213970ec 100644
--- a/sd/source/ui/view/ImpressViewShellBase.cxx
+++ b/sd/source/ui/view/ImpressViewShellBase.cxx
@@ -20,6 +20,7 @@
#include <ImpressViewShellBase.hxx>
#include <DrawDocShell.hxx>
+#include <DrawController.hxx>
#include <app.hrc>
#include <framework/FrameworkHelper.hxx>
#include <framework/ImpressModule.hxx>
@@ -87,8 +88,8 @@ void ImpressViewShellBase::Execute (SfxRequest& rRequest)
void ImpressViewShellBase::InitializeFramework()
{
- css::uno::Reference<css::frame::XController>
- xController (GetController());
+ rtl::Reference<sd::DrawController>
+ xController (&GetDrawController());
sd::framework::ImpressModule::Initialize(xController);
}
diff --git a/sd/source/ui/view/PresentationViewShellBase.cxx b/sd/source/ui/view/PresentationViewShellBase.cxx
index 789afbbdde86..9c1faff02713 100644
--- a/sd/source/ui/view/PresentationViewShellBase.cxx
+++ b/sd/source/ui/view/PresentationViewShellBase.cxx
@@ -19,6 +19,7 @@
#include <PresentationViewShellBase.hxx>
#include <DrawDocShell.hxx>
+#include <DrawController.hxx>
#include <framework/FrameworkHelper.hxx>
#include <framework/PresentationModule.hxx>
@@ -84,8 +85,7 @@ PresentationViewShellBase::~PresentationViewShellBase()
void PresentationViewShellBase::InitializeFramework()
{
- css::uno::Reference<css::frame::XController>
- xController (GetController());
+ rtl::Reference<sd::DrawController> xController (&GetDrawController());
sd::framework::PresentationModule::Initialize(xController);
}
diff --git a/sd/source/ui/view/ViewTabBar.cxx b/sd/source/ui/view/ViewTabBar.cxx
index d9fdd2addfdf..6e9f23e3b674 100644
--- a/sd/source/ui/view/ViewTabBar.cxx
+++ b/sd/source/ui/view/ViewTabBar.cxx
@@ -70,8 +70,7 @@ ViewTabBar::ViewTabBar (
// view frame.
try
{
- Reference<lang::XUnoTunnel> xTunnel (mxController, UNO_QUERY_THROW);
- if (auto pController = comphelper::getFromUnoTunnel<DrawController>(xTunnel))
+ if (auto pController = dynamic_cast<DrawController*>(mxController.get()))
mpViewShellBase = pController->GetViewShellBase();
}
catch (const RuntimeException&)
@@ -149,8 +148,7 @@ vcl::Window* ViewTabBar::GetAnchorWindow(
// view frame.
try
{
- Reference<lang::XUnoTunnel> xTunnel (rxController, UNO_QUERY_THROW);
- if (auto pController = comphelper::getFromUnoTunnel<DrawController>(xTunnel))
+ if (auto pController = dynamic_cast<DrawController*>(rxController.get()))
pBase = pController->GetViewShellBase();
}
catch (const RuntimeException&)