diff options
author | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-04-10 13:30:59 +0200 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2024-04-12 00:54:03 +0200 |
commit | 93afc6258d67366d56bbd2f3358658ef390d6bfb (patch) | |
tree | 11930ad05dd3420c75c7436eb8fcd85cc970f991 | |
parent | f27b696f46e59c8168bea6c23c6bbb87e8ae64fb (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.cxx | 17 | ||||
-rw-r--r-- | framework/source/uielement/menubarmanager.cxx | 6 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Common.xcs | 6 | ||||
-rw-r--r-- | svx/source/dialog/crashreportdlg.cxx | 9 |
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); |