aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-02-04 08:11:50 +0100
committerhjk <hjk@qt.io>2020-02-06 07:03:14 +0000
commitc17767c78ebc6b3d3b66e4d78d46b0eef4ac003f (patch)
treee883ff52fca3055b65fe8598d46562541b8b702e /src/plugins/vcsbase
parent8f88b89d81d355229acf183300ab5a959f01772e (diff)
Vcs: Use setters to set up DiffController parameters
Plan is to avoid client use down there, so extract the actually used data first and pass it down. Change-Id: I088fc9cc3086e8f6e1e0c3c9d3a35445f752e6f0 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/vcsbase')
-rw-r--r--src/plugins/vcsbase/vcsbasediffeditorcontroller.cpp61
-rw-r--r--src/plugins/vcsbase/vcsbasediffeditorcontroller.h16
2 files changed, 41 insertions, 36 deletions
diff --git a/src/plugins/vcsbase/vcsbasediffeditorcontroller.cpp b/src/plugins/vcsbase/vcsbasediffeditorcontroller.cpp
index 56ed66132c..93e75a6dd9 100644
--- a/src/plugins/vcsbase/vcsbasediffeditorcontroller.cpp
+++ b/src/plugins/vcsbase/vcsbasediffeditorcontroller.cpp
@@ -24,7 +24,6 @@
****************************************************************************/
#include "vcsbasediffeditorcontroller.h"
-#include "vcsbaseclient.h"
#include "vcscommand.h"
#include "vcsbaseclientsettings.h"
@@ -83,9 +82,7 @@ private:
class VcsBaseDiffEditorControllerPrivate
{
public:
- VcsBaseDiffEditorControllerPrivate(VcsBaseDiffEditorController *controller,
- VcsBaseClientImpl *client,
- const QString &workingDirectory);
+ VcsBaseDiffEditorControllerPrivate(VcsBaseDiffEditorController *q) : q(q) {}
~VcsBaseDiffEditorControllerPrivate();
void processingFinished();
@@ -95,8 +92,10 @@ public:
void commandFinished(bool success);
VcsBaseDiffEditorController *q;
- VcsBaseClientImpl *m_client;
- const QString m_directory;
+ QString m_directory;
+ QProcessEnvironment m_processEnvironment;
+ Utils::FilePath m_vcsBinary;
+ int m_vscTimeoutS;
QString m_startupFile;
QString m_output;
QString m_displayName;
@@ -130,16 +129,6 @@ void VcsCommandResultProxy::commandFinished(bool success)
m_target->commandFinished(success);
}
-VcsBaseDiffEditorControllerPrivate::VcsBaseDiffEditorControllerPrivate(
- VcsBaseDiffEditorController *controller,
- VcsBaseClientImpl *client,
- const QString &workingDirectory)
- : q(controller)
- , m_client(client)
- , m_directory(workingDirectory)
-{
-}
-
VcsBaseDiffEditorControllerPrivate::~VcsBaseDiffEditorControllerPrivate()
{
cancelReload();
@@ -231,14 +220,10 @@ void VcsBaseDiffEditorControllerPrivate::commandFinished(bool success)
/////////////////////
-VcsBaseDiffEditorController::VcsBaseDiffEditorController(IDocument *document,
- VcsBaseClientImpl *client,
- const QString &workingDirectory)
+VcsBaseDiffEditorController::VcsBaseDiffEditorController(Core::IDocument *document)
: DiffEditorController(document)
- , d(new VcsBaseDiffEditorControllerPrivate(this, client, workingDirectory))
-{
- setBaseDirectory(workingDirectory);
-}
+ , d(new VcsBaseDiffEditorControllerPrivate(this))
+{}
VcsBaseDiffEditorController::~VcsBaseDiffEditorController()
{
@@ -253,7 +238,7 @@ void VcsBaseDiffEditorController::runCommand(const QList<QStringList> &args, uns
// and "Waiting for data..." will be shown.
d->cancelReload();
- d->m_command = new VcsCommand(workingDirectory(), d->m_client->processEnvironment());
+ d->m_command = new VcsCommand(workingDirectory(), d->m_processEnvironment);
d->m_command->setDisplayName(d->m_displayName);
d->m_command->setCodec(codec ? codec : EditorManager::defaultTextCodec());
d->m_commandResultProxy = new VcsCommandResultProxy(d->m_command.data(), d);
@@ -262,7 +247,7 @@ void VcsBaseDiffEditorController::runCommand(const QList<QStringList> &args, uns
for (const QStringList &arg : args) {
QTC_ASSERT(!arg.isEmpty(), continue);
- d->m_command->addJob({d->m_client->vcsBinary(), arg}, d->m_client->vcsTimeoutS());
+ d->m_command->addJob({d->m_vcsBinary, arg}, d->m_vscTimeoutS);
}
d->m_command->execute();
@@ -273,11 +258,6 @@ void VcsBaseDiffEditorController::processCommandOutput(const QString &output)
d->processDiff(output);
}
-const VcsBaseClientSettings &VcsBaseDiffEditorController::settings() const
-{
- return d->m_client->settings();
-}
-
QString VcsBaseDiffEditorController::workingDirectory() const
{
return d->m_directory;
@@ -298,6 +278,27 @@ void VcsBaseDiffEditorController::setDisplayName(const QString &displayName)
d->m_displayName = displayName;
}
+void VcsBase::VcsBaseDiffEditorController::setWorkingDirectory(const QString &workingDir)
+{
+ d->m_directory = workingDir;
+ setBaseDirectory(workingDir);
+}
+
+void VcsBaseDiffEditorController::setVcsTimeoutS(int value)
+{
+ d->m_vscTimeoutS = value;
+}
+
+void VcsBaseDiffEditorController::setVcsBinary(const Utils::FilePath &path)
+{
+ d->m_vcsBinary = path;
+}
+
+void VcsBaseDiffEditorController::setProcessEnvironment(const QProcessEnvironment &value)
+{
+ d->m_processEnvironment = value;
+}
+
} // namespace VcsBase
#include "vcsbasediffeditorcontroller.moc"
diff --git a/src/plugins/vcsbase/vcsbasediffeditorcontroller.h b/src/plugins/vcsbase/vcsbasediffeditorcontroller.h
index c0bd12173e..d5f3def651 100644
--- a/src/plugins/vcsbase/vcsbasediffeditorcontroller.h
+++ b/src/plugins/vcsbase/vcsbasediffeditorcontroller.h
@@ -26,14 +26,16 @@
#pragma once
#include "vcsbase_global.h"
+
#include <diffeditor/diffeditorcontroller.h>
+#include <QProcessEnvironment>
+
namespace Core { class IDocument; }
+namespace Utils { class FilePath; }
namespace VcsBase {
-class VcsBaseClientImpl;
-class VcsBaseClientSettings;
class VcsBaseDiffEditorControllerPrivate;
class VCSBASE_EXPORT VcsBaseDiffEditorController : public DiffEditor::DiffEditorController
@@ -41,16 +43,18 @@ class VCSBASE_EXPORT VcsBaseDiffEditorController : public DiffEditor::DiffEditor
Q_OBJECT
public:
- VcsBaseDiffEditorController(Core::IDocument *document,
- VcsBaseClientImpl *client,
- const QString &workingDirectory);
+ explicit VcsBaseDiffEditorController(Core::IDocument *document);
~VcsBaseDiffEditorController() override;
+ void setProcessEnvironment(const QProcessEnvironment &value);
+ void setVcsBinary(const Utils::FilePath &path);
+ void setVcsTimeoutS(int value);
+ void setWorkingDirectory(const QString &workingDir);
+
protected:
void runCommand(const QList<QStringList> &args, unsigned flags, QTextCodec *codec = nullptr);
virtual void processCommandOutput(const QString &output);
- const VcsBaseClientSettings &settings() const;
QString workingDirectory() const;
void setStartupFile(const QString &startupFile);
QString startupFile() const;