diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-06-06 12:34:08 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-08-24 11:10:03 +0200 |
commit | 31d4bf625f88e2fc9b2057ad7bb7bd943d1c7871 (patch) | |
tree | c8223b3609c63e0a0dc14c2ef3330712ddbdde6e | |
parent | 31dd62db80d4e60af04904455ec9c9219178d620 (diff) |
SwXDispatchProviderInterceptor: implement frame::XInterceptorInfo
With this, framework::InterceptionHelper can make a better decision what
interceptor to call: it can avoid calling SwXDispatchProviderInterceptor
when the sw code would just call the previous interceptor anyway.
Change-Id: I92897f2c8baa264dc9ccbc11b63f415da30a910d
Reviewed-on: https://gerrit.libreoffice.org/25961
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit b0d819ac5667a07f629f2acb5d3c542fa76d348b)
-rw-r--r-- | sw/source/uibase/inc/unodispatch.hxx | 7 | ||||
-rw-r--r-- | sw/source/uibase/uno/unodispatch.cxx | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/sw/source/uibase/inc/unodispatch.hxx b/sw/source/uibase/inc/unodispatch.hxx index b115f7e49744..f5408d724fc4 100644 --- a/sw/source/uibase/inc/unodispatch.hxx +++ b/sw/source/uibase/inc/unodispatch.hxx @@ -24,6 +24,7 @@ #include <com/sun/star/view/XSelectionChangeListener.hpp> #include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/frame/XDispatch.hpp> +#include <com/sun/star/frame/XInterceptorInfo.hpp> #include <cppuhelper/implbase.hxx> #include <list> #include <vcl/svapp.hxx> @@ -35,7 +36,8 @@ class SwXDispatchProviderInterceptor : public cppu::WeakImplHelper < css::frame::XDispatchProviderInterceptor, css::lang::XEventListener, - css::lang::XUnoTunnel + css::lang::XUnoTunnel, + css::frame::XInterceptorInfo > { class DispatchMutexLock_Impl @@ -83,6 +85,9 @@ public: static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId(); virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) throw(css::uno::RuntimeException, std::exception) override; + // XInterceptorInfo + virtual css::uno::Sequence<OUString> SAL_CALL getInterceptedURLs() throw (css::uno::RuntimeException, std::exception) override; + // view destroyed void Invalidate(); }; diff --git a/sw/source/uibase/uno/unodispatch.cxx b/sw/source/uibase/uno/unodispatch.cxx index 985f28387e2b..3335eebc4dfd 100644 --- a/sw/source/uibase/uno/unodispatch.cxx +++ b/sw/source/uibase/uno/unodispatch.cxx @@ -88,6 +88,16 @@ uno::Reference< frame::XDispatch > SwXDispatchProviderInterceptor::queryDispatch return xResult; } +uno::Sequence<OUString> SAL_CALL SwXDispatchProviderInterceptor::getInterceptedURLs() throw (uno::RuntimeException, std::exception) +{ + uno::Sequence<OUString> aRet = + { + OUString(".uno:DataSourceBrowser/*") + }; + + return aRet; +} + uno::Sequence< uno::Reference< frame::XDispatch > > SwXDispatchProviderInterceptor::queryDispatches( const uno::Sequence< frame::DispatchDescriptor >& aDescripts ) throw(uno::RuntimeException, std::exception) { |