desktop/source/lib/lokinteractionhandler.cxx |   23 +++++++++++++++++++++++
 desktop/source/lib/lokinteractionhandler.hxx |    2 ++
 sfx2/source/doc/objstor.cxx                  |    3 ++-
 3 files changed, 27 insertions(+), 1 deletion(-)

New commits:
commit 8c26772822e2f768e48be72feb29ec06f00d9cf2
Author:     merttumer <mert.tu...@collabora.com>
AuthorDate: Mon Apr 26 08:12:11 2021 +0300
Commit:     Mert Tumer <mert.tu...@collabora.com>
CommitDate: Fri Jun 4 07:46:39 2021 +0200

    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.tu...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114638
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116294
    Tested-by: Jenkins

diff --git a/desktop/source/lib/lokinteractionhandler.cxx 
b/desktop/source/lib/lokinteractionhandler.cxx
index eb7d120a5e3e..325e5893184a 100644
--- a/desktop/source/lib/lokinteractionhandler.cxx
+++ b/desktop/source/lib/lokinteractionhandler.cxx
@@ -40,6 +40,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>
@@ -350,6 +352,24 @@ bool 
LOKInteractionHandler::handleMacroConfirmationRequest(const uno::Reference<
     return false;
 }
 
+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)
 {
@@ -365,6 +385,9 @@ sal_Bool SAL_CALL 
LOKInteractionHandler::handleInteractionRequest(
     if (handlePasswordRequest(rContinuations, request))
         return true;
 
+    if (handleFilterOptionsRequest(xRequest))
+        return true;
+
     if (handleMacroConfirmationRequest(xRequest))
         return true;
 
diff --git a/desktop/source/lib/lokinteractionhandler.hxx 
b/desktop/source/lib/lokinteractionhandler.hxx
index 9c15f85f4bc8..108343ec22e3 100644
--- a/desktop/source/lib/lokinteractionhandler.hxx
+++ b/desktop/source/lib/lokinteractionhandler.hxx
@@ -76,6 +76,8 @@ private:
     bool handlePasswordRequest(const 
css::uno::Sequence<css::uno::Reference<css::task::XInteractionContinuation>> 
&rContinuations, const css::uno::Any& rRequest);
     static bool handleMacroConfirmationRequest(const 
css::uno::Reference<css::task::XInteractionRequest>& xRequest);
 
+    static bool handleFilterOptionsRequest(const 
::com::sun::star::uno::Reference<::com::sun::star::task::XInteractionRequest>& 
Request);
+
 public:
     void SetPassword(char const* pPassword);
 
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 0b5080d23230..d30e52f25c03 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -853,7 +853,8 @@ ErrCode SfxObjectShell::HandleFilter( SfxMedium* pMedium, 
SfxObjectShell const *
     SfxItemSet* pSet = pMedium->GetItemSet();
     const SfxStringItem* pOptions = SfxItemSet::GetItem<SfxStringItem>(pSet, 
SID_FILE_FILTEROPTIONS, false);
     const SfxUnoAnyItem* pData = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, 
SID_FILTER_DATA, false);
-    if ( !pData && !pOptions )
+    const bool bTiledRendering = comphelper::LibreOfficeKit::isActive();
+    if ( !pData && (bTiledRendering || !pOptions) )
     {
         css::uno::Reference< XMultiServiceFactory > xServiceManager = 
::comphelper::getProcessServiceFactory();
         css::uno::Reference< XNameAccess > xFilterCFG;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to