aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorcerf <[email protected]>2011-06-10 15:27:57 +0000
committerTobias Hunger <[email protected]>2011-06-10 17:47:20 +0200
commit83566c3c3af2adfab23561983306a239f32c1e00 (patch)
tree48e6339f3217fcb792fc56d0a463f636c8413332 /src
parent21c048363edb76d0b1f5a6057ff0c3228dbdf478 (diff)
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 <[email protected]> Reviewed-on: http://codereview.qt.nokia.com/463 Reviewed-by: Qt Sanity Bot <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/bazaar/bazaarclient.cpp92
-rw-r--r--src/plugins/bazaar/bazaarclient.h10
-rw-r--r--src/plugins/bazaar/bazaarsettings.cpp40
-rw-r--r--src/plugins/bazaar/bazaarsettings.h7
-rw-r--r--src/plugins/mercurial/mercurialclient.cpp64
-rw-r--r--src/plugins/mercurial/mercurialclient.h15
-rw-r--r--src/plugins/mercurial/mercurialsettings.cpp66
-rw-r--r--src/plugins/mercurial/mercurialsettings.h7
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.cpp26
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.h6
10 files changed, 207 insertions, 126 deletions
diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp
index d613c536737..34ef1339a6b 100644
--- a/src/plugins/bazaar/bazaarclient.cpp
+++ b/src/plugins/bazaar/bazaarclient.cpp
@@ -278,10 +278,17 @@ QPair<QString, QString> BazaarClient::parseStatusLine(const QString &line) const
return status;
}
-// Collect all parameters required for a diff to be able to associate them
-// with a diff editor and re-run the diff with parameters.
-struct BazaarDiffParameters
+// Collect all parameters required for a diff or log to be able to associate
+// them with an editor and re-run the command with parameters.
+struct BazaarCommandParameters
{
+ BazaarCommandParameters(const QString &workDir,
+ const QStringList &inFiles,
+ const QStringList &options) :
+ workingDir(workDir), files(inFiles), extraOptions(options)
+ {
+ }
+
QString workingDir;
QStringList files;
QStringList extraOptions;
@@ -292,61 +299,44 @@ class BazaarDiffParameterWidget : public VCSBase::VCSBaseEditorParameterWidget
{
Q_OBJECT
public:
- explicit BazaarDiffParameterWidget(const BazaarDiffParameters &p, QWidget *parent = 0);
+ BazaarDiffParameterWidget(BazaarClient *client,
+ const BazaarCommandParameters &p, QWidget *parent = 0) :
+ VCSBase::VCSBaseEditorParameterWidget(parent), m_client(client), m_params(p)
+ {
+ mapSetting(addToggleButton(QLatin1String("-w"), tr("Ignore whitespace")),
+ &client->settings()->diffIgnoreWhiteSpace);
+ mapSetting(addToggleButton(QLatin1String("-B"), tr("Ignore blank lines")),
+ &client->settings()->diffIgnoreBlankLines);
+ }
-signals:
- void reRunDiff(const Bazaar::Internal::BazaarDiffParameters &);
+ QStringList arguments() const
+ {
+ QStringList args;
+ // Bazaar wants "--diff-options=-w -B.."
+ const QStringList formatArguments = VCSBaseEditorParameterWidget::arguments();
+ if (!formatArguments.isEmpty()) {
+ const QString a = QLatin1String("--diff-options=")
+ + formatArguments.join(QString(QLatin1Char(' ')));
+ args.append(a);
+ }
+ return args;
+ }
-private slots:
- void triggerReRun();
+ void executeCommand()
+ {
+ m_client->diff(m_params.workingDir, m_params.files, m_params.extraOptions);
+ }
private:
- const BazaarDiffParameters m_parameters;
+ BazaarClient *m_client;
+ const BazaarCommandParameters m_params;
};
-BazaarDiffParameterWidget::BazaarDiffParameterWidget(const BazaarDiffParameters &p, QWidget *parent) :
- VCSBase::VCSBaseEditorParameterWidget(parent), m_parameters(p)
-{
- addToggleButton(QLatin1String("-w"), tr("Ignore whitespace"));
- addToggleButton(QLatin1String("-B"), tr("Ignore blank lines"));
- connect(this, SIGNAL(argumentsChanged()), this, SLOT(triggerReRun()));
-}
-
-void BazaarDiffParameterWidget::triggerReRun()
-{
- BazaarDiffParameters effectiveParameters = m_parameters;
- // Bazaar wants "--diff-options=-w -B.."
- const QStringList formatArguments = arguments();
- if (!formatArguments.isEmpty()) {
- const QString a = QLatin1String("--diff-options=")
- + formatArguments.join(QString(QLatin1Char(' ')));
- effectiveParameters.extraOptions.append(a);
- }
- emit reRunDiff(effectiveParameters);
-}
-
-void BazaarClient::bazaarDiff(const Bazaar::Internal::BazaarDiffParameters &p)
-{
- diff(p.workingDir, p.files, p.extraOptions);
-}
-
-void BazaarClient::initializeDiffEditor(const QString &workingDir, const QStringList &files,
- const QStringList &extraOptions,
- VCSBase::VCSBaseEditorWidget *diffEditorWidget)
+VCSBase::VCSBaseEditorParameterWidget *BazaarClient::createDiffEditor(
+ const QString &workingDir, const QStringList &files, const QStringList &extraOptions)
{
- // Wire up the parameter widget to trigger a re-run on
- // parameter change and 'revert' from inside the diff editor.
- BazaarDiffParameters parameters;
- parameters.workingDir = workingDir;
- parameters.files = files;
- parameters.extraOptions = extraOptions;
- diffEditorWidget->setRevertDiffChunkEnabled(true);
- BazaarDiffParameterWidget *pw = new BazaarDiffParameterWidget(parameters);
- connect(pw, SIGNAL(reRunDiff(Bazaar::Internal::BazaarDiffParameters)),
- this, SLOT(bazaarDiff(Bazaar::Internal::BazaarDiffParameters)));
- connect(diffEditorWidget, SIGNAL(diffChunkReverted(VCSBase::DiffChunk)),
- pw, SLOT(triggerReRun()));
- diffEditorWidget->setConfigurationWidget(pw);
+ const BazaarCommandParameters parameters(workingDir, files, extraOptions);
+ return new BazaarDiffParameterWidget(this, parameters);
}
} //namespace Internal
diff --git a/src/plugins/bazaar/bazaarclient.h b/src/plugins/bazaar/bazaarclient.h
index bd5ddf36c52..3ea6320294f 100644
--- a/src/plugins/bazaar/bazaarclient.h
+++ b/src/plugins/bazaar/bazaarclient.h
@@ -39,7 +39,6 @@
namespace Bazaar {
namespace Internal {
-struct BazaarDiffParameters;
class BazaarSettings;
@@ -55,9 +54,6 @@ public:
BranchInfo synchronousBranchQuery(const QString &repositoryRoot) const;
QString findTopLevelForFile(const QFileInfo &file) const;
-private slots:
- void bazaarDiff(const Bazaar::Internal::BazaarDiffParameters &p);
-
protected:
QString vcsEditorKind(VCSCommand cmd) const;
@@ -79,9 +75,9 @@ protected:
const QString &revision, int lineNumber) const;
QStringList diffArguments(const QStringList &files,
const QStringList &extraOptions) const;
- void initializeDiffEditor(const QString &workingDir, const QStringList &files,
- const QStringList &extraOptions,
- VCSBase::VCSBaseEditorWidget *diffEditorWidget);
+ VCSBase::VCSBaseEditorParameterWidget *createDiffEditor(const QString &workingDir,
+ const QStringList &files,
+ const QStringList &extraOptions);
QStringList logArguments(const QStringList &files,
const QStringList &extraOptions) const;
QStringList statusArguments(const QString &file) const;
diff --git a/src/plugins/bazaar/bazaarsettings.cpp b/src/plugins/bazaar/bazaarsettings.cpp
index 6566eabfb51..ab99ccdcd99 100644
--- a/src/plugins/bazaar/bazaarsettings.cpp
+++ b/src/plugins/bazaar/bazaarsettings.cpp
@@ -33,10 +33,17 @@
#include "bazaarsettings.h"
#include "constants.h"
+#include <QtCore/QSettings>
+
namespace Bazaar {
namespace Internal {
-BazaarSettings::BazaarSettings()
+const QLatin1String diffIgnoreWhiteSpaceKey("diffIgnoreWhiteSpace");
+const QLatin1String diffIgnoreBlankLinesKey("diffIgnoreBlankLines");
+
+BazaarSettings::BazaarSettings() :
+ diffIgnoreWhiteSpace(false),
+ diffIgnoreBlankLines(false)
{
setBinary(QLatin1String(Constants::BAZAARDEFAULT));
}
@@ -44,6 +51,10 @@ BazaarSettings::BazaarSettings()
BazaarSettings& BazaarSettings::operator=(const BazaarSettings& other)
{
VCSBase::VCSBaseClientSettings::operator=(other);
+ if (this != &other) {
+ diffIgnoreWhiteSpace = other.diffIgnoreWhiteSpace;
+ diffIgnoreBlankLines = other.diffIgnoreBlankLines;
+ }
return *this;
}
@@ -52,5 +63,32 @@ bool BazaarSettings::sameUserId(const BazaarSettings& other) const
return userName() == other.userName() && email() == other.email();
}
+void BazaarSettings::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 BazaarSettings::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 BazaarSettings::equals(const VCSBaseClientSettings &rhs) const
+{
+ const BazaarSettings *bzrRhs = dynamic_cast<const BazaarSettings *>(&rhs);
+ if (bzrRhs == 0)
+ return false;
+ return VCSBaseClientSettings::equals(rhs)
+ && diffIgnoreWhiteSpace == bzrRhs->diffIgnoreWhiteSpace
+ && diffIgnoreBlankLines == bzrRhs->diffIgnoreBlankLines;
+}
+
} // namespace Internal
} // namespace Bazaar
diff --git a/src/plugins/bazaar/bazaarsettings.h b/src/plugins/bazaar/bazaarsettings.h
index c875c94fde6..65f8d22eda1 100644
--- a/src/plugins/bazaar/bazaarsettings.h
+++ b/src/plugins/bazaar/bazaarsettings.h
@@ -44,6 +44,13 @@ public:
BazaarSettings();
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 bool equals(const VCSBaseClientSettings &rhs) const;
+
+ bool diffIgnoreWhiteSpace;
+ bool diffIgnoreBlankLines;
};
} // namespace Internal
diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp
index 9df63b6132b..bf59444932d 100644
--- a/src/plugins/mercurial/mercurialclient.cpp
+++ b/src/plugins/mercurial/mercurialclient.cpp
@@ -51,11 +51,16 @@
namespace Mercurial {
namespace Internal {
-MercurialClient::MercurialClient(VCSBase::VCSBaseClientSettings *settings) :
+MercurialClient::MercurialClient(MercurialSettings *settings) :
VCSBase::VCSBaseClient(settings)
{
}
+MercurialSettings *MercurialClient::settings() const
+{
+ return dynamic_cast<MercurialSettings *>(VCSBase::VCSBaseClient::settings());
+}
+
bool MercurialClient::manifestSync(const QString &repository, const QString &relativeFilename)
{
// This only works when called from the repo and outputs paths relative to it.
@@ -486,55 +491,34 @@ class MercurialDiffParameterWidget : public VCSBase::VCSBaseEditorParameterWidge
{
Q_OBJECT
public:
- explicit MercurialDiffParameterWidget(const MercurialDiffParameters &p, QWidget *parent = 0);
-
-signals:
- void reRunDiff(const Mercurial::Internal::MercurialDiffParameters &);
+ MercurialDiffParameterWidget(MercurialClient *client,
+ const MercurialDiffParameters &p, QWidget *parent = 0) :
+ VCSBase::VCSBaseEditorParameterWidget(parent), m_client(client), m_params(p)
+ {
+ mapSetting(addToggleButton(QLatin1String("-w"), tr("Ignore whitespace")),
+ &client->settings()->diffIgnoreWhiteSpace);
+ mapSetting(addToggleButton(QLatin1String("-B"), tr("Ignore blank lines")),
+ &client->settings()->diffIgnoreBlankLines);
+ }
-private slots:
- void triggerReRun();
+ void executeCommand()
+ {
+ m_client->diff(m_params.workingDir, m_params.files, m_params.extraOptions);
+ }
private:
- const MercurialDiffParameters m_parameters;
+ MercurialClient *m_client;
+ const MercurialDiffParameters m_params;
};
-MercurialDiffParameterWidget::MercurialDiffParameterWidget(const MercurialDiffParameters &p, QWidget *parent) :
- VCSBase::VCSBaseEditorParameterWidget(parent), m_parameters(p)
-{
- addToggleButton(QLatin1String("-w"), tr("Ignore whitespace"));
- addToggleButton(QLatin1String("-B"), tr("Ignore blank lines"));
- connect(this, SIGNAL(argumentsChanged()), this, SLOT(triggerReRun()));
-}
-
-void MercurialDiffParameterWidget::triggerReRun()
-{
- MercurialDiffParameters effectiveParameters = m_parameters;
- effectiveParameters.extraOptions += arguments();
- emit reRunDiff(effectiveParameters);
-}
-
-void MercurialClient::mercurialDiff(const Mercurial::Internal::MercurialDiffParameters &p)
-{
- diff(p.workingDir, p.files, p.extraOptions);
-}
-
-void MercurialClient::initializeDiffEditor(const QString &workingDir, const QStringList &files,
- const QStringList &extraOptions,
- VCSBase::VCSBaseEditorWidget *diffEditorWidget)
+VCSBase::VCSBaseEditorParameterWidget *MercurialClient::createDiffEditor(
+ const QString &workingDir, const QStringList &files, const QStringList &extraOptions)
{
- // Wire up the parameter widget to trigger a re-run on
- // parameter change and 'revert' from inside the diff editor.
MercurialDiffParameters parameters;
parameters.workingDir = workingDir;
parameters.files = files;
parameters.extraOptions = extraOptions;
- diffEditorWidget->setRevertDiffChunkEnabled(true);
- MercurialDiffParameterWidget *pw = new MercurialDiffParameterWidget(parameters);
- connect(pw, SIGNAL(reRunDiff(Mercurial::Internal::MercurialDiffParameters)),
- this, SLOT(mercurialDiff(Mercurial::Internal::MercurialDiffParameters)));
- connect(diffEditorWidget, SIGNAL(diffChunkReverted(VCSBase::DiffChunk)),
- pw, SLOT(triggerReRun()));
- diffEditorWidget->setConfigurationWidget(pw);
+ return new MercurialDiffParameterWidget(this, parameters);
}
} // namespace Internal
diff --git a/src/plugins/mercurial/mercurialclient.h b/src/plugins/mercurial/mercurialclient.h
index 4d6e7cb4799..7a35e94ed4e 100644
--- a/src/plugins/mercurial/mercurialclient.h
+++ b/src/plugins/mercurial/mercurialclient.h
@@ -33,6 +33,7 @@
#ifndef MERCURIALCLIENT_H
#define MERCURIALCLIENT_H
+#include "mercurialsettings.h"
#include <vcsbase/vcsbaseclient.h>
namespace Mercurial {
@@ -43,7 +44,10 @@ class MercurialClient : public VCSBase::VCSBaseClient
{
Q_OBJECT
public:
- MercurialClient(VCSBase::VCSBaseClientSettings *settings);
+ MercurialClient(MercurialSettings *settings);
+
+ MercurialSettings *settings() const;
+
virtual bool synchronousClone(const QString &workingDir,
const QString &srcLocation,
const QString &dstLocation,
@@ -64,9 +68,6 @@ public:
void outgoing(const QString &repositoryRoot);
QString vcsGetRepositoryURL(const QString &directory);
-private slots:
- void mercurialDiff(const Mercurial::Internal::MercurialDiffParameters &);
-
public:
QString findTopLevelForFile(const QFileInfo &file) const;
@@ -91,9 +92,9 @@ protected:
const QString &revision, int lineNumber) const;
QStringList diffArguments(const QStringList &files,
const QStringList &extraOptions) const;
- void initializeDiffEditor(const QString &workingDir, const QStringList &files,
- const QStringList &extraOptions,
- VCSBase::VCSBaseEditorWidget *ed);
+ VCSBase::VCSBaseEditorParameterWidget *createDiffEditor(const QString &workingDir,
+ const QStringList &files,
+ const QStringList &extraOptions);
QStringList logArguments(const QStringList &files,
const QStringList &extraOptions) const;
QStringList statusArguments(const QString &file) const;
diff --git a/src/plugins/mercurial/mercurialsettings.cpp b/src/plugins/mercurial/mercurialsettings.cpp
index 856526eb5bc..6b80e221bc9 100644
--- a/src/plugins/mercurial/mercurialsettings.cpp
+++ b/src/plugins/mercurial/mercurialsettings.cpp
@@ -33,15 +33,57 @@
#include "mercurialsettings.h"
#include "constants.h"
-using namespace Mercurial::Internal;
-
-MercurialSettings::MercurialSettings()
-{
- setBinary(QLatin1String(Constants::MERCURIALDEFAULT));
-}
-
-MercurialSettings& MercurialSettings::operator=(const MercurialSettings& other)
-{
- VCSBase::VCSBaseClientSettings::operator=(other);
- return *this;
-}
+#include <QtCore/QSettings>
+
+namespace Mercurial {
+namespace Internal {
+
+ 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
diff --git a/src/plugins/mercurial/mercurialsettings.h b/src/plugins/mercurial/mercurialsettings.h
index 1a4a8dfcbc2..36ef096aa6f 100644
--- a/src/plugins/mercurial/mercurialsettings.h
+++ b/src/plugins/mercurial/mercurialsettings.h
@@ -43,6 +43,13 @@ class MercurialSettings : public VCSBase::VCSBaseClientSettings
public:
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 bool equals(const VCSBaseClientSettings &rhs) const;
+
+ bool diffIgnoreWhiteSpace;
+ bool diffIgnoreBlankLines;
};
} // namespace Internal
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 9e81a6739e7..9c8f02d02a1 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -33,6 +33,7 @@
#include "vcsbaseclient.h"
#include "vcsjobrunner.h"
#include "vcsbaseclientsettings.h"
+#include "vcsbaseeditorparameterwidget.h"
#include <QtDebug>
@@ -275,17 +276,25 @@ void VCSBaseClient::diff(const QString &workingDir, const QStringList &files,
const QStringList &extraOptions)
{
const QString vcsCmdString = vcsCommandString(DiffCommand);
- QStringList args;
- args << vcsCmdString << diffArguments(files, extraOptions);
const QString kind = vcsEditorKind(DiffCommand);
const QString id = VCSBase::VCSBaseEditorWidget::getTitleId(workingDir, files);
const QString title = vcsEditorTitle(vcsCmdString, id);
const QString source = VCSBase::VCSBaseEditorWidget::getSource(workingDir, files);
VCSBase::VCSBaseEditorWidget *editor = createVCSEditor(kind, title, source, true,
vcsCmdString.toLatin1().constData(), id);
+ editor->setRevertDiffChunkEnabled(true);
editor->setDiffBaseDirectory(workingDir);
- initializeDiffEditor(workingDir, files, extraOptions, editor);
+ VCSBaseEditorParameterWidget *paramWidget = createDiffEditor(workingDir, files, extraOptions);
+ if (paramWidget != 0) {
+ connect(editor, SIGNAL(diffChunkReverted(VCSBase::DiffChunk)),
+ paramWidget, SLOT(executeCommand()));
+ editor->setConfigurationWidget(paramWidget);
+ }
+
+ QStringList args;
+ const QStringList paramArgs = paramWidget != 0 ? paramWidget->arguments() : QStringList();
+ args << vcsCmdString << diffArguments(files, extraOptions + paramArgs);
QSharedPointer<VCSJob> job(new VCSJob(workingDir, args, editor));
enqueueJob(job);
}
@@ -456,12 +465,17 @@ void VCSBaseClient::settingsChanged()
}
}
-void VCSBaseClient::initializeDiffEditor(const QString & /* workingDir */, const QStringList & /* files */,
- const QStringList & /* extraOptions */,
- VCSBaseEditorWidget *)
+VCSBaseEditorParameterWidget *VCSBaseClient::createDiffEditor(const QString &workingDir,
+ const QStringList &files,
+ const QStringList &extraOptions)
{
+ Q_UNUSED(workingDir);
+ Q_UNUSED(files);
+ Q_UNUSED(extraOptions);
+ return 0;
}
+
QString VCSBaseClient::vcsEditorTitle(const QString &vcsCmd, const QString &sourceId) const
{
return QFileInfo(settings()->binary()).baseName() +
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index 18bf476fd71..c99529ba5c7 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -61,6 +61,7 @@ class VCSBaseEditorWidget;
class VCSBaseClientSettings;
class VCSJob;
class VCSBaseClientPrivate;
+class VCSBaseEditorParameterWidget;
class VCSBASE_EXPORT VCSBaseClient : public QObject
{
@@ -154,8 +155,9 @@ protected:
const QString &revision, int lineNumber) const = 0;
virtual QStringList diffArguments(const QStringList &files,
const QStringList &extraOptions) const = 0;
- virtual void initializeDiffEditor(const QString &workingDir, const QStringList &files,
- const QStringList &extraOptions, VCSBaseEditorWidget *ed);
+ virtual VCSBaseEditorParameterWidget *createDiffEditor(const QString &workingDir,
+ const QStringList &files,
+ const QStringList &extraOptions);
virtual QStringList logArguments(const QStringList &files,
const QStringList &extraOptions) const = 0;
virtual QStringList statusArguments(const QString &file) const = 0;