VCS: Do not write defaults to settings

Saves useless entries in settings file and makes it possible to change
defaults later.

Task-number: QTCREATORBUG-24762
Change-Id: Iee7d39f2bf5d8de6903ca914ea533a678fad62f8
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Eike Ziller
2021-02-16 14:51:16 +01:00
parent d2f7bea0b6
commit c87284356c
5 changed files with 17 additions and 14 deletions

View File

@@ -64,15 +64,13 @@ CommonVcsSettings::CommonVcsSettings() :
void CommonVcsSettings::toSettings(Utils::QtcSettings *s) const
{
s->beginGroup(QLatin1String(settingsGroupC));
s->setValue(QLatin1String(nickNameMailMapKeyC), nickNameMailMap);
s->setValue(QLatin1String(nickNameFieldListFileKeyC), nickNameFieldListFile);
s->setValue(QLatin1String(submitMessageCheckScriptKeyC), submitMessageCheckScript);
s->setValue(QLatin1String(lineWrapKeyC), lineWrap);
s->setValue(QLatin1String(lineWrapWidthKeyC), lineWrapWidth);
s->setValueWithDefault(QLatin1String(sshPasswordPromptKeyC),
sshPasswordPrompt,
sshPasswordPromptDefault());
s->beginGroup(settingsGroupC);
s->setValueWithDefault(nickNameMailMapKeyC, nickNameMailMap);
s->setValueWithDefault(nickNameFieldListFileKeyC, nickNameFieldListFile);
s->setValueWithDefault(submitMessageCheckScriptKeyC, submitMessageCheckScript);
s->setValueWithDefault(lineWrapKeyC, lineWrap, lineWrapDefault);
s->setValueWithDefault(lineWrapWidthKeyC, lineWrapWidth, lineWrapWidthDefault);
s->setValueWithDefault(sshPasswordPromptKeyC, sshPasswordPrompt, sshPasswordPromptDefault());
s->endGroup();
}

View File

@@ -76,6 +76,7 @@ namespace VcsBase {
VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientSettings *settings) :
m_clientSettings(settings)
{
m_defaultSettings = *m_clientSettings;
m_clientSettings->readSettings(Core::ICore::settings());
connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
this, &VcsBaseClientImpl::saveSettings);
@@ -249,7 +250,7 @@ VcsBaseEditorWidget *VcsBaseClientImpl::createVcsEditor(Utils::Id kind, QString
void VcsBaseClientImpl::saveSettings()
{
settings().writeSettings(Core::ICore::settings());
settings().writeSettings(Core::ICore::settings(), m_defaultSettings);
}
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :

View File

@@ -27,6 +27,8 @@
#include "vcsbase_global.h"
#include "vcsbaseclientsettings.h"
#include <utils/fileutils.h>
#include <utils/id.h>
#include <utils/synchronousprocess.h>
@@ -47,7 +49,6 @@ namespace VcsBase {
class VcsCommand;
class VcsBaseEditorWidget;
class VcsBaseClientSettings;
class VcsJob;
class VcsBaseClientImplPrivate;
class VcsBaseEditorConfig;
@@ -128,6 +129,7 @@ private:
void saveSettings();
VcsBaseClientSettings *m_clientSettings;
VcsBaseClientSettings m_defaultSettings;
};
class VCSBASE_EXPORT VcsBaseClient : public VcsBaseClientImpl

View File

@@ -30,6 +30,7 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
#include <utils/qtcsettings.h>
#include <utils/stringutils.h>
#include <QSettings>
@@ -226,14 +227,15 @@ VcsBaseClientSettings::~VcsBaseClientSettings()
{
}
void VcsBaseClientSettings::writeSettings(QSettings *settings) const
void VcsBaseClientSettings::writeSettings(QSettings *settings,
const VcsBaseClientSettings &defaultSettings) const
{
QTC_ASSERT(!settingsGroup().isEmpty(), return);
settings->remove(settingsGroup());
settings->beginGroup(settingsGroup());
foreach (const QString &key, keys())
settings->setValue(key, value(key));
QtcSettings::setValueWithDefault(settings, key, value(key), defaultSettings.value(key));
settings->endGroup();
}

View File

@@ -56,7 +56,7 @@ public:
VcsBaseClientSettings &operator=(const VcsBaseClientSettings &other);
virtual ~VcsBaseClientSettings();
void writeSettings(QSettings *settings) const;
void writeSettings(QSettings *settings, const VcsBaseClientSettings &defaultSettings) const;
void readSettings(const QSettings *settings);
bool equals(const VcsBaseClientSettings &rhs) const;