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
|
void CommonVcsSettings::toSettings(Utils::QtcSettings *s) const
|
||||||
{
|
{
|
||||||
s->beginGroup(QLatin1String(settingsGroupC));
|
s->beginGroup(settingsGroupC);
|
||||||
s->setValue(QLatin1String(nickNameMailMapKeyC), nickNameMailMap);
|
s->setValueWithDefault(nickNameMailMapKeyC, nickNameMailMap);
|
||||||
s->setValue(QLatin1String(nickNameFieldListFileKeyC), nickNameFieldListFile);
|
s->setValueWithDefault(nickNameFieldListFileKeyC, nickNameFieldListFile);
|
||||||
s->setValue(QLatin1String(submitMessageCheckScriptKeyC), submitMessageCheckScript);
|
s->setValueWithDefault(submitMessageCheckScriptKeyC, submitMessageCheckScript);
|
||||||
s->setValue(QLatin1String(lineWrapKeyC), lineWrap);
|
s->setValueWithDefault(lineWrapKeyC, lineWrap, lineWrapDefault);
|
||||||
s->setValue(QLatin1String(lineWrapWidthKeyC), lineWrapWidth);
|
s->setValueWithDefault(lineWrapWidthKeyC, lineWrapWidth, lineWrapWidthDefault);
|
||||||
s->setValueWithDefault(QLatin1String(sshPasswordPromptKeyC),
|
s->setValueWithDefault(sshPasswordPromptKeyC, sshPasswordPrompt, sshPasswordPromptDefault());
|
||||||
sshPasswordPrompt,
|
|
||||||
sshPasswordPromptDefault());
|
|
||||||
s->endGroup();
|
s->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -76,6 +76,7 @@ namespace VcsBase {
|
|||||||
VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientSettings *settings) :
|
VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientSettings *settings) :
|
||||||
m_clientSettings(settings)
|
m_clientSettings(settings)
|
||||||
{
|
{
|
||||||
|
m_defaultSettings = *m_clientSettings;
|
||||||
m_clientSettings->readSettings(Core::ICore::settings());
|
m_clientSettings->readSettings(Core::ICore::settings());
|
||||||
connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
|
connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
|
||||||
this, &VcsBaseClientImpl::saveSettings);
|
this, &VcsBaseClientImpl::saveSettings);
|
||||||
@@ -249,7 +250,7 @@ VcsBaseEditorWidget *VcsBaseClientImpl::createVcsEditor(Utils::Id kind, QString
|
|||||||
|
|
||||||
void VcsBaseClientImpl::saveSettings()
|
void VcsBaseClientImpl::saveSettings()
|
||||||
{
|
{
|
||||||
settings().writeSettings(Core::ICore::settings());
|
settings().writeSettings(Core::ICore::settings(), m_defaultSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
||||||
|
@@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include "vcsbase_global.h"
|
#include "vcsbase_global.h"
|
||||||
|
|
||||||
|
#include "vcsbaseclientsettings.h"
|
||||||
|
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
#include <utils/id.h>
|
#include <utils/id.h>
|
||||||
#include <utils/synchronousprocess.h>
|
#include <utils/synchronousprocess.h>
|
||||||
@@ -47,7 +49,6 @@ namespace VcsBase {
|
|||||||
|
|
||||||
class VcsCommand;
|
class VcsCommand;
|
||||||
class VcsBaseEditorWidget;
|
class VcsBaseEditorWidget;
|
||||||
class VcsBaseClientSettings;
|
|
||||||
class VcsJob;
|
class VcsJob;
|
||||||
class VcsBaseClientImplPrivate;
|
class VcsBaseClientImplPrivate;
|
||||||
class VcsBaseEditorConfig;
|
class VcsBaseEditorConfig;
|
||||||
@@ -128,6 +129,7 @@ private:
|
|||||||
void saveSettings();
|
void saveSettings();
|
||||||
|
|
||||||
VcsBaseClientSettings *m_clientSettings;
|
VcsBaseClientSettings *m_clientSettings;
|
||||||
|
VcsBaseClientSettings m_defaultSettings;
|
||||||
};
|
};
|
||||||
|
|
||||||
class VCSBASE_EXPORT VcsBaseClient : public VcsBaseClientImpl
|
class VCSBASE_EXPORT VcsBaseClient : public VcsBaseClientImpl
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/qtcsettings.h>
|
||||||
#include <utils/stringutils.h>
|
#include <utils/stringutils.h>
|
||||||
|
|
||||||
#include <QSettings>
|
#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);
|
QTC_ASSERT(!settingsGroup().isEmpty(), return);
|
||||||
|
|
||||||
settings->remove(settingsGroup());
|
settings->remove(settingsGroup());
|
||||||
settings->beginGroup(settingsGroup());
|
settings->beginGroup(settingsGroup());
|
||||||
foreach (const QString &key, keys())
|
foreach (const QString &key, keys())
|
||||||
settings->setValue(key, value(key));
|
QtcSettings::setValueWithDefault(settings, key, value(key), defaultSettings.value(key));
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,7 +56,7 @@ public:
|
|||||||
VcsBaseClientSettings &operator=(const VcsBaseClientSettings &other);
|
VcsBaseClientSettings &operator=(const VcsBaseClientSettings &other);
|
||||||
virtual ~VcsBaseClientSettings();
|
virtual ~VcsBaseClientSettings();
|
||||||
|
|
||||||
void writeSettings(QSettings *settings) const;
|
void writeSettings(QSettings *settings, const VcsBaseClientSettings &defaultSettings) const;
|
||||||
void readSettings(const QSettings *settings);
|
void readSettings(const QSettings *settings);
|
||||||
|
|
||||||
bool equals(const VcsBaseClientSettings &rhs) const;
|
bool equals(const VcsBaseClientSettings &rhs) const;
|
||||||
|
Reference in New Issue
Block a user