From ae94c223e2e21e42fc7feca72402b910e5eab5c7 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Mon, 10 Oct 2016 15:04:53 +0200 Subject: [PATCH] safemode: Add uno command and menu entry Change-Id: I1843767160b79041c42e506eff0cf39399c74f26 Reviewed-on: https://gerrit.libreoffice.org/29668 Reviewed-by: Samuel Mehrbrodt Tested-by: Samuel Mehrbrodt --- basctl/uiconfig/basicide/menubar/menubar.xml | 2 + chart2/uiconfig/menubar/menubar.xml | 2 + dbaccess/uiconfig/dbapp/menubar/menubar.xml | 2 + dbaccess/uiconfig/dbquery/menubar/menubar.xml | 2 + .../uiconfig/dbrelation/menubar/menubar.xml | 2 + dbaccess/uiconfig/dbtable/menubar/menubar.xml | 2 + dbaccess/uiconfig/dbtdata/menubar/menubar.xml | 2 + .../sbibliography/menubar/menubar.xml | 2 + .../uiconfig/startmodule/menubar/menubar.xml | 2 + include/sfx2/sfxsids.hrc | 1 + include/svtools/restartdialog.hxx | 3 +- .../openoffice/Office/UI/GenericCommands.xcu | 5 ++ .../uiconfig/dbreport/menubar/menubar.xml | 2 + sc/uiconfig/scalc/menubar/menubar.xml | 2 + sd/uiconfig/sdraw/menubar/menubar.xml | 2 + sd/uiconfig/simpress/menubar/menubar.xml | 2 + sfx2/UIConfig_sfx.mk | 1 + sfx2/sdi/appslots.sdi | 5 ++ sfx2/sdi/sfx.sdi | 17 ++++ sfx2/source/appl/appserv.cxx | 34 ++++++++ sfx2/uiconfig/ui/safemodequerydialog.ui | 84 +++++++++++++++++++ starmath/uiconfig/smath/menubar/menubar.xml | 2 + sw/uiconfig/sglobal/menubar/menubar.xml | 2 + sw/uiconfig/sweb/menubar/menubar.xml | 2 + sw/uiconfig/swform/menubar/menubar.xml | 2 + sw/uiconfig/swreport/menubar/menubar.xml | 2 + sw/uiconfig/swriter/menubar/menubar.xml | 4 + sw/uiconfig/swxform/menubar/menubar.xml | 2 + 28 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 sfx2/uiconfig/ui/safemodequerydialog.ui diff --git a/basctl/uiconfig/basicide/menubar/menubar.xml b/basctl/uiconfig/basicide/menubar/menubar.xml index 66bcfa5b6c4c..62c7ded06394 100644 --- a/basctl/uiconfig/basicide/menubar/menubar.xml +++ b/basctl/uiconfig/basicide/menubar/menubar.xml @@ -100,6 +100,8 @@ + + diff --git a/chart2/uiconfig/menubar/menubar.xml b/chart2/uiconfig/menubar/menubar.xml index 98c5aabdd54e..ddf7af15bac3 100644 --- a/chart2/uiconfig/menubar/menubar.xml +++ b/chart2/uiconfig/menubar/menubar.xml @@ -171,6 +171,8 @@ + + diff --git a/dbaccess/uiconfig/dbapp/menubar/menubar.xml b/dbaccess/uiconfig/dbapp/menubar/menubar.xml index 13da527b2c18..97cad1c753cf 100644 --- a/dbaccess/uiconfig/dbapp/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbapp/menubar/menubar.xml @@ -156,6 +156,8 @@ + + diff --git a/dbaccess/uiconfig/dbquery/menubar/menubar.xml b/dbaccess/uiconfig/dbquery/menubar/menubar.xml index 7ee3833a8642..14d1acf6492f 100644 --- a/dbaccess/uiconfig/dbquery/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbquery/menubar/menubar.xml @@ -97,6 +97,8 @@ + + diff --git a/dbaccess/uiconfig/dbrelation/menubar/menubar.xml b/dbaccess/uiconfig/dbrelation/menubar/menubar.xml index fc6aaa76e294..3df7607efe87 100644 --- a/dbaccess/uiconfig/dbrelation/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbrelation/menubar/menubar.xml @@ -80,6 +80,8 @@ + + diff --git a/dbaccess/uiconfig/dbtable/menubar/menubar.xml b/dbaccess/uiconfig/dbtable/menubar/menubar.xml index 077f4552ea15..fa4aefc47609 100644 --- a/dbaccess/uiconfig/dbtable/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbtable/menubar/menubar.xml @@ -81,6 +81,8 @@ + + diff --git a/dbaccess/uiconfig/dbtdata/menubar/menubar.xml b/dbaccess/uiconfig/dbtdata/menubar/menubar.xml index 805e968ce286..9624cc5c0276 100644 --- a/dbaccess/uiconfig/dbtdata/menubar/menubar.xml +++ b/dbaccess/uiconfig/dbtdata/menubar/menubar.xml @@ -89,6 +89,8 @@ + + diff --git a/extensions/uiconfig/sbibliography/menubar/menubar.xml b/extensions/uiconfig/sbibliography/menubar/menubar.xml index 3e16a788e65d..f111b1a864fa 100644 --- a/extensions/uiconfig/sbibliography/menubar/menubar.xml +++ b/extensions/uiconfig/sbibliography/menubar/menubar.xml @@ -82,6 +82,8 @@ + + diff --git a/framework/uiconfig/startmodule/menubar/menubar.xml b/framework/uiconfig/startmodule/menubar/menubar.xml index 427194dcad5f..2cdff8021552 100644 --- a/framework/uiconfig/startmodule/menubar/menubar.xml +++ b/framework/uiconfig/startmodule/menubar/menubar.xml @@ -52,6 +52,8 @@ + + diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc index f5561feb2ba8..395829b1c7ba 100644 --- a/include/sfx2/sfxsids.hrc +++ b/include/sfx2/sfxsids.hrc @@ -44,6 +44,7 @@ #define SID_QUITAPP (SID_SFX_START + 300) #define SID_ABOUT (SID_SFX_START + 301) #define SID_SETUPPRINTER (SID_SFX_START + 302) +#define SID_SAFE_MODE (SID_SFX_START + 303) #define SID_CONTEXT (SID_SFX_START + 310) diff --git a/include/svtools/restartdialog.hxx b/include/svtools/restartdialog.hxx index 74aba87500d1..6b3791ebd282 100644 --- a/include/svtools/restartdialog.hxx +++ b/include/svtools/restartdialog.hxx @@ -53,9 +53,10 @@ enum RestartReason { RESTART_REASON_EXTENSION_INSTALL, // "For the extension to work properly, // %PRODUCTNAME must be restarted." - RESTART_REASON_OPENGL + RESTART_REASON_OPENGL, // "For the OpenGL changes to take effect, // %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 470daaab96a0..88704174e390 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -6388,6 +6388,11 @@ Description... + + + Restart in Safe Mode... + + diff --git a/reportdesign/uiconfig/dbreport/menubar/menubar.xml b/reportdesign/uiconfig/dbreport/menubar/menubar.xml index ce70f4ad9e62..ad19bbd5cc06 100644 --- a/reportdesign/uiconfig/dbreport/menubar/menubar.xml +++ b/reportdesign/uiconfig/dbreport/menubar/menubar.xml @@ -286,6 +286,8 @@ + + diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml index 0bbf97cd41b1..216b3c792291 100644 --- a/sc/uiconfig/scalc/menubar/menubar.xml +++ b/sc/uiconfig/scalc/menubar/menubar.xml @@ -709,6 +709,8 @@ + + diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml index e8f1a06df671..18138a5df5a8 100644 --- a/sd/uiconfig/sdraw/menubar/menubar.xml +++ b/sd/uiconfig/sdraw/menubar/menubar.xml @@ -373,6 +373,8 @@ + + diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml index 20c52ccf0494..d8e911f34b16 100644 --- a/sd/uiconfig/simpress/menubar/menubar.xml +++ b/sd/uiconfig/simpress/menubar/menubar.xml @@ -611,6 +611,8 @@ + + diff --git a/sfx2/UIConfig_sfx.mk b/sfx2/UIConfig_sfx.mk index c55e3c6fb992..554bf63785ed 100644 --- a/sfx2/UIConfig_sfx.mk +++ b/sfx2/UIConfig_sfx.mk @@ -41,6 +41,7 @@ $(eval $(call gb_UIConfig_add_uifiles,sfx,\ sfx2/uiconfig/ui/notebookbarpopup \ 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 4921f27e0d3e..5df800d52389 100644 --- a/sfx2/sdi/appslots.sdi +++ b/sfx2/sdi/appslots.sdi @@ -225,6 +225,11 @@ interface Application ExecMethod = MiscExec_Impl ; StateMethod = MiscState_Impl ; ] + SID_SAFE_MODE + [ + ExecMethod = MiscExec_Impl ; + StateMethod = MiscState_Impl ; + ] } diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 7c24c75f65d7..edf0ea2b0382 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -5784,3 +5784,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 5adbc7cad70e..b09613e081e6 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -37,6 +37,8 @@ #include #include #include +#include +#include #include #include #include @@ -291,6 +293,28 @@ namespace EndDialog(RET_OK); showDocument("LICENSE"); } + + class SafeModeQueryDialog : public ModalDialog + { + private: + DECL_LINK(RestartHdl, Button*, void); + public: + explicit SafeModeQueryDialog(); + }; + + SafeModeQueryDialog::SafeModeQueryDialog() + : ModalDialog(nullptr, "SafeModeQueryDialog", "sfx/ui/safemodequerydialog.ui") + { + get("restart")->SetClickHdl(LINK(this, SafeModeQueryDialog, RestartHdl)); + } + + IMPL_LINK_NOARG(SafeModeQueryDialog, RestartHdl, Button*, void) + { + EndDialog(RET_OK); + uno::Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext(); + css::task::OfficeRestartManager::get(xContext)->requestRestart( + css::uno::Reference< css::task::XInteractionHandler >()); + } } void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) @@ -975,6 +999,12 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) bDone = true; break; } + case SID_SAFE_MODE: + { + ScopedVclPtrInstance< SafeModeQueryDialog > aDialog; + aDialog->Execute(); + break; + } default: break; @@ -1148,6 +1178,10 @@ 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 @@ + + + + + + False + 6 + Enter Safe Mode + False + dialog + + + False + vertical + 12 + + + False + end + + + gtk-cancel + True + True + True + True + True + True + True + + + False + True + 0 + True + + + + + _Restart + True + True + True + True + + + False + True + 1 + + + + + False + True + end + 0 + + + + + True + False + Are you sure you want to restart %PRODUCTNAME and enter the Safe Mode? + True + 80 + 2 + 0 + 0 + + + False + True + 1 + + + + + + cancel + restart + + + diff --git a/starmath/uiconfig/smath/menubar/menubar.xml b/starmath/uiconfig/smath/menubar/menubar.xml index b7fe639dd8c6..9f273f84a76f 100644 --- a/starmath/uiconfig/smath/menubar/menubar.xml +++ b/starmath/uiconfig/smath/menubar/menubar.xml @@ -146,6 +146,8 @@ + + diff --git a/sw/uiconfig/sglobal/menubar/menubar.xml b/sw/uiconfig/sglobal/menubar/menubar.xml index 2287f81f96a0..6d2c0509477c 100644 --- a/sw/uiconfig/sglobal/menubar/menubar.xml +++ b/sw/uiconfig/sglobal/menubar/menubar.xml @@ -489,6 +489,8 @@ + + diff --git a/sw/uiconfig/sweb/menubar/menubar.xml b/sw/uiconfig/sweb/menubar/menubar.xml index e6b5fed4cd24..cd61f44e464c 100644 --- a/sw/uiconfig/sweb/menubar/menubar.xml +++ b/sw/uiconfig/sweb/menubar/menubar.xml @@ -419,6 +419,8 @@ + + diff --git a/sw/uiconfig/swform/menubar/menubar.xml b/sw/uiconfig/swform/menubar/menubar.xml index ae5ac51e8109..ae961e724f38 100644 --- a/sw/uiconfig/swform/menubar/menubar.xml +++ b/sw/uiconfig/swform/menubar/menubar.xml @@ -483,6 +483,8 @@ + + diff --git a/sw/uiconfig/swreport/menubar/menubar.xml b/sw/uiconfig/swreport/menubar/menubar.xml index f63c1de5449b..00506298ac2f 100644 --- a/sw/uiconfig/swreport/menubar/menubar.xml +++ b/sw/uiconfig/swreport/menubar/menubar.xml @@ -485,6 +485,8 @@ + + diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml index 1a758e396f6f..fefaf80383a2 100644 --- a/sw/uiconfig/swriter/menubar/menubar.xml +++ b/sw/uiconfig/swriter/menubar/menubar.xml @@ -746,6 +746,10 @@ + + + + diff --git a/sw/uiconfig/swxform/menubar/menubar.xml b/sw/uiconfig/swxform/menubar/menubar.xml index 1b7a155c195f..c2eb910cb2f0 100644 --- a/sw/uiconfig/swxform/menubar/menubar.xml +++ b/sw/uiconfig/swxform/menubar/menubar.xml @@ -485,6 +485,8 @@ + +