GitDiffEditorController: Reuse task tree

Change-Id: I6f89a6865ee45eea66a0307c273ef8d76976da3b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-12-15 13:34:59 +01:00
parent 36fd9cb9d5
commit c06c6be4ab

View File

@@ -134,14 +134,7 @@ public:
explicit GitDiffEditorController(IDocument *document,
const QString &leftCommit,
const QString &rightCommit,
const QStringList &extraArgs)
: GitBaseDiffEditorController(document)
{
setReloader([=] {
runCommand({addConfigurationArguments(diffArgs(leftCommit, rightCommit, extraArgs))},
VcsBaseEditor::getCodec(workingDirectory(), {}));
});
}
const QStringList &extraArgs);
private:
QStringList diffArgs(const QString &leftCommit, const QString &rightCommit,
const QStringList &extraArgs) const
@@ -169,6 +162,33 @@ private:
}
};
GitDiffEditorController::GitDiffEditorController(IDocument *document,
const QString &leftCommit,
const QString &rightCommit,
const QStringList &extraArgs)
: GitBaseDiffEditorController(document)
{
using namespace Tasking;
const TreeStorage<QString> diffInputStorage = inputStorage();
const auto setupDiff = [=](QtcProcess &process) {
process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), {}));
setupCommand(process, {addConfigurationArguments(diffArgs(leftCommit, rightCommit, extraArgs))});
VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
};
const auto onDiffDone = [diffInputStorage](const QtcProcess &process) {
*diffInputStorage.activeStorage() = process.cleanedStdOut();
};
const Group root {
Storage(diffInputStorage),
Process(setupDiff, onDiffDone),
postProcessTask()
};
setReloadRecipe(root);
}
GitBaseDiffEditorController::GitBaseDiffEditorController(IDocument *document)
: VcsBaseDiffEditorController(document)
{