diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2022-12-14 11:16:14 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2022-12-16 20:17:05 +0000 |
commit | 32ba2102526a663440957a16e0ebee89bea9f603 (patch) | |
tree | 1b3702e0d20f8253e126e7cb2062107d4694e1d2 /sdext | |
parent | cc067789ab7fd67bdd6f6ba8ce53a6580a56d7ff (diff) |
Use unotoosl::WeakReference to avoid a dynamic_cast
Change-Id: I46c122e800c63038cf7fd650ebb6f0115c6e8c78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144330
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sdext')
-rw-r--r-- | sdext/source/presenter/PresenterController.cxx | 8 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterController.hxx | 6 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterScreen.cxx | 2 |
3 files changed, 7 insertions, 9 deletions
diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx index a56071f9ec3f..e9831ac749d5 100644 --- a/sdext/source/presenter/PresenterController.cxx +++ b/sdext/source/presenter/PresenterController.cxx @@ -83,7 +83,7 @@ PresenterController::InstanceContainer PresenterController::maInstances; } PresenterController::PresenterController ( - css::uno::WeakReference<css::lang::XEventListener> xScreen, + unotools::WeakReference<PresenterScreen> xScreen, const Reference<XComponentContext>& rxContext, const Reference<frame::XController>& rxController, const Reference<presentation::XSlideShowController>& rxSlideShowController, @@ -1156,11 +1156,7 @@ void PresenterController::UpdatePendingSlideNumber (const sal_Int32 nPendingSlid void PresenterController::SwitchMonitors() { - Reference<lang::XEventListener> xScreen( mxScreen ); - if (!xScreen.is()) - return; - - PresenterScreen *pScreen = dynamic_cast<PresenterScreen *>(xScreen.get()); + rtl::Reference<PresenterScreen> pScreen( mxScreen ); if (!pScreen) return; diff --git a/sdext/source/presenter/PresenterController.hxx b/sdext/source/presenter/PresenterController.hxx index 9b7062ec89f6..f29970c6903d 100644 --- a/sdext/source/presenter/PresenterController.hxx +++ b/sdext/source/presenter/PresenterController.hxx @@ -38,6 +38,7 @@ #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/util/XURLTransformer.hpp> #include <rtl/ref.hxx> +#include <unotools/weakref.hxx> #include <map> #include <memory> @@ -48,6 +49,7 @@ class PresenterPaintManager; class PresenterPaneAnimator; class PresenterPaneContainer; class PresenterPaneBorderPainter; +class PresenterScreen; class PresenterTheme; class PresenterWindowManager; @@ -81,7 +83,7 @@ public: const css::uno::Reference<css::frame::XFrame>& rxFrame); PresenterController ( - css::uno::WeakReference<css::lang::XEventListener> xScreen, + unotools::WeakReference<PresenterScreen> xScreen, const css::uno::Reference<css::uno::XComponentContext>& rxContext, const css::uno::Reference<css::frame::XController>& rxController, const css::uno::Reference<css::presentation::XSlideShowController>& rxSlideShowController, @@ -171,7 +173,7 @@ private: typedef ::std::map<css::uno::Reference<css::frame::XFrame>,rtl::Reference<PresenterController> > InstanceContainer; static InstanceContainer maInstances; - css::uno::WeakReference<css::lang::XEventListener> mxScreen; + unotools::WeakReference<PresenterScreen> mxScreen; css::uno::Reference<css::uno::XComponentContext> mxComponentContext; css::uno::Reference<css::rendering::XSpriteCanvas> mxCanvas; css::uno::Reference<css::frame::XController> mxController; diff --git a/sdext/source/presenter/PresenterScreen.cxx b/sdext/source/presenter/PresenterScreen.cxx index cf24a26f7bf1..0f4cdedb98fa 100644 --- a/sdext/source/presenter/PresenterScreen.cxx +++ b/sdext/source/presenter/PresenterScreen.cxx @@ -364,7 +364,7 @@ void PresenterScreen::InitializePresenterScreen() SetupConfiguration(xContext, xMainPaneId); mpPresenterController = new PresenterController( - css::uno::WeakReference<css::lang::XEventListener>(this), + this, xContext, mxController, xSlideShowController, |