VcsBase: Hide VcsCommand class

Make it an implementation detail.
Introduce VcsBaseClient::createVcsCommand() method instead
for instantiating VcsCommands.

Replace all occuriences of VcsBase::VcsCommand in public API
with Utils::ShellCommand.

Change-Id: Ie438cc3a5e867b3ee8f9e935b56b2f16ea453f8a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-07-12 15:40:47 +02:00
parent ec48545628
commit 89e7201048
24 changed files with 168 additions and 162 deletions

View File

@@ -25,8 +25,6 @@
#pragma once
#include "vcsbase_global.h"
#include <coreplugin/progressmanager/futureprogress.h>
#include <utils/shellcommand.h>
@@ -34,24 +32,24 @@
namespace VcsBase {
class VcsOutputWindow;
class VCSBASE_EXPORT VcsCommand : public Utils::ShellCommand
class VcsCommand : public Utils::ShellCommand
{
Q_OBJECT
public:
VcsCommand(const Utils::FilePath &defaultWorkingDirectory, const Utils::Environment &environment);
protected:
Utils::Environment environment() const override;
private:
VcsCommand(const Utils::FilePath &defaultWorkingDirectory,
const Utils::Environment &environment);
void addTask(QFuture<void> &future) override;
void postRunCommand(const Utils::FilePath &workDirectory) override;
QPointer<Core::FutureProgress> m_progress;
bool m_preventRepositoryChanged;
friend class VcsBaseClientImpl;
};
} // namespace VcsBase