QtSupport: Use new settings API

Avoid writing defaults to the settings.

Task-number: QTCREATORBUG-24430
Change-Id: Ic068ade0d34a66e1baf067d90d63e01b0d0e73c0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Eike Ziller
2021-01-20 15:10:46 +01:00
parent 89f2c274c0
commit 02a27a9bb6
3 changed files with 38 additions and 20 deletions

View File

@@ -26,6 +26,7 @@
#include "codegensettings.h" #include "codegensettings.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <utils/qtcsettings.h>
#include <QSettings> #include <QSettings>
@@ -36,14 +37,20 @@ static const char INCLUDE_QT_MODULE_KEY[] = "IncludeQtModule";
static const char ADD_QT_VERSION_CHECK_KEY[] = "AddQtVersionCheck"; static const char ADD_QT_VERSION_CHECK_KEY[] = "AddQtVersionCheck";
static const bool retranslationSupportDefault = false; static const bool retranslationSupportDefault = false;
static const QtSupport::CodeGenSettings::UiClassEmbedding embeddingDefault
= QtSupport::CodeGenSettings::PointerAggregatedUiClass;
static const bool includeQtModuleDefault = false;
static const bool addQtVersionCheckDefault = false;
using namespace Utils;
namespace QtSupport { namespace QtSupport {
CodeGenSettings::CodeGenSettings() : CodeGenSettings::CodeGenSettings()
embedding(PointerAggregatedUiClass), : embedding(embeddingDefault)
retranslationSupport(retranslationSupportDefault), , retranslationSupport(retranslationSupportDefault)
includeQtModule(false), , includeQtModule(includeQtModuleDefault)
addQtVersionCheck(false) , addQtVersionCheck(addQtVersionCheckDefault)
{ {
} }
@@ -58,21 +65,32 @@ bool CodeGenSettings::equals(const CodeGenSettings &rhs) const
void CodeGenSettings::fromSettings(const QSettings *settings) void CodeGenSettings::fromSettings(const QSettings *settings)
{ {
QString group = QLatin1String(CODE_GEN_GROUP) + QLatin1Char('/'); QString group = QLatin1String(CODE_GEN_GROUP) + '/';
retranslationSupport = settings->value(group + QLatin1String(TRANSLATION_KEY), retranslationSupportDefault).toBool(); retranslationSupport = settings->value(group + TRANSLATION_KEY, retranslationSupportDefault)
embedding = static_cast<UiClassEmbedding>(settings->value(group + QLatin1String(EMBEDDING_KEY), int(PointerAggregatedUiClass)).toInt()); .toBool();
includeQtModule = settings->value(group + QLatin1String(INCLUDE_QT_MODULE_KEY), false).toBool(); embedding = static_cast<UiClassEmbedding>(
addQtVersionCheck = settings->value(group + QLatin1String(ADD_QT_VERSION_CHECK_KEY), false).toBool(); settings->value(group + EMBEDDING_KEY, int(embeddingDefault)).toInt());
includeQtModule = settings->value(group + INCLUDE_QT_MODULE_KEY, includeQtModuleDefault).toBool();
addQtVersionCheck = settings->value(group + ADD_QT_VERSION_CHECK_KEY, addQtVersionCheckDefault).toBool();
} }
void CodeGenSettings::toSettings(QSettings *settings) const void CodeGenSettings::toSettings(QSettings *settings) const
{ {
settings->beginGroup(QLatin1String(CODE_GEN_GROUP)); settings->beginGroup(CODE_GEN_GROUP);
settings->setValue(QLatin1String(TRANSLATION_KEY), retranslationSupport); QtcSettings::setValueWithDefault(settings,
settings->setValue(QLatin1String(EMBEDDING_KEY), embedding); TRANSLATION_KEY,
settings->setValue(QLatin1String(INCLUDE_QT_MODULE_KEY), includeQtModule); retranslationSupport,
settings->setValue(QLatin1String(ADD_QT_VERSION_CHECK_KEY), addQtVersionCheck); retranslationSupportDefault);
QtcSettings::setValueWithDefault(settings, EMBEDDING_KEY, int(embedding), int(embeddingDefault));
QtcSettings::setValueWithDefault(settings,
INCLUDE_QT_MODULE_KEY,
includeQtModule,
includeQtModuleDefault);
QtcSettings::setValueWithDefault(settings,
ADD_QT_VERSION_CHECK_KEY,
addQtVersionCheck,
addQtVersionCheckDefault);
settings->endGroup(); settings->endGroup();
} }

View File

@@ -108,9 +108,9 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI
txt->setBuddy(chooser); txt->setBuddy(chooser);
chooser->setExpectedKind(PathChooser::ExistingDirectory); chooser->setExpectedKind(PathChooser::ExistingDirectory);
chooser->setHistoryCompleter(QLatin1String("Qt.WritableExamplesDir.History")); chooser->setHistoryCompleter(QLatin1String("Qt.WritableExamplesDir.History"));
QSettings *settings = ICore::settings(); const QString defaultRootDirectory = DocumentManager::projectsDirectory().toString();
chooser->setPath(settings->value(QString::fromLatin1(C_FALLBACK_ROOT), QtcSettings *settings = ICore::settings();
DocumentManager::projectsDirectory().toString()).toString()); chooser->setPath(settings->value(C_FALLBACK_ROOT, defaultRootDirectory).toString());
lay->addWidget(txt, 1, 0); lay->addWidget(txt, 1, 0);
lay->addWidget(chooser, 1, 1); lay->addWidget(chooser, 1, 1);
enum { Copy = QDialog::Accepted + 1, Keep = QDialog::Accepted + 2 }; enum { Copy = QDialog::Accepted + 1, Keep = QDialog::Accepted + 2 };
@@ -126,7 +126,7 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI
if (code == Copy) { if (code == Copy) {
QString exampleDirName = proFileInfo.dir().dirName(); QString exampleDirName = proFileInfo.dir().dirName();
QString destBaseDir = chooser->filePath().toString(); QString destBaseDir = chooser->filePath().toString();
settings->setValue(QString::fromLatin1(C_FALLBACK_ROOT), destBaseDir); settings->setValueWithDefault(C_FALLBACK_ROOT, destBaseDir, defaultRootDirectory);
QDir toDirWithExamplesDir(destBaseDir); QDir toDirWithExamplesDir(destBaseDir);
if (toDirWithExamplesDir.cd(exampleDirName)) { if (toDirWithExamplesDir.cd(exampleDirName)) {
toDirWithExamplesDir.cdUp(); // step out, just to not be in the way toDirWithExamplesDir.cdUp(); // step out, just to not be in the way

View File

@@ -662,7 +662,7 @@ void QtVersionManager::setDocumentationSetting(const QtVersionManager::Documenta
{ {
if (setting == documentationSetting()) if (setting == documentationSetting())
return; return;
Core::ICore::settings()->setValue(DOCUMENTATION_SETTING_KEY, int(setting)); Core::ICore::settings()->setValueWithDefault(DOCUMENTATION_SETTING_KEY, int(setting), 0);
// force re-evaluating which documentation should be registered // force re-evaluating which documentation should be registered
// by claiming that all are removed and re-added // by claiming that all are removed and re-added
const QList<BaseQtVersion *> vs = versions(); const QList<BaseQtVersion *> vs = versions();