From cdef799321448382c1daa9ba78bbeeff4e1c5dd2 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 26 Jan 2024 12:23:01 +0100 Subject: [PATCH] Remove RestartDialog in favor of static function The pattern was always to create the dialog and exec it, which can be done as well with just a function call. Change-Id: I3934cf5d869211713902abd333aa64d87ec59f32 Reviewed-by: hjk --- src/plugins/coreplugin/CMakeLists.txt | 2 -- src/plugins/coreplugin/coreplugin.qbs | 1 - .../coreplugin/dialogs/restartdialog.cpp | 25 ------------------- .../coreplugin/dialogs/restartdialog.h | 19 -------------- src/plugins/coreplugin/generalsettings.cpp | 14 +++-------- src/plugins/coreplugin/icore.cpp | 18 +++++++++++++ src/plugins/coreplugin/icore.h | 2 ++ src/plugins/coreplugin/plugindialog.cpp | 8 ++---- src/plugins/coreplugin/systemsettings.cpp | 5 +--- src/plugins/coreplugin/themechooser.cpp | 5 +--- .../studio/studiosettingspage.cpp | 11 +++----- src/plugins/qtsupport/qtoptionspage.cpp | 7 ++---- .../studiowelcome/studiowelcomeplugin.cpp | 9 ++----- 13 files changed, 35 insertions(+), 91 deletions(-) delete mode 100644 src/plugins/coreplugin/dialogs/restartdialog.cpp delete mode 100644 src/plugins/coreplugin/dialogs/restartdialog.h diff --git a/src/plugins/coreplugin/CMakeLists.txt b/src/plugins/coreplugin/CMakeLists.txt index 22fe02eec74..866b43b9e4e 100644 --- a/src/plugins/coreplugin/CMakeLists.txt +++ b/src/plugins/coreplugin/CMakeLists.txt @@ -53,8 +53,6 @@ add_qtc_plugin(Core dialogs/promptoverwritedialog.h dialogs/readonlyfilesdialog.cpp dialogs/readonlyfilesdialog.h - dialogs/restartdialog.cpp - dialogs/restartdialog.h dialogs/saveitemsdialog.cpp dialogs/saveitemsdialog.h dialogs/settingsdialog.cpp diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index 3c1dd740637..ebfe13d5e88 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -205,7 +205,6 @@ QtcPlugin { "openwithdialog.cpp", "openwithdialog.h", "promptoverwritedialog.cpp", "promptoverwritedialog.h", "readonlyfilesdialog.cpp", "readonlyfilesdialog.h", - "restartdialog.cpp", "restartdialog.h", "saveitemsdialog.cpp", "saveitemsdialog.h", "settingsdialog.cpp", "settingsdialog.h", "shortcutsettings.cpp", "shortcutsettings.h", diff --git a/src/plugins/coreplugin/dialogs/restartdialog.cpp b/src/plugins/coreplugin/dialogs/restartdialog.cpp deleted file mode 100644 index 3513b310b66..00000000000 --- a/src/plugins/coreplugin/dialogs/restartdialog.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "restartdialog.h" - -#include "../coreplugintr.h" -#include "../icore.h" - -#include - -namespace Core { - -RestartDialog::RestartDialog(QWidget *parent, const QString &text) - : QMessageBox(parent) -{ - setWindowTitle(Tr::tr("Restart Required")); - setText(text); - setIcon(QMessageBox::Information); - addButton(Tr::tr("Later"), QMessageBox::NoRole); - addButton(Tr::tr("Restart Now"), QMessageBox::YesRole); - - connect(this, &QDialog::accepted, ICore::instance(), &ICore::restart, Qt::QueuedConnection); -} - -} // namespace Core diff --git a/src/plugins/coreplugin/dialogs/restartdialog.h b/src/plugins/coreplugin/dialogs/restartdialog.h deleted file mode 100644 index c7f8fd43c51..00000000000 --- a/src/plugins/coreplugin/dialogs/restartdialog.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2020 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "../core_global.h" - -#include -#include - -namespace Core { - -class CORE_EXPORT RestartDialog : public QMessageBox -{ -public: - RestartDialog(QWidget *parent, const QString &text); -}; - -} // namespace Core diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 4f9f8b9fb34..aafa1741526 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -1,7 +1,6 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "dialogs/restartdialog.h" #include "dialogs/ioptionspage.h" #include "generalsettings.h" #include "coreconstants.h" @@ -296,11 +295,8 @@ QString GeneralSettingsWidget::language() void GeneralSettingsWidget::setLanguage(const QString &locale) { QtcSettings *settings = ICore::settings(); - if (settings->value("General/OverrideLanguage").toString() != locale) { - RestartDialog dialog(ICore::dialogParent(), - Tr::tr("The language change will take effect after restart.")); - dialog.exec(); - } + if (settings->value("General/OverrideLanguage").toString() != locale) + ICore::askForRestart(Tr::tr("The language change will take effect after restart.")); settings->setValueWithDefault("General/OverrideLanguage", locale, {}); } @@ -359,10 +355,8 @@ void GeneralSettingsWidget::setDpiPolicy(Qt::HighDpiScaleFactorRoundingPolicy po settingsKeyDpiPolicy, int(StyleHelper::defaultHighDpiScaleFactorRoundingPolicy())).value(); if (policy != previousPolicy) { - RestartDialog dialog(ICore::dialogParent(), - Tr::tr("The DPI rounding policy change will take effect after " - "restart.")); - dialog.exec(); + ICore::askForRestart( + Tr::tr("The DPI rounding policy change will take effect after restart.")); } settings->setValueWithDefault(settingsKeyDpiPolicy, int(policy), int(StyleHelper::defaultHighDpiScaleFactorRoundingPolicy())); diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index d4fd0d10094..fe225358f34 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -907,6 +907,24 @@ Utils::InfoBar *ICore::infoBar() return d->m_modeStack->infoBar(); } +/*! + Shows a modal dialog that asks the user if they want to restart \QC. + Uses \a text as the main text in the dialog, and triggers a restart + of \QC if the user chooses that option. +*/ +void ICore::askForRestart(const QString &text) +{ + QMessageBox mb(dialogParent()); + mb.setWindowTitle(Tr::tr("Restart Required")); + mb.setText(text); + mb.setIcon(QMessageBox::Information); + mb.addButton(Tr::tr("Later"), QMessageBox::NoRole); + mb.addButton(Tr::tr("Restart Now"), QMessageBox::YesRole); + + mb.connect(&mb, &QDialog::accepted, ICore::instance(), &ICore::restart, Qt::QueuedConnection); + mb.exec(); +} + /*! Raises and activates the window for \a widget. This contains workarounds for X11. diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index 693262bba73..215cb94ba86 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -82,6 +82,8 @@ public: static QWidget *dialogParent(); static Utils::InfoBar *infoBar(); + static void askForRestart(const QString &text); + static void raiseWindow(QWidget *widget); static void raiseMainWindow(); diff --git a/src/plugins/coreplugin/plugindialog.cpp b/src/plugins/coreplugin/plugindialog.cpp index ef610bd3d36..05d63aedc78 100644 --- a/src/plugins/coreplugin/plugindialog.cpp +++ b/src/plugins/coreplugin/plugindialog.cpp @@ -5,7 +5,6 @@ #include "coreplugin.h" #include "coreplugintr.h" -#include "dialogs/restartdialog.h" #include "icore.h" #include "plugininstallwizard.h" @@ -92,11 +91,8 @@ void PluginDialog::closeDialog() for (PluginSpec *plugin : std::as_const(m_softLoad)) CorePlugin::loadMimeFromPlugin(plugin); - if (m_isRestartRequired) { - RestartDialog restartDialog(ICore::dialogParent(), - Tr::tr("Plugin changes will take effect after restart.")); - restartDialog.exec(); - } + if (m_isRestartRequired) + ICore::askForRestart(Tr::tr("Plugin changes will take effect after restart.")); accept(); } diff --git a/src/plugins/coreplugin/systemsettings.cpp b/src/plugins/coreplugin/systemsettings.cpp index af4aef29113..ccaef59b8b0 100644 --- a/src/plugins/coreplugin/systemsettings.cpp +++ b/src/plugins/coreplugin/systemsettings.cpp @@ -7,7 +7,6 @@ #include "coreplugin.h" #include "coreplugintr.h" #include "editormanager/editormanager_p.h" -#include "dialogs/restartdialog.h" #include "dialogs/ioptionspage.h" #include "fileutils.h" #include "icore.h" @@ -406,10 +405,8 @@ void SystemSettingsWidget::apply() m_fileSystemCaseSensitivityChooser->currentData().toInt()); if (selectedSensitivity != sensitivity) { EditorManagerPrivate::writeFileSystemSensitivity(settings, selectedSensitivity); - RestartDialog dialog( - ICore::dialogParent(), + ICore::askForRestart( Tr::tr("The file system case sensitivity change will take effect after restart.")); - dialog.exec(); } } diff --git a/src/plugins/coreplugin/themechooser.cpp b/src/plugins/coreplugin/themechooser.cpp index fe569c1bc4a..e59c6d83a38 100644 --- a/src/plugins/coreplugin/themechooser.cpp +++ b/src/plugins/coreplugin/themechooser.cpp @@ -5,7 +5,6 @@ #include "coreconstants.h" #include "coreplugintr.h" -#include "dialogs/restartdialog.h" #include "icore.h" #include @@ -164,9 +163,7 @@ void ThemeChooser::apply() if (currentThemeId != themeId) { // save filename of selected theme in global config settings->setValueWithDefault(Constants::SETTINGS_THEME, themeId, defaultThemeId()); - RestartDialog restartDialog(ICore::dialogParent(), - Tr::tr("The theme change will take effect after restart.")); - restartDialog.exec(); + ICore::askForRestart(Tr::tr("The theme change will take effect after restart.")); } } diff --git a/src/plugins/qmldesignerbase/studio/studiosettingspage.cpp b/src/plugins/qmldesignerbase/studio/studiosettingspage.cpp index 5fcd77481cb..2f41a1a5eb0 100644 --- a/src/plugins/qmldesignerbase/studio/studiosettingspage.cpp +++ b/src/plugins/qmldesignerbase/studio/studiosettingspage.cpp @@ -6,7 +6,6 @@ #include "../utils/designerpaths.h" #include -#include #include #include @@ -174,10 +173,8 @@ void StudioSettingsPage::apply() dirty); if (dirty) { - const QString restartText = tr( - "The menu visibility change will take effect after restart."); - Core::RestartDialog restartDialog(Core::ICore::dialogParent(), restartText); - restartDialog.exec(); + Core::ICore::askForRestart( + tr("The menu visibility change will take effect after restart.")); } QtcSettings *s = Core::ICore::settings(); @@ -194,9 +191,7 @@ void StudioSettingsPage::apply() s->setValue(Paths::bundlesDownloadPath, bundlesPath); emit bundlesDownloadPathChanged(bundlesPath); - const QString restartText = tr("Changing bundle path will take effect after restart."); - Core::RestartDialog restartDialog(Core::ICore::dialogParent(), restartText); - restartDialog.exec(); + Core::ICore::askForRestart(tr("Changing bundle path will take effect after restart.")); } } diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index 6b724ccee7d..a33514b836f 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -10,7 +10,6 @@ #include "qtversionfactory.h" #include -#include #include #include @@ -1053,10 +1052,8 @@ void QtSettingsPageWidget::linkWithQt() askForRestart = true; } } - if (askForRestart) { - RestartDialog restartDialog(ICore::dialogParent(), restartText); - restartDialog.exec(); - } + if (askForRestart) + ICore::askForRestart(restartText); } // QtSettingsPage diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index c80b64601b8..f5760b8e6bb 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -7,7 +7,6 @@ #include "qdsnewdialog.h" #include -#include #include #include #include @@ -180,9 +179,7 @@ public: Core::ICore::settings()->setValue(CRASH_REPORTER_SETTING, b); - const QString restartText = tr("The change will take effect after restart."); - Core::RestartDialog restartDialog(Core::ICore::dialogParent(), restartText); - restartDialog.exec(); + Core::ICore::askForRestart(tr("The change will take effect after restart.")); setupModel(); } @@ -196,9 +193,7 @@ public: settings->setValue(STATISTICS_COLLECTION_MODE, b ? DETAILED_USAGE_STATISTICS : NO_TELEMETRY); - const QString restartText = tr("The change will take effect after restart."); - Core::RestartDialog restartDialog(Core::ICore::dialogParent(), restartText); - restartDialog.exec(); + Core::ICore::askForRestart(tr("The change will take effect after restart.")); setupModel(); }