forked from qt-creator/qt-creator
Use std::chrono for TaskProgress::setHalfLifeTimePerTask
It is more descriptive than an int. Change-Id: I6add6a74850a9976c92509c404edb0c9fc403d21 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -74,7 +74,8 @@ TestRunner::TestRunner()
|
||||
auto progress = new TaskProgress(taskTree);
|
||||
progress->setDisplayName(Tr::tr("Running Tests"));
|
||||
progress->setAutoStopOnCancel(false);
|
||||
progress->setHalfLifeTimePerTask(10000); // 10 seconds
|
||||
using namespace std::chrono_literals;
|
||||
progress->setHalfLifeTimePerTask(10s);
|
||||
connect(progress, &TaskProgress::canceled, this, [this, progress] {
|
||||
// Progress was a child of task tree which is going to be deleted directly.
|
||||
// Unwind properly.
|
||||
|
@@ -21,7 +21,7 @@ using namespace Tasking;
|
||||
namespace Core {
|
||||
|
||||
static const int ProgressResolution = 100; // 100 discrete values
|
||||
static const int TimerInterval = 20; // 20 ms = 50 Hz
|
||||
static const std::chrono::milliseconds TimerInterval{20}; // 20 ms = 50 Hz
|
||||
|
||||
class TaskProgressPrivate : public QObject
|
||||
{
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
QPointer<FutureProgress> m_futureProgress;
|
||||
Id m_id;
|
||||
bool m_isAutoStopOnCancel = true;
|
||||
int m_halfLifeTimePerTask = 1000; // 1000 ms
|
||||
std::chrono::milliseconds m_halfLifeTimePerTask{1000};
|
||||
QString m_displayName;
|
||||
FutureProgress::KeepOnFinishType m_keep = FutureProgress::HideOnFinish;
|
||||
bool m_isSubtitleVisibleInStatusBar = false;
|
||||
@@ -83,7 +83,8 @@ void TaskProgressPrivate::advanceProgress(int newValue)
|
||||
|
||||
void TaskProgressPrivate::updateProgress()
|
||||
{
|
||||
const int halfLife = qRound(double(m_halfLifeTimePerTask) / TimerInterval);
|
||||
using double_millis = std::chrono::duration<double, std::milli>;
|
||||
const int halfLife = qRound(m_halfLifeTimePerTask / double_millis(TimerInterval));
|
||||
const int pMin = ProgressResolution * m_currentProgress;
|
||||
const int pMax = ProgressResolution * (m_currentProgress + 1);
|
||||
const int newValue = MathUtils::interpolateExponential(m_currentTick, halfLife, pMin, pMax);
|
||||
@@ -148,9 +149,9 @@ void TaskProgress::setAutoStopOnCancel(bool enable)
|
||||
d->m_isAutoStopOnCancel = enable;
|
||||
}
|
||||
|
||||
void TaskProgress::setHalfLifeTimePerTask(int msecs)
|
||||
void TaskProgress::setHalfLifeTimePerTask(std::chrono::milliseconds duration)
|
||||
{
|
||||
d->m_halfLifeTimePerTask = msecs;
|
||||
d->m_halfLifeTimePerTask = duration;
|
||||
}
|
||||
|
||||
void TaskProgress::setDisplayName(const QString &name)
|
||||
|
@@ -9,6 +9,8 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace Tasking { class TaskTree; }
|
||||
|
||||
namespace Core {
|
||||
@@ -25,7 +27,7 @@ public:
|
||||
|
||||
void setId(Utils::Id id);
|
||||
void setAutoStopOnCancel(bool enable); // Default is true
|
||||
void setHalfLifeTimePerTask(int msecs); // Default is 1000 ms
|
||||
void setHalfLifeTimePerTask(std::chrono::milliseconds duration); // Default is 1000 ms
|
||||
void setDisplayName(const QString &name);
|
||||
void setKeepOnFinish(FutureProgress::KeepOnFinishType keepType);
|
||||
void setSubtitleVisibleInStatusBar(bool visible);
|
||||
|
@@ -121,7 +121,8 @@ void UpdateInfoPlugin::startCheckForUpdates()
|
||||
|
||||
const auto onTreeSetup = [this](TaskTree *taskTree) {
|
||||
d->m_progress = new TaskProgress(taskTree);
|
||||
d->m_progress->setHalfLifeTimePerTask(30000); // 30 seconds
|
||||
using namespace std::chrono_literals;
|
||||
d->m_progress->setHalfLifeTimePerTask(30s);
|
||||
d->m_progress->setDisplayName(Tr::tr("Checking for Updates"));
|
||||
d->m_progress->setKeepOnFinish(FutureProgress::KeepOnFinishTillUserInteraction);
|
||||
d->m_progress->setSubtitleVisibleInStatusBar(true);
|
||||
|
Reference in New Issue
Block a user