diff options
author | cerf <delorme.hugues@gmail.com> | 2011-09-14 09:13:44 +0000 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2011-09-14 13:22:30 +0200 |
commit | 10b667ad588ddb85c858fe30e042e75bbea040a9 (patch) | |
tree | 04f580a851a5e8dc8051f2b65fcb620fbe65a057 /src/plugins/mercurial/mercurialsettings.cpp | |
parent | a67d8205b19784b1b8237b7d4ecd1c13ca09c547 (diff) | |
download | qt-creator-10b667ad588ddb85c858fe30e042e75bbea040a9.tar.gz |
vcsbase: add mechanism to ease management of VCS settings
Management of VCS settings was rather laborious (see BazaarSettings,
GitSettings, ...).
To overcome this, the base class VCSBaseClientSettings is now
equipped with a mechanism factorizing redundant code for VCS settings,
like operator=(), operator==(), writeSettings(), ...
Heir classes of VCSBaseClientSettings only need to declare the
settings (key + default value).
Bazaar and Mercurial plugins are impacted.
Change-Id: I7e4093a6d9476f3c8954f4d104f1b26ac185beb9
Merge-request: 2204
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-on: http://codereview.qt-project.org/4889
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Diffstat (limited to 'src/plugins/mercurial/mercurialsettings.cpp')
-rw-r--r-- | src/plugins/mercurial/mercurialsettings.cpp | 51 |
1 files changed, 7 insertions, 44 deletions
diff --git a/src/plugins/mercurial/mercurialsettings.cpp b/src/plugins/mercurial/mercurialsettings.cpp index a0643394c3..8db5f6f6ea 100644 --- a/src/plugins/mercurial/mercurialsettings.cpp +++ b/src/plugins/mercurial/mercurialsettings.cpp @@ -38,53 +38,16 @@ namespace Mercurial { namespace Internal { - const QLatin1String diffIgnoreWhiteSpaceKey("diffIgnoreWhiteSpace"); - const QLatin1String diffIgnoreBlankLinesKey("diffIgnoreBlankLines"); + const QLatin1String MercurialSettings::diffIgnoreWhiteSpaceKey("diffIgnoreWhiteSpace"); + const QLatin1String MercurialSettings::diffIgnoreBlankLinesKey("diffIgnoreBlankLines"); - MercurialSettings::MercurialSettings() : - diffIgnoreWhiteSpace(false), - diffIgnoreBlankLines(false) + MercurialSettings::MercurialSettings() { setSettingsGroup(QLatin1String("Mercurial")); - setDefaultBinary(QLatin1String(Constants::MERCURIALDEFAULT)); + // Override default binary path + declareKey(binaryPathKey, QLatin1String(Constants::MERCURIALDEFAULT)); + declareKey(diffIgnoreWhiteSpaceKey, false); + declareKey(diffIgnoreBlankLinesKey, false); } - - MercurialSettings& MercurialSettings::operator=(const MercurialSettings& other) - { - VCSBase::VCSBaseClientSettings::operator=(other); - if (this != &other) { - diffIgnoreWhiteSpace = other.diffIgnoreWhiteSpace; - diffIgnoreBlankLines = other.diffIgnoreBlankLines; - } - return *this; - } - - void MercurialSettings::writeSettings(QSettings *settings) const - { - VCSBaseClientSettings::writeSettings(settings); - settings->beginGroup(this->settingsGroup()); - settings->setValue(diffIgnoreWhiteSpaceKey, diffIgnoreWhiteSpace); - settings->setValue(diffIgnoreBlankLinesKey, diffIgnoreBlankLines); - settings->endGroup(); - } - - void MercurialSettings::readSettings(const QSettings *settings) - { - VCSBaseClientSettings::readSettings(settings); - const QString keyRoot = this->settingsGroup() + QLatin1Char('/'); - diffIgnoreWhiteSpace = settings->value(keyRoot + diffIgnoreWhiteSpaceKey, false).toBool(); - diffIgnoreBlankLines = settings->value(keyRoot + diffIgnoreBlankLinesKey, false).toBool(); - } - - bool MercurialSettings::equals(const VCSBaseClientSettings &rhs) const - { - const MercurialSettings *hgRhs = dynamic_cast<const MercurialSettings *>(&rhs); - if (hgRhs == 0) - return false; - return VCSBaseClientSettings::equals(rhs) - && diffIgnoreWhiteSpace == hgRhs->diffIgnoreWhiteSpace - && diffIgnoreBlankLines == hgRhs->diffIgnoreBlankLines; - } - } // namespace Internal } // namespace Mercurial |