diff options
28 files changed, 193 insertions, 1 deletions
diff --git a/basctl/uiconfig/basicide/menubar/menubar.xml b/basctl/uiconfig/basicide/menubar/menubar.xml index 2c12262e28c1..54bcf104a737 100644 --- a/basctl/uiconfig/basicide/menubar/menubar.xml +++ b/basctl/uiconfig/basicide/menubar/menubar.xml @@ -97,6 +97,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/chart2/uiconfig/menubar/menubar.xml b/chart2/uiconfig/menubar/menubar.xml index b4d579a2a1b0..6188ff176c69 100644 --- a/chart2/uiconfig/menubar/menubar.xml +++ b/chart2/uiconfig/menubar/menubar.xml @@ -170,6 +170,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/dbaccess/uiconfig/dbapp/menubar/menubar.xml b/dbaccess/uiconfig/dbapp/menubar/menubar.xml index 38760fdd0c28..0f0608e210b2 100644 --- a/dbaccess/uiconfig/dbapp/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbapp/menubar/menubar.xml @@ -155,6 +155,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/dbaccess/uiconfig/dbquery/menubar/menubar.xml b/dbaccess/uiconfig/dbquery/menubar/menubar.xml index b60371f44f86..69c2076ed2ed 100644 --- a/dbaccess/uiconfig/dbquery/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbquery/menubar/menubar.xml @@ -96,6 +96,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/dbaccess/uiconfig/dbrelation/menubar/menubar.xml b/dbaccess/uiconfig/dbrelation/menubar/menubar.xml index f4a9ffc1e493..fc8efbf767aa 100644 --- a/dbaccess/uiconfig/dbrelation/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbrelation/menubar/menubar.xml @@ -79,6 +79,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/dbaccess/uiconfig/dbtable/menubar/menubar.xml b/dbaccess/uiconfig/dbtable/menubar/menubar.xml index 63982adf15f0..72650f42d276 100644 --- a/dbaccess/uiconfig/dbtable/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbtable/menubar/menubar.xml @@ -80,6 +80,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/dbaccess/uiconfig/dbtdata/menubar/menubar.xml b/dbaccess/uiconfig/dbtdata/menubar/menubar.xml index 95c327e9c900..b7a92a104705 100644 --- a/dbaccess/uiconfig/dbtdata/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbtdata/menubar/menubar.xml @@ -88,6 +88,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/extensions/uiconfig/sbibliography/menubar/menubar.xml b/extensions/uiconfig/sbibliography/menubar/menubar.xml index 39d113b12451..09b9746fe3a4 100644 --- a/extensions/uiconfig/sbibliography/menubar/menubar.xml +++ b/extensions/uiconfig/sbibliography/menubar/menubar.xml @@ -81,6 +81,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/framework/uiconfig/startmodule/menubar/menubar.xml b/framework/uiconfig/startmodule/menubar/menubar.xml index e4ac82f6b7fd..5dff7368712a 100644 --- a/framework/uiconfig/startmodule/menubar/menubar.xml +++ b/framework/uiconfig/startmodule/menubar/menubar.xml @@ -50,6 +50,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc index a0f72b7526bb..736132149e97 100644 --- a/include/sfx2/sfxsids.hrc +++ b/include/sfx2/sfxsids.hrc @@ -45,6 +45,7 @@ #define SID_ABOUT (SID_SFX_START + 301) #define SID_SETUPPRINTER (SID_SFX_START + 302) #define SID_EXITANDRETURN (SID_SFX_START + 303) +#define SID_SAFE_MODE (SID_SFX_START + 304) #define SID_CONTEXT (SID_SFX_START + 310) diff --git a/include/svtools/restartdialog.hxx b/include/svtools/restartdialog.hxx index bede9ed58fbe..01ba7e74350c 100644 --- a/include/svtools/restartdialog.hxx +++ b/include/svtools/restartdialog.hxx @@ -32,9 +32,10 @@ enum RestartReason { RESTART_REASON_BIBLIOGRAPHY_INSTALL, // "For the bibliography to work properly, // %PRODUCTNAME must be restarted." - RESTART_REASON_MAILMERGE_INSTALL + RESTART_REASON_MAILMERGE_INSTALL, // "For the mail merge to work properly, // %PRODUCTNAME must be restarted." + RESTART_REASON_SAFE_MODE }; // Must be called with the solar mutex locked: diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 91aa01123ad2..7ff257b106d2 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -5740,6 +5740,11 @@ <value xml:lang="en-US">3D Model...</value> </prop> </node> + <node oor:name=".uno:SafeMode" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Restart in Safe Mode...</value> + </prop> + </node> </node> </node> </oor:component-data> diff --git a/reportdesign/uiconfig/dbreport/menubar/menubar.xml b/reportdesign/uiconfig/dbreport/menubar/menubar.xml index 459b288ab6f6..d7011ef247c8 100644 --- a/reportdesign/uiconfig/dbreport/menubar/menubar.xml +++ b/reportdesign/uiconfig/dbreport/menubar/menubar.xml @@ -437,6 +437,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml index 46d3da4dcf7a..b6402233835b 100644 --- a/sc/uiconfig/scalc/menubar/menubar.xml +++ b/sc/uiconfig/scalc/menubar/menubar.xml @@ -550,6 +550,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml index f12287b0b5f6..8eeb74c3173b 100644 --- a/sd/uiconfig/sdraw/menubar/menubar.xml +++ b/sd/uiconfig/sdraw/menubar/menubar.xml @@ -367,6 +367,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml index 9e700b89e25f..fc072d1fcec4 100644 --- a/sd/uiconfig/simpress/menubar/menubar.xml +++ b/sd/uiconfig/simpress/menubar/menubar.xml @@ -439,6 +439,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sfx2/UIConfig_sfx.mk b/sfx2/UIConfig_sfx.mk index 9a555b95b0d3..f82eaa3e4447 100644 --- a/sfx2/UIConfig_sfx.mk +++ b/sfx2/UIConfig_sfx.mk @@ -38,6 +38,7 @@ $(eval $(call gb_UIConfig_add_uifiles,sfx,\ sfx2/uiconfig/ui/password \ sfx2/uiconfig/ui/printeroptionsdialog \ sfx2/uiconfig/ui/querysavedialog \ + sfx2/uiconfig/ui/safemodequerydialog \ sfx2/uiconfig/ui/searchdialog \ sfx2/uiconfig/ui/securityinfopage \ sfx2/uiconfig/ui/singletabdialog \ diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi index 442287ec2e28..a271dd1cb527 100644 --- a/sfx2/sdi/appslots.sdi +++ b/sfx2/sdi/appslots.sdi @@ -214,6 +214,11 @@ interface Application [ ExecMethod = MiscExec_Impl ; ] + SID_SAFE_MODE + [ + ExecMethod = MiscExec_Impl ; + StateMethod = MiscState_Impl ; + ] } diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 17b8bc2a79d7..182fd4768fb1 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -7807,3 +7807,20 @@ SfxStringItem Insert3DModel SID_INSERT_3DMODEL ToolBoxConfig = TRUE, GroupId = GID_APPLICATION; ] + +SfxVoidItem SafeMode SID_SAFE_MODE +() +[ + AutoUpdate = FALSE, + FastCall = FALSE, + ReadOnlyDoc = TRUE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = GID_APPLICATION; +] diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index 7ff0da288f80..6c479fd2f55a 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -37,6 +37,8 @@ #include <com/sun/star/system/SystemShellExecuteException.hpp> #include <com/sun/star/task/XJobExecutor.hpp> #include <com/sun/star/text/ModuleDispatcher.hpp> +#include <com/sun/star/task/OfficeRestartManager.hpp> +#include <com/sun/star/task/XInteractionHandler.hpp> #include <com/sun/star/ui/dialogs/AddressBookSourcePilot.hpp> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/util/XCloseable.hpp> @@ -259,6 +261,29 @@ namespace showDocument("LICENSE"); return 0; } + + class SafeModeQueryDialog : public ModalDialog + { + private: + DECL_LINK(RestartHdl, Button*); + public: + explicit SafeModeQueryDialog(); + }; + + SafeModeQueryDialog::SafeModeQueryDialog() + : ModalDialog(nullptr, "SafeModeQueryDialog", "sfx/ui/safemodequerydialog.ui") + { + get<PushButton>("restart")->SetClickHdl(LINK(this, SafeModeQueryDialog, RestartHdl)); + } + + IMPL_LINK(SafeModeQueryDialog, RestartHdl, Button*, /* pButton */) + { + EndDialog(RET_OK); + uno::Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); + css::task::OfficeRestartManager::get(xContext)->requestRestart( + css::uno::Reference< css::task::XInteractionHandler >()); + return 0; + } } void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) @@ -685,6 +710,12 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) bDone = true; break; } + case SID_SAFE_MODE: + { + ScopedVclPtrInstance< SafeModeQueryDialog > aDialog; + aDialog->Execute(); + break; + } default: break; @@ -824,6 +855,11 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet) } break; + case SID_SAFE_MODE: + { + break; + } + default: break; } diff --git a/sfx2/uiconfig/ui/safemodequerydialog.ui b/sfx2/uiconfig/ui/safemodequerydialog.ui new file mode 100644 index 000000000000..8a246910dd9f --- /dev/null +++ b/sfx2/uiconfig/ui/safemodequerydialog.ui @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.18.3 --> +<interface> + <requires lib="gtk+" version="3.0"/> + <object class="GtkDialog" id="SafeModeQueryDialog"> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="title" translatable="yes">Enter Safe Mode</property> + <property name="resizable">False</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">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="cancel"> + <property name="label">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + <property name="secondary">True</property> + </packing> + </child> + <child> + <object class="GtkButton" id="restart"> + <property name="label">_Restart</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_underline">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="GtkLabel" id="label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Are you sure you want to restart %PRODUCTNAME and enter the Safe Mode?</property> + <property name="wrap">True</property> + <property name="max_width_chars">80</property> + <property name="lines">2</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + </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">cancel</action-widget> + <action-widget response="0">restart</action-widget> + </action-widgets> + </object> +</interface> diff --git a/starmath/uiconfig/smath/menubar/menubar.xml b/starmath/uiconfig/smath/menubar/menubar.xml index 5a8edbb23763..441acb519c77 100644 --- a/starmath/uiconfig/smath/menubar/menubar.xml +++ b/starmath/uiconfig/smath/menubar/menubar.xml @@ -146,6 +146,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/sglobal/menubar/menubar.xml b/sw/uiconfig/sglobal/menubar/menubar.xml index 4a27b2814053..2dcd76eafccf 100644 --- a/sw/uiconfig/sglobal/menubar/menubar.xml +++ b/sw/uiconfig/sglobal/menubar/menubar.xml @@ -508,6 +508,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/sweb/menubar/menubar.xml b/sw/uiconfig/sweb/menubar/menubar.xml index 922b0cf5595e..511bebcff966 100644 --- a/sw/uiconfig/sweb/menubar/menubar.xml +++ b/sw/uiconfig/sweb/menubar/menubar.xml @@ -436,6 +436,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/swform/menubar/menubar.xml b/sw/uiconfig/swform/menubar/menubar.xml index 4795e4476b33..60489ddda993 100644 --- a/sw/uiconfig/swform/menubar/menubar.xml +++ b/sw/uiconfig/swform/menubar/menubar.xml @@ -502,6 +502,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/swreport/menubar/menubar.xml b/sw/uiconfig/swreport/menubar/menubar.xml index f9d3fececa89..561b3a37b51d 100644 --- a/sw/uiconfig/swreport/menubar/menubar.xml +++ b/sw/uiconfig/swreport/menubar/menubar.xml @@ -504,6 +504,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml index a7184c387160..1c9c7a682f6a 100644 --- a/sw/uiconfig/swriter/menubar/menubar.xml +++ b/sw/uiconfig/swriter/menubar/menubar.xml @@ -534,6 +534,10 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> diff --git a/sw/uiconfig/swxform/menubar/menubar.xml b/sw/uiconfig/swxform/menubar/menubar.xml index c6cf58f31702..c028f1a6f958 100644 --- a/sw/uiconfig/swxform/menubar/menubar.xml +++ b/sw/uiconfig/swxform/menubar/menubar.xml @@ -504,6 +504,8 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendFeedback"/> <menu:menuseparator/> + <menu:menuitem menu:id=".uno:SafeMode"/> + <menu:menuseparator/> <menu:menuitem menu:id=".uno:ShowLicense"/> <menu:menuitem menu:id=".uno:About"/> </menu:menupopup> |