tdf#46279 Show restart message after extension installation
Change-Id: I91feab63b77055b8f73d0fb481a76586b249160c
Reviewed-on: https://gerrit.libreoffice.org/24595
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
diff --git a/desktop/Library_deployment.mk b/desktop/Library_deployment.mk
index ac32ceb..269b98e 100644
--- a/desktop/Library_deployment.mk
+++ b/desktop/Library_deployment.mk
@@ -29,9 +29,11 @@ $(eval $(call gb_Library_use_libraries,deployment,\
deploymentmisc \
sal \
svl \
svt \
tl \
ucbhelper \
utl \
vcl \
xmlscript \
i18nlangtag \
$(gb_UWINAPI) \
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index e09ba86f..c3e4807 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -40,9 +40,12 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
#include <xmlscript/xml_helper.hxx>
#include <osl/diagnose.h>
#include <svtools/restartdialog.hxx>
#include <vcl/svapp.hxx>
#include "dp_interact.h"
#include "dp_resource.h"
#include "dp_ucb.h"
@@ -1493,6 +1496,9 @@ void ExtensionManager::fireModified()
[this] (uno::Reference<util::XModifyListener> const& xListener)
{ return xListener->modified(lang::EventObject(static_cast<OWeakObject *>(this))); });
}
SolarMutexGuard aGuard;
::svtools::executeRestartDialog(comphelper::getProcessComponentContext(), nullptr, svtools::RESTART_REASON_EXTENSION_INSTALL);
}
} // namespace dp_manager
diff --git a/include/svtools/restartdialog.hxx b/include/svtools/restartdialog.hxx
index e04f5f6..2d0ccd8 100644
--- a/include/svtools/restartdialog.hxx
+++ b/include/svtools/restartdialog.hxx
@@ -47,9 +47,12 @@ enum RestartReason {
RESTART_REASON_ASSIGNING_FOLDERS,
// "For the assigned folders and archives to take effect,
// %PRODUCTNAME must be restarted."
RESTART_REASON_EXP_FEATURES
RESTART_REASON_EXP_FEATURES,
// "For the modified experimental features to take effect,
// %PRODUCTNAME must be restarted."
RESTART_REASON_EXTENSION_INSTALL
// "For the extension to work properly,
// %PRODUCTNAME must be restarted."
};
// Must be called with the solar mutex locked:
diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx
index bc6c3f7..2c15283 100644
--- a/svtools/source/dialogs/restartdialog.cxx
+++ b/svtools/source/dialogs/restartdialog.cxx
@@ -58,6 +58,9 @@ public:
case svtools::RESTART_REASON_EXP_FEATURES:
get(reason_,"reason_exp_features");
break;
case svtools::RESTART_REASON_EXTENSION_INSTALL:
get(reason_, "reason_extension_install");
break;
default:
assert(false); // this cannot happen
}
diff --git a/svtools/uiconfig/ui/restartdialog.ui b/svtools/uiconfig/ui/restartdialog.ui
index cf378ac..c9765e7 100644
--- a/svtools/uiconfig/ui/restartdialog.ui
+++ b/svtools/uiconfig/ui/restartdialog.ui
@@ -196,6 +196,21 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="reason_extension_install">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="label" translatable="yes">For the extension to work properly, %PRODUCTNAME must be restarted.</property>
<property name="wrap">True</property>
<property name="max_width_chars">50</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -206,7 +221,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
<property name="position">10</property>
</packing>
</child>
</object>