// Copyright (C) 2017 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0 #pragma once #include "vcsbase_global.h" #include "vcsenums.h" #include QT_BEGIN_NAMESPACE class QTextCodec; QT_END_NAMESPACE namespace Core { class IDocument; } namespace Utils { template class AsyncTask; class Environment; class FilePath; class QtcProcess; } // Utils namespace VcsBase { class VcsBaseDiffEditorControllerPrivate; class VCSBASE_EXPORT VcsBaseDiffEditorController : public DiffEditor::DiffEditorController { Q_OBJECT public: explicit VcsBaseDiffEditorController(Core::IDocument *document); ~VcsBaseDiffEditorController() override; void setProcessEnvironment(const Utils::Environment &value); void setVcsBinary(const Utils::FilePath &path); void setVcsTimeoutS(int value); protected: void setupCommand(Utils::QtcProcess &process, const QStringList &args) const; void setupDiffProcessor(Utils::AsyncTask> &processor, const QString &patch) const; void runCommand(const QList &args, RunFlags flags, QTextCodec *codec = nullptr); virtual void processCommandOutput(const QString &output); private: friend class VcsBaseDiffEditorControllerPrivate; VcsBaseDiffEditorControllerPrivate *d; }; } //namespace VcsBase