TaskTree: Introduce CallDoneIf enum

Get rid of CustomTask c'tor taking 3 handlers.
If the done handler needs to be called only on
success or an error, add explicit 3rd arg of CallDoneIf type.

Task-number: QTCREATORBUG-29834
Change-Id: I10e55415587e6cac46620dd5177ad8269584583c
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2023-11-02 18:47:38 +01:00
parent 63bfeba87f
commit 6e6aa7102c
29 changed files with 148 additions and 127 deletions

View File

@@ -547,7 +547,7 @@ TaskTree *BranchView::onFastForwardMerge(const std::function<void()> &callback)
const TreeStorage<FastForwardStorage> storage;
const auto setupMergeBase = [repository = m_repository, branch](Process &process) {
const auto onMergeBaseSetup = [repository = m_repository, branch](Process &process) {
gitClient().setupCommand(process, repository, {"merge-base", "HEAD", branch});
};
const auto onMergeBaseDone = [storage](const Process &process) {
@@ -563,7 +563,7 @@ TaskTree *BranchView::onFastForwardMerge(const std::function<void()> &callback)
const Group root {
Tasking::Storage(storage),
parallel,
ProcessTask(setupMergeBase, onMergeBaseDone),
ProcessTask(onMergeBaseSetup, onMergeBaseDone, CallDoneIf::Success),
topRevisionProc,
onGroupDone([storage, callback] {
if (storage->mergeBase == storage->topRevision)