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