summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Castro <hcastro@collabora.com>2021-02-17 16:47:27 -0400
committerJan Holesovsky <kendy@collabora.com>2021-02-22 16:01:51 +0100
commit5f3fbb019bd79bd57eed94e01bd2202efd9a0c06 (patch)
tree962b79863eb7a357f945d5aca8eae7bb47c8fb82
parent649ef79784ed4287c8627ba45df6b435f52996c4 (diff)
lok: add batch mode option to load the document
When the LibreOffice Kit is active by default is set to headless mode, with the flag "DialogCancelMode::Silent", according to the documentation it should close the dialog, but it was changed for dialog tunneling. However the dialog tunneling is being deprecated, and in order to not produce any regression, it will be used temporary a new state "DialogCancelMode::LOKSilent", to disable any dialog interactivity. Change-Id: I3b6cce38c37f75dc1b24dda352f6caec19438ff1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111087 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--desktop/source/lib/init.cxx6
-rw-r--r--include/vcl/svapp.hxx1
-rw-r--r--vcl/source/window/dialog.cxx4
3 files changed, 11 insertions, 0 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index e72f17e8c45a..621e2f3455f8 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2249,6 +2249,12 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis,
const OUString aDeviceFormFactor = extractParameter(aOptions, "DeviceFormFactor");
SfxLokHelper::setDeviceFormFactor(aDeviceFormFactor);
+ const OUString aBatch = extractParameter(aOptions, "Batch");
+ if (!aBatch.isEmpty())
+ {
+ Application::SetDialogCancelMode(DialogCancelMode::LOKSilent);
+ }
+
uno::Sequence<css::beans::PropertyValue> aFilterOptions(3);
aFilterOptions[0] = css::beans::PropertyValue( "FilterOptions",
0,
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index d0c1e7f0bb6e..a0a5b53144c2 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -220,6 +220,7 @@ private:
enum class DialogCancelMode {
Off, ///< do not automatically cancel dialogs
Silent, ///< silently cancel any dialogs
+ LOKSilent, ///< silently cancel any dialogs (LOK case)
Fatal ///< cancel any dialogs by std::abort
};
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index d4437116b725..83fa562023ce 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -947,6 +947,10 @@ bool Dialog::ImplStartExecute()
"Dialog \"" << ImplGetDialogText(this)
<< "\"cancelled in silent mode");
return false;
+
+ case DialogCancelMode::LOKSilent:
+ return false;
+
default: // default cannot happen
case DialogCancelMode::Fatal:
std::abort();