From 840154daf934d8df52ead1cb7acd798c4d30f007 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 13 Dec 2022 11:08:06 +0100 Subject: loplugin:unocast (framework::AddonsToolBarWrapper) (See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) Change-Id: I8014f683b939da9d638545c77dbddb3e478a385e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144143 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- framework/inc/uielement/addonstoolbarwrapper.hxx | 8 +++++++- framework/source/layoutmanager/toolbarlayoutmanager.cxx | 3 ++- framework/source/uielement/addonstoolbarwrapper.cxx | 12 +++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/framework/inc/uielement/addonstoolbarwrapper.hxx b/framework/inc/uielement/addonstoolbarwrapper.hxx index 68cfc0ff31d0..1d189662feee 100644 --- a/framework/inc/uielement/addonstoolbarwrapper.hxx +++ b/framework/inc/uielement/addonstoolbarwrapper.hxx @@ -22,12 +22,15 @@ #include #include +#include #include +#include namespace framework { -class AddonsToolBarWrapper final : public UIElementWrapperBase +class AddonsToolBarWrapper final : + public cppu::ImplInheritanceHelper { public: AddonsToolBarWrapper( const css::uno::Reference< css::uno::XComponentContext >& xContext ); @@ -45,6 +48,9 @@ class AddonsToolBarWrapper final : public UIElementWrapperBase // cf. ToolbarLayoutManager void populateImages(); + sal_Int64 SAL_CALL getSomething(css::uno::Sequence const & aIdentifier) override; + static css::uno::Sequence const & getUnoTunnelId(); + private: css::uno::Reference< css::uno::XComponentContext > m_xContext; css::uno::Reference< css::lang::XComponent > m_xToolBarManager; diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx index cf444b5ab31d..9ec6bdbfe52b 100644 --- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx +++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -668,7 +669,7 @@ bool ToolbarLayoutManager::showToolbar( std::u16string_view rResourceURL ) // Addons appear to need to be populated at start, but we don't // want to populate them with (scaled) images until later. AddonsToolBarWrapper *pAddOns; - pAddOns = dynamic_cast( aUIElement.m_xUIElement.get()); + pAddOns = comphelper::getFromUnoTunnel( aUIElement.m_xUIElement); if (pAddOns) pAddOns->populateImages(); diff --git a/framework/source/uielement/addonstoolbarwrapper.cxx b/framework/source/uielement/addonstoolbarwrapper.cxx index 6547d1c6bcde..6a8984ab654c 100644 --- a/framework/source/uielement/addonstoolbarwrapper.cxx +++ b/framework/source/uielement/addonstoolbarwrapper.cxx @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -40,7 +41,7 @@ namespace framework { AddonsToolBarWrapper::AddonsToolBarWrapper( const Reference< XComponentContext >& xContext ) : - UIElementWrapperBase( UIElementType::TOOLBAR ), + ImplInheritanceHelper( UIElementType::TOOLBAR ), m_xContext( xContext ), m_bCreatedImages( false ) { @@ -166,6 +167,15 @@ void AddonsToolBarWrapper::populateImages() } } +sal_Int64 AddonsToolBarWrapper::getSomething(css::uno::Sequence const & aIdentifier) { + return comphelper::getSomethingImpl(aIdentifier, this); +} + +css::uno::Sequence const & AddonsToolBarWrapper::getUnoTunnelId() { + static comphelper::UnoIdInit const id; + return id.getSeq(); +} + } // namespace framework /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit