summaryrefslogtreecommitdiff
path: root/src/plugins/mercurial/mercurialsettings.cpp
diff options
context:
space:
mode:
authorcerf <delorme.hugues@gmail.com>2011-09-14 09:13:44 +0000
committerTobias Hunger <tobias.hunger@nokia.com>2011-09-14 13:22:30 +0200
commit10b667ad588ddb85c858fe30e042e75bbea040a9 (patch)
tree04f580a851a5e8dc8051f2b65fcb620fbe65a057 /src/plugins/mercurial/mercurialsettings.cpp
parenta67d8205b19784b1b8237b7d4ecd1c13ca09c547 (diff)
downloadqt-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.cpp51
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