summaryrefslogtreecommitdiff
path: root/sdext
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-12-14 11:16:14 +0100
committerStephan Bergmann <sbergman@redhat.com>2022-12-16 20:17:05 +0000
commit32ba2102526a663440957a16e0ebee89bea9f603 (patch)
tree1b3702e0d20f8253e126e7cb2062107d4694e1d2 /sdext
parentcc067789ab7fd67bdd6f6ba8ce53a6580a56d7ff (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.cxx8
-rw-r--r--sdext/source/presenter/PresenterController.hxx6
-rw-r--r--sdext/source/presenter/PresenterScreen.cxx2
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,