forked from qt-creator/qt-creator
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:
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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) :
|
||||
|
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user