diff options
author | hjk <hjk@qt.io> | 2020-02-04 08:11:50 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-02-06 07:03:14 +0000 |
commit | c17767c78ebc6b3d3b66e4d78d46b0eef4ac003f (patch) | |
tree | e883ff52fca3055b65fe8598d46562541b8b702e /src/plugins/vcsbase | |
parent | 8f88b89d81d355229acf183300ab5a959f01772e (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.cpp | 61 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbasediffeditorcontroller.h | 16 |
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; |