void ProgressManagerPrivate::updateSummaryProgressBar() { m_summaryProgressBar->setError(hasError()); updateVisibility(); if (m_runningTasks.isEmpty()) { m_summaryProgressBar->setFinished(true); if (m_taskList.isEmpty() || isLastFading()) fadeAwaySummaryProgress(); return; } stopFadeOfSummaryProgress(); m_summaryProgressBar->setFinished(false); QMapIterator<QFutureWatcher<void> *, Id> it(m_runningTasks); static const int TASK_RANGE = 100; int value = 0; while (it.hasNext()) { it.next(); QFutureWatcher<void> *watcher = it.key(); int min = watcher->progressMinimum(); int range = watcher->progressMaximum() - min; if (range > 0) value += TASK_RANGE * (watcher->progressValue() - min) / range; } m_summaryProgressBar->setRange(0, TASK_RANGE * m_runningTasks.size()); m_summaryProgressBar->setValue(value); }
void TFutureProgressPrivate::_q_SetStarted() { Progress->Reset(); Progress->SetError(false); Progress->SetRange(Watcher.progressMinimum(), Watcher.progressMaximum()); Progress->SetValue(Watcher.progressValue()); }