diff --git a/src/libs/utils/qtcsettings.h b/src/libs/utils/qtcsettings.h index fd4841a961b..782d78c1052 100644 --- a/src/libs/utils/qtcsettings.h +++ b/src/libs/utils/qtcsettings.h @@ -38,6 +38,8 @@ public: template void setValueWithDefault(const QString &key, const T &val, const T &defaultValue); + template + void setValueWithDefault(const QString &key, const T &val); }; template @@ -49,4 +51,13 @@ void QtcSettings::setValueWithDefault(const QString &key, const T &val, const T setValue(key, QVariant::fromValue(val)); } +template +void QtcSettings::setValueWithDefault(const QString &key, const T &val) +{ + if (val == T()) + remove(key); + else + setValue(key, QVariant::fromValue(val)); +} + } // namespace Utils diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index 937e18c7649..268b6997966 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -295,7 +295,8 @@ void CorePlugin::setEnvironmentChanges(const EnvironmentItems &changes) Environment systemEnv = m_instance->m_startupSystemEnvironment; systemEnv.modify(changes); Environment::setSystemEnvironment(systemEnv); - ICore::settings()->setValue(kEnvironmentChanges, EnvironmentItem::toStringList(changes)); + ICore::settings()->setValueWithDefault(kEnvironmentChanges, + EnvironmentItem::toStringList(changes)); if (ICore::instance()) emit ICore::instance()->systemEnvironmentChanged(); } diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index c42649c7290..73a4e41ebe0 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -484,9 +484,9 @@ void NewDialog::saveState() const QModelIndex idx = m_filterProxyModel->mapToSource(filterIdx); QStandardItem *currentItem = m_model->itemFromIndex(idx); if (currentItem) - ICore::settings()->setValue(QLatin1String(LAST_CATEGORY_KEY), - currentItem->data(Qt::UserRole)); - ICore::settings()->setValue(QLatin1String(LAST_PLATFORM_KEY), m_ui->comboBox->currentData()); + ICore::settings()->setValue(LAST_CATEGORY_KEY, currentItem->data(Qt::UserRole)); + ICore::settings()->setValueWithDefault(LAST_PLATFORM_KEY, + m_ui->comboBox->currentData().toString()); } static void runWizard(IWizardFactory *wizard, const QString &defaultLocation, Id platform, diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index 24c78b6513e..7efee37f4e3 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -755,7 +755,9 @@ bool SettingsDialog::execDialog() exec(); m_running = false; m_instance = nullptr; - ICore::settings()->setValue(kPreferenceDialogSize, size()); + ICore::settings()->setValueWithDefault(kPreferenceDialogSize, + size(), + QSize(kInitialWidth, kInitialHeight)); // make sure that the current "single" instance is deleted // we can't delete right away, since we still access the m_applied member deleteLater(); diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp index e967e999c7f..a061d09c072 100644 --- a/src/plugins/coreplugin/documentmanager.cpp +++ b/src/plugins/coreplugin/documentmanager.cpp @@ -70,6 +70,7 @@ #include #include +static const bool kUseProjectsDirectoryDefault = true; static Q_LOGGING_CATEGORY(log, "qtc.core.documentmanager", QtWarningMsg) /*! @@ -182,7 +183,7 @@ public: bool m_postponeAutoReload = false; bool m_blockActivated = false; bool m_checkOnFocusChange = false; - bool m_useProjectsDirectory = true; + bool m_useProjectsDirectory = kUseProjectsDirectoryDefault; QFileSystemWatcher *m_fileWatcher = nullptr; // Delayed creation. QFileSystemWatcher *m_linkWatcher = nullptr; // Delayed creation (only UNIX/if a link is seen). @@ -1366,14 +1367,16 @@ void DocumentManager::saveSettings() recentEditorIds.append(file.second.toString()); } - QSettings *s = ICore::settings(); - s->beginGroup(QLatin1String(settingsGroupC)); - s->setValue(QLatin1String(filesKeyC), recentFiles); - s->setValue(QLatin1String(editorsKeyC), recentEditorIds); + QtcSettings *s = ICore::settings(); + s->beginGroup(settingsGroupC); + s->setValueWithDefault(filesKeyC, recentFiles); + s->setValueWithDefault(editorsKeyC, recentEditorIds); s->endGroup(); - s->beginGroup(QLatin1String(directoryGroupC)); - s->setValue(QLatin1String(projectDirectoryKeyC), d->m_projectsDirectory.toString()); - s->setValue(QLatin1String(useProjectDirectoryKeyC), d->m_useProjectsDirectory); + s->beginGroup(directoryGroupC); + s->setValueWithDefault(projectDirectoryKeyC, d->m_projectsDirectory.toString()); + s->setValueWithDefault(useProjectDirectoryKeyC, + d->m_useProjectsDirectory, + kUseProjectsDirectoryDefault); s->endGroup(); } @@ -1403,8 +1406,8 @@ void readSettings() d->m_projectsDirectory = settingsProjectDir; else d->m_projectsDirectory = FilePath::fromString(PathChooser::homePath()); - d->m_useProjectsDirectory = s->value(QLatin1String(useProjectDirectoryKeyC), - d->m_useProjectsDirectory).toBool(); + d->m_useProjectsDirectory + = s->value(QLatin1String(useProjectDirectoryKeyC), kUseProjectsDirectoryDefault).toBool(); s->endGroup(); } diff --git a/src/plugins/coreplugin/find/findplugin.cpp b/src/plugins/coreplugin/find/findplugin.cpp index c87d6c9cfdc..20219c16bef 100644 --- a/src/plugins/coreplugin/find/findplugin.cpp +++ b/src/plugins/coreplugin/find/findplugin.cpp @@ -130,14 +130,18 @@ static inline QString completionSettingsFlagsKey() { return QStringLiteral("Flag void CompletionModel::writeSettings(QSettings *settings) const { - const int size = m_entries.size(); - settings->beginWriteArray(completionSettingsArrayPrefix(), size); - for (int i = 0; i < size; ++i) { - settings->setArrayIndex(i); - settings->setValue(completionSettingsTextKey(), m_entries.at(i).text); - settings->setValue(completionSettingsFlagsKey(), int(m_entries.at(i).findFlags)); + if (m_entries.isEmpty()) { + settings->remove(completionSettingsArrayPrefix()); + } else { + const int size = m_entries.size(); + settings->beginWriteArray(completionSettingsArrayPrefix(), size); + for (int i = 0; i < size; ++i) { + settings->setArrayIndex(i); + settings->setValue(completionSettingsTextKey(), m_entries.at(i).text); + settings->setValue(completionSettingsFlagsKey(), int(m_entries.at(i).findFlags)); + } + settings->endArray(); } - settings->endArray(); } void CompletionModel::readSettings(QSettings *settings) @@ -380,15 +384,17 @@ bool Find::hasFindFlag(FindFlag flag) void FindPrivate::writeSettings() { - QSettings *settings = ICore::settings(); + QtcSettings *settings = ICore::settings(); settings->beginGroup(QLatin1String("Find")); - settings->setValue(QLatin1String("Backward"), bool(m_findFlags & FindBackward)); - settings->setValue(QLatin1String("CaseSensitively"), bool(m_findFlags & FindCaseSensitively)); - settings->setValue(QLatin1String("WholeWords"), bool(m_findFlags & FindWholeWords)); - settings->setValue(QLatin1String("RegularExpression"), bool(m_findFlags & FindRegularExpression)); - settings->setValue(QLatin1String("PreserveCase"), bool(m_findFlags & FindPreserveCase)); + settings->setValueWithDefault("Backward", bool(m_findFlags & FindBackward), false); + settings->setValueWithDefault("CaseSensitively", bool(m_findFlags & FindCaseSensitively), false); + settings->setValueWithDefault("WholeWords", bool(m_findFlags & FindWholeWords), false); + settings->setValueWithDefault("RegularExpression", + bool(m_findFlags & FindRegularExpression), + false); + settings->setValueWithDefault("PreserveCase", bool(m_findFlags & FindPreserveCase), false); m_findCompletionModel.writeSettings(settings); - settings->setValue(QLatin1String("ReplaceStrings"), m_replaceCompletions); + settings->setValueWithDefault("ReplaceStrings", m_replaceCompletions); settings->endGroup(); m_findToolBar->writeSettings(); m_findDialog->writeSettings(); diff --git a/src/plugins/coreplugin/find/findtoolbar.cpp b/src/plugins/coreplugin/find/findtoolbar.cpp index e2fe1038efb..912da4100e2 100644 --- a/src/plugins/coreplugin/find/findtoolbar.cpp +++ b/src/plugins/coreplugin/find/findtoolbar.cpp @@ -894,14 +894,20 @@ void FindToolBar::resizeEvent(QResizeEvent *event) void FindToolBar::writeSettings() { - QSettings *settings = ICore::settings(); - settings->beginGroup(QLatin1String("Find")); - settings->beginGroup(QLatin1String("FindToolBar")); - settings->setValue(QLatin1String("Backward"), QVariant((m_findFlags & FindBackward) != 0)); - settings->setValue(QLatin1String("CaseSensitively"), QVariant((m_findFlags & FindCaseSensitively) != 0)); - settings->setValue(QLatin1String("WholeWords"), QVariant((m_findFlags & FindWholeWords) != 0)); - settings->setValue(QLatin1String("RegularExpression"), QVariant((m_findFlags & FindRegularExpression) != 0)); - settings->setValue(QLatin1String("PreserveCase"), QVariant((m_findFlags & FindPreserveCase) != 0)); + Utils::QtcSettings *settings = ICore::settings(); + settings->beginGroup("Find"); + settings->beginGroup("FindToolBar"); + settings->setValueWithDefault("Backward", bool((m_findFlags & FindBackward) != 0), false); + settings->setValueWithDefault("CaseSensitively", + bool((m_findFlags & FindCaseSensitively) != 0), + false); + settings->setValueWithDefault("WholeWords", bool((m_findFlags & FindWholeWords) != 0), false); + settings->setValueWithDefault("RegularExpression", + bool((m_findFlags & FindRegularExpression) != 0), + false); + settings->setValueWithDefault("PreserveCase", + bool((m_findFlags & FindPreserveCase) != 0), + false); settings->endGroup(); settings->endGroup(); } diff --git a/src/plugins/coreplugin/find/findtoolwindow.cpp b/src/plugins/coreplugin/find/findtoolwindow.cpp index e25a0d33c66..e689242941d 100644 --- a/src/plugins/coreplugin/find/findtoolwindow.cpp +++ b/src/plugins/coreplugin/find/findtoolwindow.cpp @@ -299,9 +299,10 @@ void FindToolWindow::replace() void FindToolWindow::writeSettings() { - QSettings *settings = ICore::settings(); - settings->beginGroup(QLatin1String("Find")); - settings->setValue(QLatin1String("CurrentFilter"), m_currentFilter ? m_currentFilter->id() : QString()); + Utils::QtcSettings *settings = ICore::settings(); + settings->beginGroup("Find"); + settings->setValueWithDefault("CurrentFilter", + m_currentFilter ? m_currentFilter->id() : QString()); foreach (IFindFilter *filter, m_filters) filter->writeSettings(settings); settings->endGroup(); diff --git a/src/plugins/coreplugin/find/searchresultwindow.cpp b/src/plugins/coreplugin/find/searchresultwindow.cpp index 133a5a47ed3..bb61b2dda59 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -116,7 +116,7 @@ namespace Internal { QToolButton *m_expandCollapseButton; QToolButton *m_newSearchButton; QAction *m_expandCollapseAction; - static const bool m_initiallyExpand = false; + static const bool m_initiallyExpand; QWidget *m_spacer; QLabel *m_historyLabel; QWidget *m_spacer2; @@ -130,6 +130,8 @@ namespace Internal { }; + const bool SearchResultWindowPrivate::m_initiallyExpand = false; + SearchResultWindowPrivate::SearchResultWindowPrivate(SearchResultWindow *window, QWidget *nsp) : q(window), m_expandCollapseButton(nullptr), @@ -630,9 +632,11 @@ void SearchResultWindow::readSettings() */ void SearchResultWindow::writeSettings() { - QSettings *s = ICore::settings(); - s->beginGroup(QLatin1String(SETTINGSKEYSECTIONNAME)); - s->setValue(QLatin1String(SETTINGSKEYEXPANDRESULTS), d->m_expandCollapseAction->isChecked()); + Utils::QtcSettings *s = ICore::settings(); + s->beginGroup(SETTINGSKEYSECTIONNAME); + s->setValueWithDefault(SETTINGSKEYEXPANDRESULTS, + d->m_expandCollapseAction->isChecked(), + SearchResultWindowPrivate::m_initiallyExpand); s->endGroup(); } diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 9ceb1752dd1..80822675ac1 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -96,8 +96,8 @@ GeneralSettingsWidget::GeneralSettingsWidget(GeneralSettings *q) } else { const bool defaultValue = Utils::HostOsInfo::isWindowsHost(); m_ui.dpiCheckbox->setChecked(ICore::settings()->value(settingsKeyDPI, defaultValue).toBool()); - connect(m_ui.dpiCheckbox, &QCheckBox::toggled, this, [](bool checked) { - ICore::settings()->setValue(settingsKeyDPI, checked); + connect(m_ui.dpiCheckbox, &QCheckBox::toggled, this, [defaultValue](bool checked) { + ICore::settings()->setValueWithDefault(settingsKeyDPI, checked, defaultValue); QMessageBox::information(ICore::dialogParent(), tr("Restart Required"), tr("The high DPI settings will take effect after restart.")); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 5d7d9f12bee..6ec5f7eaa14 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -1027,6 +1027,8 @@ static const char windowGeometryKey[] = "WindowGeometry"; static const char windowStateKey[] = "WindowState"; static const char modeSelectorLayoutKey[] = "ModeSelectorLayout"; +static const bool askBeforeExitDefault = false; + void MainWindow::readSettings() { QSettings *settings = PluginManager::settings(); @@ -1041,7 +1043,7 @@ void MainWindow::readSettings() QColor(StyleHelper::DEFAULT_BASE_COLOR)).value()); } - m_askConfirmationBeforeExit = settings->value(askBeforeExitKey, false).toBool(); + m_askConfirmationBeforeExit = settings->value(askBeforeExitKey, askBeforeExitDefault).toBool(); { ModeManager::Style modeStyle = @@ -1068,13 +1070,17 @@ void MainWindow::readSettings() void MainWindow::saveSettings() { - QSettings *settings = PluginManager::settings(); + QtcSettings *settings = PluginManager::settings(); settings->beginGroup(QLatin1String(settingsGroup)); if (!(m_overrideColor.isValid() && StyleHelper::baseColor() == m_overrideColor)) - settings->setValue(QLatin1String(colorKey), StyleHelper::requestedBaseColor()); + settings->setValueWithDefault(colorKey, + StyleHelper::requestedBaseColor(), + QColor(StyleHelper::DEFAULT_BASE_COLOR)); - settings->setValue(askBeforeExitKey, m_askConfirmationBeforeExit); + settings->setValueWithDefault(askBeforeExitKey, + m_askConfirmationBeforeExit, + askBeforeExitDefault); settings->endGroup(); diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index 4986a6a90ae..05bce9431dc 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -401,15 +401,25 @@ void NavigationWidget::closeSubWidget() } } -void NavigationWidget::saveSettings(QSettings *settings) +static QString defaultFirstView(Side side) +{ + return side == Side::Left ? QString("Projects") : QString("Outline"); +} + +static bool defaultVisible(Side side) +{ + return side == Side::Left; +} + +void NavigationWidget::saveSettings(QtcSettings *settings) { QStringList viewIds; for (int i=0; im_subWidgets.count(); ++i) { d->m_subWidgets.at(i)->saveSettings(); viewIds.append(d->m_subWidgets.at(i)->factory()->id().toString()); } - settings->setValue(settingsKey("Views"), viewIds); - settings->setValue(settingsKey("Visible"), isShown()); + settings->setValueWithDefault(settingsKey("Views"), viewIds, {defaultFirstView(d->m_side)}); + settings->setValueWithDefault(settingsKey("Visible"), isShown(), defaultVisible(d->m_side)); settings->setValue(settingsKey("VerticalPosition"), saveState()); settings->setValue(settingsKey("Width"), d->m_width); @@ -431,8 +441,9 @@ void NavigationWidget::restoreSettings(QSettings *settings) } const bool isLeftSide = d->m_side == Side::Left; - QLatin1String defaultFirstView = isLeftSide ? QLatin1String("Projects") : QLatin1String("Outline"); - QStringList viewIds = settings->value(settingsKey("Views"), QStringList(defaultFirstView)).toStringList(); + QStringList viewIds = settings + ->value(settingsKey("Views"), QStringList(defaultFirstView(d->m_side))) + .toStringList(); bool restoreSplitterState = true; int version = settings->value(settingsKey("Version"), 1).toInt(); @@ -459,9 +470,9 @@ void NavigationWidget::restoreSettings(QSettings *settings) if (d->m_subWidgets.isEmpty()) // Make sure we have at least the projects widget or outline widget - insertSubItem(0, qMax(0, factoryIndex(defaultFirstView.data()))); + insertSubItem(0, qMax(0, factoryIndex(Id::fromString(defaultFirstView(d->m_side))))); - setShown(settings->value(settingsKey("Visible"), isLeftSide).toBool()); + setShown(settings->value(settingsKey("Visible"), defaultVisible(d->m_side)).toBool()); if (restoreSplitterState && settings->contains(settingsKey("VerticalPosition"))) { restoreState(settings->value(settingsKey("VerticalPosition")).toByteArray()); diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h index e1a2efed19f..7d18acba58b 100644 --- a/src/plugins/coreplugin/navigationwidget.h +++ b/src/plugins/coreplugin/navigationwidget.h @@ -36,6 +36,10 @@ class QSettings; class QAbstractItemModel; QT_END_NAMESPACE +namespace Utils { +class QtcSettings; +} + namespace Core { class INavigationWidgetFactory; class Command; @@ -87,7 +91,7 @@ public: void setFactories(const QList &factories); QString settingsGroup() const; - void saveSettings(QSettings *settings); + void saveSettings(Utils::QtcSettings *settings); void restoreSettings(QSettings *settings); QWidget *activateSubWidget(Utils::Id factoryId, int preferredPosition); diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index ae0cb36c003..e41989143ae 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -145,7 +145,7 @@ OutputWindow::OutputWindow(Context context, const QString &settingsKey, QWidget connect(this, &QPlainTextEdit::copyAvailable, copyAction, &QAction::setEnabled); connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested, this, [this] { if (!d->settingsKey.isEmpty()) - Core::ICore::settings()->setValue(d->settingsKey, fontZoom()); + Core::ICore::settings()->setValueWithDefault(d->settingsKey, fontZoom(), 0.f); }); connect(outputFormatter(), &OutputFormatter::openInEditorRequested, this, diff --git a/src/plugins/coreplugin/patchtool.cpp b/src/plugins/coreplugin/patchtool.cpp index be530e6a0af..1fdb9a34baa 100644 --- a/src/plugins/coreplugin/patchtool.cpp +++ b/src/plugins/coreplugin/patchtool.cpp @@ -53,9 +53,9 @@ QString PatchTool::patchCommand() void PatchTool::setPatchCommand(const QString &newCommand) { - QSettings *s = ICore::settings(); + Utils::QtcSettings *s = ICore::settings(); s->beginGroup(QLatin1String(settingsGroupC)); - s->setValue(QLatin1String(patchCommandKeyC), newCommand); + s->setValueWithDefault(QLatin1String(patchCommandKeyC), newCommand, QString(patchCommandKeyC)); s->endGroup(); } diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index 39e78468e59..8840a85112a 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -56,6 +56,7 @@ static const char kSettingsGroup[] = "Progress"; static const char kDetailsPinned[] = "DetailsPinned"; +static const bool kDetailsPinnedDefault = true; static const int TimerInterval = 100; // 100 ms using namespace Core; @@ -250,8 +251,8 @@ ProgressManagerPrivate::~ProgressManagerPrivate() void ProgressManagerPrivate::readSettings() { QSettings *settings = ICore::settings(); - settings->beginGroup(QLatin1String(kSettingsGroup)); - m_progressViewPinned = settings->value(QLatin1String(kDetailsPinned), true).toBool(); + settings->beginGroup(kSettingsGroup); + m_progressViewPinned = settings->value(kDetailsPinned, kDetailsPinnedDefault).toBool(); settings->endGroup(); } @@ -661,9 +662,9 @@ void ProgressManagerPrivate::progressDetailsToggled(bool checked) m_progressViewPinned = checked; updateVisibility(); - QSettings *settings = ICore::settings(); - settings->beginGroup(QLatin1String(kSettingsGroup)); - settings->setValue(QLatin1String(kDetailsPinned), m_progressViewPinned); + QtcSettings *settings = ICore::settings(); + settings->beginGroup(kSettingsGroup); + settings->setValueWithDefault(kDetailsPinned, m_progressViewPinned, kDetailsPinnedDefault); settings->endGroup(); } diff --git a/src/plugins/coreplugin/rightpane.cpp b/src/plugins/coreplugin/rightpane.cpp index 67504b9a4a0..5b46581cf8d 100644 --- a/src/plugins/coreplugin/rightpane.cpp +++ b/src/plugins/coreplugin/rightpane.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include #include @@ -171,26 +171,20 @@ void RightPaneWidget::resizeEvent(QResizeEvent *re) QWidget::resizeEvent(re); } -void RightPaneWidget::saveSettings(QSettings *settings) +static const bool kVisibleDefault = false; +static const int kWidthDefault = 500; + +void RightPaneWidget::saveSettings(Utils::QtcSettings *settings) { - settings->setValue(QLatin1String("RightPane/Visible"), isShown()); - settings->setValue(QLatin1String("RightPane/Width"), m_width); + settings->setValueWithDefault("RightPane/Visible", isShown(), kVisibleDefault); + settings->setValueWithDefault("RightPane/Width", m_width, kWidthDefault); } void RightPaneWidget::readSettings(QSettings *settings) { - if (settings->contains(QLatin1String("RightPane/Visible"))) - setShown(settings->value(QLatin1String("RightPane/Visible")).toBool()); - else - setShown(false); + setShown(settings->value(QLatin1String("RightPane/Visible"), kVisibleDefault).toBool()); + m_width = settings->value("RightPane/Width", kWidthDefault).toInt(); - if (settings->contains(QLatin1String("RightPane/Width"))) { - m_width = settings->value(QLatin1String("RightPane/Width")).toInt(); - if (!m_width) - m_width = 500; - } else { - m_width = 500; //pixel - } // Apply if (RightPanePlaceHolder::m_current) RightPanePlaceHolder::m_current->applyStoredSize(m_width); diff --git a/src/plugins/coreplugin/rightpane.h b/src/plugins/coreplugin/rightpane.h index 030d7a08d2d..a0ea919a04e 100644 --- a/src/plugins/coreplugin/rightpane.h +++ b/src/plugins/coreplugin/rightpane.h @@ -36,6 +36,10 @@ QT_BEGIN_NAMESPACE class QSettings; QT_END_NAMESPACE +namespace Utils { +class QtcSettings; +} + namespace Core { class RightPaneWidget; @@ -65,7 +69,7 @@ public: RightPaneWidget(); ~RightPaneWidget() override; - void saveSettings(QSettings *settings); + void saveSettings(Utils::QtcSettings *settings); void readSettings(QSettings *settings); bool isShown(); diff --git a/src/plugins/coreplugin/themechooser.cpp b/src/plugins/coreplugin/themechooser.cpp index 62db2eb8189..9ef53718443 100644 --- a/src/plugins/coreplugin/themechooser.cpp +++ b/src/plugins/coreplugin/themechooser.cpp @@ -177,11 +177,13 @@ void ThemeChooser::apply() if (index == -1) return; const QString themeId = d->m_themeListModel->themeAt(index).id().toString(); - QSettings *settings = ICore::settings(); + QtcSettings *settings = ICore::settings(); const QString currentThemeId = ThemeEntry::themeSetting().toString(); if (currentThemeId != themeId) { // save filename of selected theme in global config - settings->setValue(QLatin1String(Constants::SETTINGS_THEME), themeId); + settings->setValueWithDefault(Constants::SETTINGS_THEME, + themeId, + QString(Constants::DEFAULT_THEME)); RestartDialog restartDialog(ICore::dialogParent(), tr("The theme change will take effect after restart.")); restartDialog.exec();