diff options
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/Library_svt.mk | 1 | ||||
-rw-r--r-- | svtools/Package_inc.mk | 1 | ||||
-rw-r--r-- | svtools/UI_svt.mk | 1 | ||||
-rw-r--r-- | svtools/inc/svtools/restartdialog.hxx | 40 | ||||
-rw-r--r-- | svtools/inc/svtools/svtools.hrc | 6 | ||||
-rw-r--r-- | svtools/source/dialogs/restartdialog.cxx | 78 | ||||
-rw-r--r-- | svtools/source/java/javaerror.src | 13 | ||||
-rw-r--r-- | svtools/source/java/javainteractionhandler.cxx | 13 | ||||
-rw-r--r-- | svtools/uiconfig/ui/restartdialog.ui | 102 |
9 files changed, 232 insertions, 23 deletions
diff --git a/svtools/Library_svt.mk b/svtools/Library_svt.mk index fd81beb9dbc3..7ed5a70e201d 100644 --- a/svtools/Library_svt.mk +++ b/svtools/Library_svt.mk @@ -130,6 +130,7 @@ $(eval $(call gb_Library_add_exception_objects,svt,\ svtools/source/dialogs/mcvmath \ svtools/source/dialogs/PlaceEditDialog \ svtools/source/dialogs/prnsetup \ + svtools/source/dialogs/restartdialog \ svtools/source/dialogs/roadmapwizard \ svtools/source/dialogs/ServerDetailsControls \ svtools/source/dialogs/wizardmachine \ diff --git a/svtools/Package_inc.mk b/svtools/Package_inc.mk index 551d66f1e921..054bd29c76dc 100644 --- a/svtools/Package_inc.mk +++ b/svtools/Package_inc.mk @@ -108,6 +108,7 @@ $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/popupmenucontrollerbas $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/popupwindowcontroller.hxx,svtools/popupwindowcontroller.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/printoptions.hxx,svtools/printoptions.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/prnsetup.hxx,svtools/prnsetup.hxx)) +$(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/restartdialog.hxx,svtools/restartdialog.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/roadmap.hxx,svtools/roadmap.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/roadmapwizard.hxx,svtools/roadmapwizard.hxx)) $(eval $(call gb_Package_add_file,svtools_inc,inc/svtools/rtfkeywd.hxx,svtools/rtfkeywd.hxx)) diff --git a/svtools/UI_svt.mk b/svtools/UI_svt.mk index 250bd5f57c9a..4afe25e7b17d 100644 --- a/svtools/UI_svt.mk +++ b/svtools/UI_svt.mk @@ -12,6 +12,7 @@ $(eval $(call gb_UI_UI,svt)) $(eval $(call gb_UI_add_uifiles,svt,\ svtools/uiconfig/ui/graphicexport \ svtools/uiconfig/ui/placeedit \ + svtools/uiconfig/ui/restartdialog \ )) # vim: set noet sw=4 ts=4: diff --git a/svtools/inc/svtools/restartdialog.hxx b/svtools/inc/svtools/restartdialog.hxx new file mode 100644 index 000000000000..85afd7d89f3c --- /dev/null +++ b/svtools/inc/svtools/restartdialog.hxx @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_SVTOOLS_RESTARTDIALOG_HXX +#define INCLUDED_SVTOOLS_RESTARTDIALOG_HXX + +#include "sal/config.h" + +#include "com/sun/star/uno/Reference.hxx" +#include "svtools/svtdllapi.h" + +class Window; +namespace com { namespace sun { namespace star { namespace uno { + class XComponentContext; +} } } } + +namespace svtools { + +enum RestartReason { + RESTART_REASON_JAVA + // "For the selected Java runtime environment to work properly, + // %PRODUCTNAME must be restarted." +}; + +SVT_DLLPUBLIC void executeRestartDialog( + com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > + const & context, + Window * parent, RestartReason reason); + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svtools/inc/svtools/svtools.hrc b/svtools/inc/svtools/svtools.hrc index c855cabcc851..01ee8a88e430 100644 --- a/svtools/inc/svtools/svtools.hrc +++ b/svtools/inc/svtools/svtools.hrc @@ -205,8 +205,8 @@ #define STR_ERROR_JVMCREATIONFAILED (STR_SVT_JAVAERROR_START+1) #define STR_WARNING_JAVANOTFOUND (STR_SVT_JAVAERROR_START+2) #define STR_WARNING_INVALIDJAVASETTINGS (STR_SVT_JAVAERROR_START+3) -#define STR_ERROR_RESTARTREQUIRED (STR_SVT_JAVAERROR_START+4) -#define STR_SVT_JAVAERROR_END (STR_ERROR_RESTARTREQUIRED) +// STR_SVT_JAVAERROR_START + 4 unused +#define STR_SVT_JAVAERROR_END (STR_SVT_JAVAERROR_START+4) // String array to match UI language names to LanguageType values and vice versa #define STR_ARR_SVT_LANGUAGE_TABLE_START (STR_SVT_JAVAERROR_END + 1) @@ -244,7 +244,7 @@ #define ERRORBOX_JVMCREATIONFAILED (RID_SVTOOLS_START+21) #define WARNINGBOX_JAVANOTFOUND (RID_SVTOOLS_START+22) #define WARNINGBOX_INVALIDJAVASETTINGS (RID_SVTOOLS_START+23) -#define ERRORBOX_RESTARTREQUIRED (RID_SVTOOLS_START+24) +// RID_SVTOOLS_START + 24 unused #define WARNINGBOX_INVALIDJAVASETTINGS_MAC (RID_SVTOOLS_START+25) #define ERRORBOX_JVMCREATIONFAILED_MAC (RID_SVTOOLS_START+26) diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx new file mode 100644 index 000000000000..1004a2d6d394 --- /dev/null +++ b/svtools/source/dialogs/restartdialog.cxx @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "sal/config.h" + +#include <cassert> + +#include "com/sun/star/task/OfficeRestartManager.hpp" +#include "com/sun/star/task/XInteractionHandler.hpp" +#include "com/sun/star/uno/Reference.hxx" +#include "com/sun/star/uno/XComponentContext.hpp" +#include "svtools/restartdialog.hxx" +#include "tools/link.hxx" +#include "vcl/button.hxx" +#include "vcl/dialog.hxx" +#include "vcl/window.hxx" + +namespace { + +namespace css = com::sun::star; + +class RestartDialog: public ModalDialog { +public: + RestartDialog(Window * parent, svtools::RestartReason reason): + ModalDialog(parent, "RestartDialog", "svt/ui/restartdialog.ui") + { + get(reasonJava_, "reason_java"); + get(btnYes_, "yes"); + get(btnNo_, "no"); + switch (reason) { + case svtools::RESTART_REASON_JAVA: + reasonJava_->Show(); + break; + default: + assert(false); // this cannot happen + } + btnYes_->SetClickHdl(LINK(this, RestartDialog, hdlYes)); + btnNo_->SetClickHdl(LINK(this, RestartDialog, hdlNo)); + } + +private: + DECL_LINK(hdlYes, void *); + DECL_LINK(hdlNo, void *); + + Window * reasonJava_; + PushButton * btnYes_; + PushButton * btnNo_; +}; + +IMPL_LINK_NOARG(RestartDialog, hdlYes) { + EndDialog(true); + return 0; +} + +IMPL_LINK_NOARG(RestartDialog, hdlNo) { + EndDialog(false); + return 0; +} + +} + +void svtools::executeRestartDialog( + css::uno::Reference< css::uno::XComponentContext > const & context, + Window * parent, RestartReason reason) +{ + if (RestartDialog(parent, reason).Execute()) { + css::task::OfficeRestartManager::get(context)->requestRestart( + css::uno::Reference< css::task::XInteractionHandler >()); + } +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svtools/source/java/javaerror.src b/svtools/source/java/javaerror.src index 09b904c4d935..0949b68f2648 100644 --- a/svtools/source/java/javaerror.src +++ b/svtools/source/java/javaerror.src @@ -60,14 +60,6 @@ ErrorBox ERRORBOX_JVMCREATIONFAILED Message[ en-US ] = "%PRODUCTNAME requires a Java runtime environment (JRE) to perform this task. The selected JRE is defective. Please select another version or install a new JRE and select it under Tools - Options - %PRODUCTNAME - Java."; }; -ErrorBox ERRORBOX_RESTARTREQUIRED -{ - Buttons = WB_OK; - DefButton = WB_DEF_OK ; - Message[ en-US ] = "For the selected Java runtime environment to work properly, %PRODUCTNAME must be restarted. Please restart %PRODUCTNAME now."; -}; - - String STR_WARNING_JAVANOTFOUND { @@ -79,11 +71,6 @@ String STR_WARNING_INVALIDJAVASETTINGS Text[ en-US ] = "Select JRE"; }; -String STR_ERROR_RESTARTREQUIRED -{ - Text[ en-US ] = "Restart Required"; -}; - String STR_QUESTION_JAVADISABLED { Text[ en-US ] = "Enable JRE" ; diff --git a/svtools/source/java/javainteractionhandler.cxx b/svtools/source/java/javainteractionhandler.cxx index e38fa9a98d32..d142dedd564d 100644 --- a/svtools/source/java/javainteractionhandler.cxx +++ b/svtools/source/java/javainteractionhandler.cxx @@ -27,6 +27,7 @@ #include <com/sun/star/java/JavaDisabledException.hpp> #include <com/sun/star/java/JavaVMCreationFailureException.hpp> #include <com/sun/star/java/RestartRequiredException.hpp> +#include <comphelper/processfactory.hxx> #include <vcl/svapp.hxx> #include <vcl/msgbox.hxx> #include <osl/mutex.hxx> @@ -34,6 +35,7 @@ #include <tools/rcid.h> #include <jvmfwk/framework.h> +#include <svtools/restartdialog.hxx> #include <svtools/svtresid.hxx> #include <svtools/javainteractionhandler.hxx> #include <svtools/javacontext.hxx> @@ -201,14 +203,11 @@ void SAL_CALL JavaInteractionHandler::handle( const Reference< XInteractionReque //before it can be used. SolarMutexGuard aSolarGuard; m_bRestartRequired_Handled = true; - ErrorBox aErrorBox(NULL, SvtResId( ERRORBOX_RESTARTREQUIRED ) ); - aErrorBox.SetText(SvtResId( STR_ERROR_RESTARTREQUIRED ).toString()); - nResult = aErrorBox.Execute(); - } - else - { - nResult = RET_OK; + svtools::executeRestartDialog( + comphelper::getProcessComponentContext(), 0, + svtools::RESTART_REASON_JAVA); } + nResult = RET_OK; } if ( nResult == RET_CANCEL || nResult == RET_NO) diff --git a/svtools/uiconfig/ui/restartdialog.ui b/svtools/uiconfig/ui/restartdialog.ui new file mode 100644 index 000000000000..dd041b4ec52b --- /dev/null +++ b/svtools/uiconfig/ui/restartdialog.ui @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkDialog" id="RestartDialog"> + <property name="can_focus">False</property> + <property name="border_width">5</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">2</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="homogeneous">True</property> + <property name="layout_style">center</property> + <child> + <object class="GtkButton" id="yes"> + <property name="label" translatable="yes">Restart now</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="no"> + <property name="label" translatable="yes">Restart later</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkLabel" id="reason_java"> + <property name="can_focus">False</property> + <property name="label" translatable="yes">For the selected Java runtime environment to work properly, %PRODUCTNAME must be restarted.</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Do you want to restart %PRODUCTNAME now?</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">yes</action-widget> + <action-widget response="0">no</action-widget> + </action-widgets> + </object> +</interface> |