BazaarPlugin::~BazaarPlugin()
{
- m_bazaarSettings.writeSettings(m_core->settings(), Constants::BAZAAR);
if (m_client) {
delete m_client;
m_client = 0;
m_optionsPage = new OptionsPage();
addAutoReleasedObject(m_optionsPage);
- m_bazaarSettings.readSettings(m_core->settings(), Constants::BAZAAR);
+ m_bazaarSettings.readSettings(m_core->settings());
connect(m_optionsPage, SIGNAL(settingsChanged()), m_client, SLOT(settingsChanged()));
connect(m_client, SIGNAL(changed(QVariant)), versionControl(), SLOT(changed(QVariant)));
diffIgnoreWhiteSpace(false),
diffIgnoreBlankLines(false)
{
+ setSettingsGroup(QLatin1String(Constants::BAZAAR));
setBinary(QLatin1String(Constants::BAZAARDEFAULT));
}
return userName() == other.userName() && email() == other.email();
}
-void BazaarSettings::writeSettings(QSettings *settings, const QString &group) const
+void BazaarSettings::writeSettings(QSettings *settings) const
{
- VCSBaseClientSettings::writeSettings(settings, group);
- settings->beginGroup(group);
+ VCSBaseClientSettings::writeSettings(settings);
+ settings->beginGroup(settingsGroup());
settings->setValue(diffIgnoreWhiteSpaceKey, diffIgnoreWhiteSpace);
settings->setValue(diffIgnoreBlankLinesKey, diffIgnoreBlankLines);
settings->endGroup();
}
-void BazaarSettings::readSettings(const QSettings *settings, const QString &group)
+void BazaarSettings::readSettings(const QSettings *settings)
{
- VCSBaseClientSettings::readSettings(settings, group);
- const QString keyRoot = group + QLatin1Char('/');
+ VCSBaseClientSettings::readSettings(settings);
+ const QString keyRoot = settingsGroup() + QLatin1Char('/');
diffIgnoreWhiteSpace = settings->value(keyRoot + diffIgnoreWhiteSpaceKey, false).toBool();
diffIgnoreBlankLines = settings->value(keyRoot + diffIgnoreBlankLinesKey, false).toBool();
}
BazaarSettings& operator=(const BazaarSettings& other);
bool sameUserId(const BazaarSettings& other) const;
- virtual void writeSettings(QSettings *settings, const QString &group) const;
- virtual void readSettings(const QSettings *settings, const QString &group);
+ virtual void writeSettings(QSettings *settings) const;
+ virtual void readSettings(const QSettings *settings);
virtual bool equals(const VCSBaseClientSettings &rhs) const;
bool diffIgnoreWhiteSpace;
if (newSettings != plugin->settings()) {
//assume success and emit signal that settings are changed;
plugin->setSettings(newSettings);
- newSettings.writeSettings(Core::ICore::instance()->settings(),
- Constants::BAZAAR);
+ newSettings.writeSettings(Core::ICore::instance()->settings());
emit settingsChanged();
}
}
optionsPage = new OptionsPage();
addAutoReleasedObject(optionsPage);
- mercurialSettings.readSettings(core->settings(), QLatin1String("Mercurial"));
+ mercurialSettings.readSettings(core->settings());
connect(optionsPage, SIGNAL(settingsChanged()), m_client, SLOT(settingsChanged()));
diffIgnoreWhiteSpace(false),
diffIgnoreBlankLines(false)
{
+ setSettingsGroup(QLatin1String("Mercurial"));
setBinary(QLatin1String(Constants::MERCURIALDEFAULT));
}
return *this;
}
- void MercurialSettings::writeSettings(QSettings *settings, const QString &group) const
+ void MercurialSettings::writeSettings(QSettings *settings) const
{
- VCSBaseClientSettings::writeSettings(settings, group);
- settings->beginGroup(group);
+ VCSBaseClientSettings::writeSettings(settings);
+ settings->beginGroup(this->settingsGroup());
settings->setValue(diffIgnoreWhiteSpaceKey, diffIgnoreWhiteSpace);
settings->setValue(diffIgnoreBlankLinesKey, diffIgnoreBlankLines);
settings->endGroup();
}
- void MercurialSettings::readSettings(const QSettings *settings, const QString &group)
+ void MercurialSettings::readSettings(const QSettings *settings)
{
- VCSBaseClientSettings::readSettings(settings, group);
- const QString keyRoot = group + QLatin1Char('/');
+ VCSBaseClientSettings::readSettings(settings);
+ const QString keyRoot = this->settingsGroup() + QLatin1Char('/');
diffIgnoreWhiteSpace = settings->value(keyRoot + diffIgnoreWhiteSpaceKey, false).toBool();
diffIgnoreBlankLines = settings->value(keyRoot + diffIgnoreBlankLinesKey, false).toBool();
}
MercurialSettings();
MercurialSettings& operator=(const MercurialSettings& other);
- virtual void writeSettings(QSettings *settings, const QString &group) const;
- virtual void readSettings(const QSettings *settings, const QString &group);
+ virtual void writeSettings(QSettings *settings) const;
+ virtual void readSettings(const QSettings *settings);
virtual bool equals(const VCSBaseClientSettings &rhs) const;
bool diffIgnoreWhiteSpace;
if (newSettings != plugin->settings()) {
//assume success and emit signal that settings are changed;
plugin->setSettings(newSettings);
- newSettings.writeSettings(Core::ICore::instance()->settings(),
- QLatin1String("Mercurial"));
+ newSettings.writeSettings(Core::ICore::instance()->settings());
emit settingsChanged();
}
}
d(new VCSBaseClientPrivate(settings))
{
qRegisterMetaType<QVariant>();
+ connect(d->m_core, SIGNAL(saveSettingsRequested()), this, SLOT(saveSettings()));
}
VCSBaseClient::~VCSBaseClient()
annotate(fi.absolutePath(), fi.fileName(), change, lineNumber);
}
+void VCSBaseClient::saveSettings()
+{
+ d->m_clientSettings->writeSettings(d->m_core->settings());
+}
+
void VCSBaseClient::annotate(const QString &workingDir, const QString &file,
const QString revision /* = QString() */,
int lineNumber /* = -1 */)
private slots:
void statusParser(const QByteArray &data);
void slotAnnotateRevisionRequested(const QString &source, QString change, int lineNumber);
+ void saveSettings();
private:
QScopedPointer<VCSBaseClientPrivate> d;
m_timeoutSeconds = s;
}
-void VCSBaseClientSettings::writeSettings(QSettings *settings, const QString &group) const
+QString VCSBaseClientSettings::settingsGroup() const
{
- settings->beginGroup(group);
+ return m_settingsGroup;
+}
+
+void VCSBaseClientSettings::setSettingsGroup(const QString &group)
+{
+ m_settingsGroup = group;
+}
+
+void VCSBaseClientSettings::writeSettings(QSettings *settings) const
+{
+ settings->beginGroup(settingsGroup());
settings->setValue(QLatin1String("VCS_Path"), m_binary);
settings->setValue(QLatin1String("VCS_Username"), m_user);
settings->setValue(QLatin1String("VCS_Email"), m_mail);
settings->endGroup();
}
-void VCSBaseClientSettings::readSettings(const QSettings *settings, const QString &group)
+void VCSBaseClientSettings::readSettings(const QSettings *settings)
{
- const QString keyRoot = group + QLatin1Char('/');
+ const QString keyRoot = settingsGroup() + QLatin1Char('/');
m_binary = settings->value(keyRoot + QLatin1String("VCS_Path"), QString()).toString();
m_user = settings->value(keyRoot + QLatin1String("VCS_Username"), QString()).toString();
m_mail = settings->value(keyRoot + QLatin1String("VCS_Email"), QString()).toString();
int timeoutSeconds() const;
void setTimeoutSeconds(int s);
- virtual void writeSettings(QSettings *settings, const QString &group) const;
- virtual void readSettings(const QSettings *settings, const QString &group);
+ QString settingsGroup() const;
+ void setSettingsGroup(const QString &group);
+
+ virtual void writeSettings(QSettings *settings) const;
+ virtual void readSettings(const QSettings *settings);
virtual bool equals(const VCSBaseClientSettings &rhs) const;
int m_logCount;
bool m_prompt;
int m_timeoutSeconds;
+ QString m_settingsGroup;
};
inline bool operator==(const VCSBaseClientSettings &s1, const VCSBaseClientSettings &s2)