diff options
author | merttumer <mert.tumer@collabora.com> | 2021-04-26 08:12:11 +0300 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2021-05-12 10:51:44 +0200 |
commit | fc38b964dc96027e277b34597cbb1f9bec9c03d0 (patch) | |
tree | 407a9a9eb1c78d81d87ebb08a2a86bb04d5777ff /desktop | |
parent | dc9565288165dafd13d05a9939a19fb2be1da885 (diff) |
lok: Interaction handler for FilterOptions
This will enable Text Import Dialog to be executed
before the document is loaded
Change-Id: I263e69f0739f4971f4c4eec032ebf22ffbdeebb7
Signed-off-by: merttumer <mert.tumer@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114638
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/source/lib/lokinteractionhandler.cxx | 23 | ||||
-rw-r--r-- | desktop/source/lib/lokinteractionhandler.hxx | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/desktop/source/lib/lokinteractionhandler.cxx b/desktop/source/lib/lokinteractionhandler.cxx index 3ee9c891f6ea..ad480964616c 100644 --- a/desktop/source/lib/lokinteractionhandler.cxx +++ b/desktop/source/lib/lokinteractionhandler.cxx @@ -41,6 +41,8 @@ #include <com/sun/star/task/DocumentPasswordRequest2.hpp> #include <com/sun/star/task/DocumentMSPasswordRequest2.hpp> +#include <com/sun/star/document/FilterOptionsRequest.hpp> + #include "../../inc/lib/init.hxx" #include <LibreOfficeKit/LibreOfficeKitEnums.h> @@ -330,6 +332,24 @@ bool LOKInteractionHandler::handlePasswordRequest(const uno::Sequence<uno::Refer return true; } +bool LOKInteractionHandler::handleFilterOptionsRequest(const uno::Reference<task::XInteractionRequest>& xRequest) +{ + document::FilterOptionsRequest aFilterOptionsRequest; + uno::Any const request(xRequest->getRequest()); + if (request >>= aFilterOptionsRequest) + { + uno::Reference< task::XInteractionHandler2 > xInteraction( + task::InteractionHandler::createWithParent( + ::comphelper::getProcessComponentContext(), nullptr)); + + if (xInteraction.is()) + xInteraction->handleInteractionRequest(xRequest); + + return true; + } + return false; +} + sal_Bool SAL_CALL LOKInteractionHandler::handleInteractionRequest( const uno::Reference<task::XInteractionRequest>& xRequest) { @@ -345,6 +365,9 @@ sal_Bool SAL_CALL LOKInteractionHandler::handleInteractionRequest( if (handlePasswordRequest(rContinuations, request)) return true; + if (handleFilterOptionsRequest(xRequest)) + return true; + task::DocumentMacroConfirmationRequest aConfirmRequest; if (request >>= aConfirmRequest) { diff --git a/desktop/source/lib/lokinteractionhandler.hxx b/desktop/source/lib/lokinteractionhandler.hxx index f6dc441327d8..dc827b33d78f 100644 --- a/desktop/source/lib/lokinteractionhandler.hxx +++ b/desktop/source/lib/lokinteractionhandler.hxx @@ -76,6 +76,7 @@ private: bool handleIOException(const css::uno::Sequence<css::uno::Reference<css::task::XInteractionContinuation>> &rContinuations, const css::uno::Any& rRequest); bool handleNetworkException(const css::uno::Sequence<css::uno::Reference<css::task::XInteractionContinuation>> &rContinuations, const css::uno::Any& rRequest); bool handlePasswordRequest(const css::uno::Sequence<css::uno::Reference<css::task::XInteractionContinuation>> &rContinuations, const css::uno::Any& rRequest); + bool handleFilterOptionsRequest(const ::com::sun::star::uno::Reference<::com::sun::star::task::XInteractionRequest>& Request); public: void SetPassword(char const* pPassword); |