forked from qt-creator/qt-creator
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:
@@ -134,14 +134,7 @@ public:
|
|||||||
explicit GitDiffEditorController(IDocument *document,
|
explicit GitDiffEditorController(IDocument *document,
|
||||||
const QString &leftCommit,
|
const QString &leftCommit,
|
||||||
const QString &rightCommit,
|
const QString &rightCommit,
|
||||||
const QStringList &extraArgs)
|
const QStringList &extraArgs);
|
||||||
: GitBaseDiffEditorController(document)
|
|
||||||
{
|
|
||||||
setReloader([=] {
|
|
||||||
runCommand({addConfigurationArguments(diffArgs(leftCommit, rightCommit, extraArgs))},
|
|
||||||
VcsBaseEditor::getCodec(workingDirectory(), {}));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
private:
|
private:
|
||||||
QStringList diffArgs(const QString &leftCommit, const QString &rightCommit,
|
QStringList diffArgs(const QString &leftCommit, const QString &rightCommit,
|
||||||
const QStringList &extraArgs) const
|
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)
|
GitBaseDiffEditorController::GitBaseDiffEditorController(IDocument *document)
|
||||||
: VcsBaseDiffEditorController(document)
|
: VcsBaseDiffEditorController(document)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user