summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2018-12-13 14:24:01 +0300
committerXisco Faulí <xiscofauli@libreoffice.org>2018-12-17 09:45:25 +0100
commit9be9b4072741ac3c7282f272484df1f65aa2765e (patch)
treeb759f434fd821f8b8f2f4fdde7bb65aa130753ee
parentColibre icons: fix 32px datasort icon (diff)
downloadcore-9be9b4072741ac3c7282f272484df1f65aa2765e.tar.gz
core-9be9b4072741ac3c7282f272484df1f65aa2765e.zip
tdf#121180: close Options dialog when restart is confirmed
Change-Id: Ieb6e62ca83921abed6b6432d70c6717dadfaaa34 Reviewed-on: https://gerrit.libreoffice.org/65090 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 0fa14d58457e9418ff756a0efd66e365c4403a67) Reviewed-on: https://gerrit.libreoffice.org/65184 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
-rw-r--r--cui/source/options/treeopt.cxx5
-rw-r--r--include/svtools/restartdialog.hxx4
-rw-r--r--svtools/source/dialogs/restartdialog.cxx6
3 files changed, 9 insertions, 6 deletions
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index a0ced4fccd16..cebb55371923 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -697,8 +697,9 @@ IMPL_LINK_NOARG(OfaTreeOptionsDialog, ApplyHdl_Impl, Button*, void)
if ( bNeedsRestart )
{
SolarMutexGuard aGuard;
- ::svtools::executeRestartDialog(comphelper::getProcessComponentContext(),
- GetFrameWeld(), eRestartReason);
+ if (svtools::executeRestartDialog(comphelper::getProcessComponentContext(),
+ GetFrameWeld(), eRestartReason))
+ EndDialog(RET_OK);
}
}
diff --git a/include/svtools/restartdialog.hxx b/include/svtools/restartdialog.hxx
index 750542a37459..f29366c1b592 100644
--- a/include/svtools/restartdialog.hxx
+++ b/include/svtools/restartdialog.hxx
@@ -58,8 +58,8 @@ enum RestartReason {
RESTART_REASON_NONE
};
-// Must be called with the solar mutex locked:
-SVT_DLLPUBLIC void executeRestartDialog(
+// Must be called with the solar mutex locked; returns if restart was initiated:
+SVT_DLLPUBLIC bool executeRestartDialog(
css::uno::Reference< css::uno::XComponentContext > const & context,
weld::Window* parent, RestartReason reason);
diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx
index 1de2e09cc014..079cc5e28f21 100644
--- a/svtools/source/dialogs/restartdialog.cxx
+++ b/svtools/source/dialogs/restartdialog.cxx
@@ -90,18 +90,20 @@ IMPL_LINK_NOARG(RestartDialog, hdlNo, weld::Button&, void)
}
-void svtools::executeRestartDialog(
+bool svtools::executeRestartDialog(
css::uno::Reference< css::uno::XComponentContext > const & context,
weld::Window* parent, RestartReason reason)
{
auto xRestartManager = css::task::OfficeRestartManager::get(context);
if (xRestartManager->isRestartRequested(false))
- return; // don't try to show another dialog when restart is already in progress
+ return true; // don't try to show another dialog when restart is already in progress
RestartDialog aDlg(parent, reason);
if (aDlg.run()) {
xRestartManager->requestRestart(
css::uno::Reference< css::task::XInteractionHandler >());
+ return true;
}
+ return false;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */