From 565c56cd4a835a0948b60330ade9468e4dfea667 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 27 Jan 2023 02:04:20 +0100 Subject: [PATCH] TaskProgress: Make is possible to set id for associated future progress Change-Id: I9e3e2038289a3e2f38030deb3e63dd69babb69ce Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/coreplugin/progressmanager/taskprogress.cpp | 8 +++++++- src/plugins/coreplugin/progressmanager/taskprogress.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/progressmanager/taskprogress.cpp b/src/plugins/coreplugin/progressmanager/taskprogress.cpp index 3c36cae6a87..6c7ee0bbb79 100644 --- a/src/plugins/coreplugin/progressmanager/taskprogress.cpp +++ b/src/plugins/coreplugin/progressmanager/taskprogress.cpp @@ -39,6 +39,7 @@ public: QFutureWatcher m_watcher; QFutureInterface m_futureInterface; QPointer m_futureProgress; + Id m_id; bool m_isAutoStopOnCancel = true; int m_halfLifeTimePerTask = 1000; // 1000 ms QString m_displayName; @@ -112,7 +113,7 @@ TaskProgress::TaskProgress(TaskTree *taskTree) d->m_futureInterface.reportStarted(); d->advanceProgress(0); - const auto id = Id::fromString(d->m_displayName + ".action"); + const Id id = d->m_id.isValid() ? d->m_id : Id::fromString(d->m_displayName + ".action"); d->m_futureProgress = ProgressManager::addTask(d->m_futureInterface.future(), d->m_displayName, id); d->m_futureProgress->setKeepOnFinish(d->m_keep); @@ -136,6 +137,11 @@ TaskProgress::TaskProgress(TaskTree *taskTree) TaskProgress::~TaskProgress() = default; +void TaskProgress::setId(Utils::Id id) +{ + d->m_id = id; +} + void TaskProgress::setAutoStopOnCancel(bool enable) { d->m_isAutoStopOnCancel = enable; diff --git a/src/plugins/coreplugin/progressmanager/taskprogress.h b/src/plugins/coreplugin/progressmanager/taskprogress.h index 04eb6739740..e15967fa2b8 100644 --- a/src/plugins/coreplugin/progressmanager/taskprogress.h +++ b/src/plugins/coreplugin/progressmanager/taskprogress.h @@ -23,6 +23,7 @@ public: TaskProgress(Utils::TaskTree *taskTree); // Makes TaskProgress a child of task tree ~TaskProgress() override; + void setId(Utils::Id id); void setAutoStopOnCancel(bool enable); // Default is true void setHalfLifeTimePerTask(int msecs); // Default is 1000 ms void setDisplayName(const QString &name);