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,
|
||||
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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user