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 <coreplugin/icore.h>
#include <utils/qtcsettings.h>
#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 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 {
CodeGenSettings::CodeGenSettings() :
embedding(PointerAggregatedUiClass),
retranslationSupport(retranslationSupportDefault),
includeQtModule(false),
addQtVersionCheck(false)
CodeGenSettings::CodeGenSettings()
: embedding(embeddingDefault)
, retranslationSupport(retranslationSupportDefault)
, includeQtModule(includeQtModuleDefault)
, addQtVersionCheck(addQtVersionCheckDefault)
{
}
@@ -58,21 +65,32 @@ bool CodeGenSettings::equals(const CodeGenSettings &rhs) const
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();
embedding = static_cast<UiClassEmbedding>(settings->value(group + QLatin1String(EMBEDDING_KEY), int(PointerAggregatedUiClass)).toInt());
includeQtModule = settings->value(group + QLatin1String(INCLUDE_QT_MODULE_KEY), false).toBool();
addQtVersionCheck = settings->value(group + QLatin1String(ADD_QT_VERSION_CHECK_KEY), false).toBool();
retranslationSupport = settings->value(group + TRANSLATION_KEY, retranslationSupportDefault)
.toBool();
embedding = static_cast<UiClassEmbedding>(
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
{
settings->beginGroup(QLatin1String(CODE_GEN_GROUP));
settings->setValue(QLatin1String(TRANSLATION_KEY), retranslationSupport);
settings->setValue(QLatin1String(EMBEDDING_KEY), embedding);
settings->setValue(QLatin1String(INCLUDE_QT_MODULE_KEY), includeQtModule);
settings->setValue(QLatin1String(ADD_QT_VERSION_CHECK_KEY), addQtVersionCheck);
settings->beginGroup(CODE_GEN_GROUP);
QtcSettings::setValueWithDefault(settings,
TRANSLATION_KEY,
retranslationSupport,
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();
}

View File

@@ -108,9 +108,9 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI
txt->setBuddy(chooser);
chooser->setExpectedKind(PathChooser::ExistingDirectory);
chooser->setHistoryCompleter(QLatin1String("Qt.WritableExamplesDir.History"));
QSettings *settings = ICore::settings();
chooser->setPath(settings->value(QString::fromLatin1(C_FALLBACK_ROOT),
DocumentManager::projectsDirectory().toString()).toString());
const QString defaultRootDirectory = DocumentManager::projectsDirectory().toString();
QtcSettings *settings = ICore::settings();
chooser->setPath(settings->value(C_FALLBACK_ROOT, defaultRootDirectory).toString());
lay->addWidget(txt, 1, 0);
lay->addWidget(chooser, 1, 1);
enum { Copy = QDialog::Accepted + 1, Keep = QDialog::Accepted + 2 };
@@ -126,7 +126,7 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI
if (code == Copy) {
QString exampleDirName = proFileInfo.dir().dirName();
QString destBaseDir = chooser->filePath().toString();
settings->setValue(QString::fromLatin1(C_FALLBACK_ROOT), destBaseDir);
settings->setValueWithDefault(C_FALLBACK_ROOT, destBaseDir, defaultRootDirectory);
QDir toDirWithExamplesDir(destBaseDir);
if (toDirWithExamplesDir.cd(exampleDirName)) {
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())
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
// by claiming that all are removed and re-added
const QList<BaseQtVersion *> vs = versions();