summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <stephan.bergmann@allotropia.de>2024-04-10 13:30:59 +0200
committerThorsten Behrens <thorsten.behrens@allotropia.de>2024-04-12 00:54:03 +0200
commit93afc6258d67366d56bbd2f3358658ef390d6bfb (patch)
tree11930ad05dd3420c75c7436eb8fcd85cc970f991
parentf27b696f46e59c8168bea6c23c6bbb87e8ae64fb (diff)
New Expert Configuration setting to not offer Safe Mode in the UI
/org.openoffice.Office/Common/Misc/OfferSafeMode (default: true), controlling: * "Help - Restart in Safe Mode..." menu entry * "Restart LibreOffice to enter safe mode" checkbox in the "Crash Report" dialog * "To start temporarily with a fresh user profile,..." tip of the day (It does not control the --safe-mode command line argument, though.) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165926 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit fe66cf8c8048bfd8a4386c0c711bd6912af9ec63) Conflicts: cui/source/dialogs/tipofthedaydlg.cxx framework/source/uielement/menubarmanager.cxx officecfg/registry/schema/org/openoffice/Office/Common.xcs svx/source/dialog/crashreportdlg.cxx Change-Id: I66084448a1ba9427aaafef630187b4bf25219a2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165928 Tested-by: allotropia jenkins <jenkins@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
-rw-r--r--cui/source/dialogs/tipofthedaydlg.cxx17
-rw-r--r--framework/source/uielement/menubarmanager.cxx6
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs6
-rw-r--r--svx/source/dialog/crashreportdlg.cxx9
4 files changed, 35 insertions, 3 deletions
diff --git a/cui/source/dialogs/tipofthedaydlg.cxx b/cui/source/dialogs/tipofthedaydlg.cxx
index 25722420ddfc..e3fc7e31e1a4 100644
--- a/cui/source/dialogs/tipofthedaydlg.cxx
+++ b/cui/source/dialogs/tipofthedaydlg.cxx
@@ -72,8 +72,21 @@ static bool file_exists(const OUString& fileName)
void TipOfTheDayDialog::UpdateTip()
{
- if ((nCurrentTip + 1 > nNumberOfTips) || (nCurrentTip < 0))
- nCurrentTip = 0;
+ for (;;)
+ {
+ if ((nCurrentTip + 1 > nNumberOfTips) || (nCurrentTip < 0))
+ nCurrentTip = 0;
+ if (std::get<1>(TIPOFTHEDAY_STRINGARRAY[nCurrentTip])
+ == "svx/ui/safemodedialog/SafeModeDialog"
+ && !officecfg::Office::Common::Misc::OfferSafeMode::get())
+ {
+ ++nCurrentTip;
+ }
+ else
+ {
+ break;
+ }
+ }
m_xDialog->set_title(CuiResId(STR_TITLE) + ": " + OUString::number(nCurrentTip + 1) + "/"
+ OUString::number(nNumberOfTips));
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index f7a41c75f9e3..68df9ce6586d 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -54,6 +54,7 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/propertyvalue.hxx>
+#include <officecfg/Office/Common.hxx>
#include <svtools/menuoptions.hxx>
#include <svtools/javainteractionhandler.hxx>
#include <uno/current_context.hxx>
@@ -1455,6 +1456,11 @@ void MenuBarManager::FillMenu(
{
continue;
}
+ if (aCommandURL == ".uno:SafeMode"
+ && !officecfg::Office::Common::Misc::OfferSafeMode::get())
+ {
+ continue;
+ }
if ( nType == css::ui::ItemType::DEFAULT )
{
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index b47794f128c4..307caf9f2895 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5813,6 +5813,12 @@
<desc>Number of saved searches in the Find and Replace dialog.</desc>
</info>
</prop>
+ <prop oor:name="OfferSafeMode" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Offer Safe Mode to the user.</desc>
+ </info>
+ <value>true</value>
+ </prop>
</group>
<group oor:name="Forms">
<info>
diff --git a/svx/source/dialog/crashreportdlg.cxx b/svx/source/dialog/crashreportdlg.cxx
index d09fde9b1882..9d3512c56fb7 100644
--- a/svx/source/dialog/crashreportdlg.cxx
+++ b/svx/source/dialog/crashreportdlg.cxx
@@ -16,6 +16,7 @@
#include <desktop/crashreport.hxx>
#include <sfx2/safemode.hxx>
#include <comphelper/processfactory.hxx>
+#include <officecfg/Office/Common.hxx>
#include <osl/file.hxx>
#include <com/sun/star/task/OfficeRestartManager.hpp>
@@ -33,8 +34,14 @@ CrashReportDialog::CrashReportDialog(weld::Window* pParent)
{
maSuccessMsg = mxEditPostUpload->get_text();
+ auto const offerSafeMode = officecfg::Office::Common::Misc::OfferSafeMode::get();
+ mxCBSafeMode->set_visible(offerSafeMode);
+
auto nWidth = mxEditPreUpload->get_preferred_size().Width();
- nWidth = std::max(nWidth, mxCBSafeMode->get_size_request().Width());
+ if (offerSafeMode)
+ {
+ nWidth = std::max(nWidth, mxCBSafeMode->get_size_request().Width());
+ }
mxEditPreUpload->set_size_request(nWidth, -1);
mxCBSafeMode->set_size_request(nWidth, -1);