vcsbase: simplify init of the diff editor in VCSBaseClient

Bazaar and Mercurial plugins are impacted, they benefit auto load/save
of the diff settings

Change-Id: I67327b231fd80eeb61bb859879f9eabdc56739e8
Merge-request: 345
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/463
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
This commit is contained in:
cerf
2011-06-10 15:27:57 +00:00
committed by Tobias Hunger
parent 21c048363e
commit 83566c3c3a
10 changed files with 205 additions and 124 deletions

View File

@@ -33,15 +33,57 @@
#include "mercurialsettings.h"
#include "constants.h"
using namespace Mercurial::Internal;
#include <QtCore/QSettings>
MercurialSettings::MercurialSettings()
{
setBinary(QLatin1String(Constants::MERCURIALDEFAULT));
}
namespace Mercurial {
namespace Internal {
MercurialSettings& MercurialSettings::operator=(const MercurialSettings& other)
{
VCSBase::VCSBaseClientSettings::operator=(other);
return *this;
}
const QLatin1String diffIgnoreWhiteSpaceKey("diffIgnoreWhiteSpace");
const QLatin1String diffIgnoreBlankLinesKey("diffIgnoreBlankLines");
MercurialSettings::MercurialSettings() :
diffIgnoreWhiteSpace(false),
diffIgnoreBlankLines(false)
{
setBinary(QLatin1String(Constants::MERCURIALDEFAULT));
}
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 QString &group) const
{
VCSBaseClientSettings::writeSettings(settings, group);
settings->beginGroup(group);
settings->setValue(diffIgnoreWhiteSpaceKey, diffIgnoreWhiteSpace);
settings->setValue(diffIgnoreBlankLinesKey, diffIgnoreBlankLines);
settings->endGroup();
}
void MercurialSettings::readSettings(const QSettings *settings, const QString &group)
{
VCSBaseClientSettings::readSettings(settings, group);
const QString keyRoot = group + 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