safemode: Add uno command and menu entry

Change-Id: I1843767160b79041c42e506eff0cf39399c74f26
Reviewed-on: https://gerrit.libreoffice.org/29668
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
This commit is contained in:
Samuel Mehrbrodt
2016-10-10 15:04:53 +02:00
parent 7433ba52d3
commit ae94c223e2
28 changed files with 191 additions and 1 deletions

View File

@@ -100,6 +100,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -171,6 +171,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -156,6 +156,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -97,6 +97,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -80,6 +80,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -81,6 +81,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -89,6 +89,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -82,6 +82,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -52,6 +52,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -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)

View File

@@ -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:

View File

@@ -6388,6 +6388,11 @@
<value xml:lang="en-US">Description...</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>

View File

@@ -286,6 +286,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -709,6 +709,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -373,6 +373,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -611,6 +611,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -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 \

View File

@@ -225,6 +225,11 @@ interface Application
ExecMethod = MiscExec_Impl ;
StateMethod = MiscState_Impl ;
]
SID_SAFE_MODE
[
ExecMethod = MiscExec_Impl ;
StateMethod = MiscState_Impl ;
]
}

View File

@@ -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;
]

View File

@@ -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/ui/UIElementType.hpp>
#include <com/sun/star/ui/XUIElement.hpp>
@@ -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<PushButton>("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;

View File

@@ -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>

View File

@@ -146,6 +146,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -489,6 +489,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -419,6 +419,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -483,6 +483,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -485,6 +485,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -746,6 +746,10 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>

View File

@@ -485,6 +485,8 @@
<menu:menuitem menu:id=".uno:QuestionAnswers"/>
<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>