From a8fc5e2134ef4655e9ea5ce884374f68b3213c48 Mon Sep 17 00:00:00 2001
From: cerf <delorme.hugues@gmail.com>
Date: Mon, 22 Aug 2011 15:33:03 +0000
Subject: [PATCH] vcsbase: refactor status output signal in VCSBaseClient

There is now a clear distinction between the basic status command
and the status command used to emit parsed output

Change-Id: Ie398a866ffcd8f4cc33b864ddbe23ce9d2e97437
Merge-request: 358
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/3337
---
 src/plugins/bazaar/bazaarclient.cpp       | 1 -
 src/plugins/bazaar/bazaarplugin.cpp       | 3 ++-
 src/plugins/mercurial/mercurialplugin.cpp | 2 +-
 src/plugins/vcsbase/vcsbaseclient.cpp     | 6 +++---
 src/plugins/vcsbase/vcsbaseclient.h       | 3 ++-
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp
index 50c3a0497a1..7635e7331fb 100644
--- a/src/plugins/bazaar/bazaarclient.cpp
+++ b/src/plugins/bazaar/bazaarclient.cpp
@@ -220,7 +220,6 @@ QStringList BazaarClient::logArguments(const QStringList &files,
 QStringList BazaarClient::statusArguments(const QString &file) const
 {
     QStringList args;
-    args.append(QLatin1String("--short"));
     if (!file.isEmpty())
         args.append(file);
     return args;
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 2b3e6b3b7c9..5c5932ab7bc 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -543,7 +543,8 @@ void BazaarPlugin::commit()
 
     connect(m_client, SIGNAL(parsedStatus(QList<VCSBase::VCSBaseClient::StatusItem>)),
             this, SLOT(showCommitWidget(QList<VCSBase::VCSBaseClient::StatusItem>)));
-    m_client->statusWithSignal(m_submitRepository);
+    // The "--short" option allows to easily parse status output
+    m_client->emitParsedStatus(m_submitRepository, QStringList(QLatin1String("--short")));
 }
 
 void BazaarPlugin::showCommitWidget(const QList<VCSBase::VCSBaseClient::StatusItem> &status)
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index 48c6d1fa39c..dfac2ec4fb1 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -568,7 +568,7 @@ void MercurialPlugin::commit()
 
     connect(m_client, SIGNAL(parsedStatus(QList<VCSBase::VCSBaseClient::StatusItem>)),
             this, SLOT(showCommitWidget(QList<VCSBase::VCSBaseClient::StatusItem>)));
-    m_client->statusWithSignal(m_submitRepository);
+    m_client->emitParsedStatus(m_submitRepository);
 }
 
 void MercurialPlugin::showCommitWidget(const QList<VCSBase::VCSBaseClient::StatusItem> &status)
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 7c4d206dd91..324dca2023a 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -396,11 +396,11 @@ void VCSBaseClient::status(const QString &workingDir, const QString &file)
     enqueueJob(job);
 }
 
-void VCSBaseClient::statusWithSignal(const QString &repositoryRoot)
+void VCSBaseClient::emitParsedStatus(const QString &repository, const QStringList &extraOptions)
 {
     QStringList args(vcsCommandString(StatusCommand));
-    args << statusArguments(QString());
-    QSharedPointer<VCSJob> job(new VCSJob(repositoryRoot, args, VCSJob::RawDataEmitMode));
+    args << extraOptions;
+    QSharedPointer<VCSJob> job(new VCSJob(repository, args, VCSJob::RawDataEmitMode));
     connect(job.data(), SIGNAL(rawData(QByteArray)), this, SLOT(statusParser(QByteArray)));
     enqueueJob(job);
 }
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index 599d73223ab..29579a7aaf5 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -100,7 +100,8 @@ public:
              const QStringList &extraOptions = QStringList(),
              bool enableAnnotationContextMenu = false);
     void status(const QString &workingDir, const QString &file = QString());
-    void statusWithSignal(const QString &repository);
+    virtual void emitParsedStatus(const QString &repository,
+                                  const QStringList &extraOptions = QStringList());
     void revertFile(const QString &workingDir, const QString &file, const QString &revision = QString());
     void revertAll(const QString &workingDir, const QString &revision = QString());
     void import(const QString &repositoryRoot, const QStringList &files);
-- 
GitLab