> I would just show one progress set to 3 * raw count. Each stage > periodically signals to the ui thread its progress, and whether it has > processed the end-of-data signal from the previous stage. In the ui > thread slot: > > int totalCount, rawCount; > > QVector<int> stageProgress; > > void stageProgressSlot(int stageIndex, int count, bool completed) { > > Q_ASSERT(count <= rawCount); > > auto thisCount = (if completed ? rawCount : count); > > Q_ASSERT(thisCount >= stageProgress[stageIndex]); > > totalCount += thisCount - stageProgress[stageIndex]; > > stageProgress[stageIndex] = thisCount; > > ui->progress->setValue(totalCount); > > } > > It will always appear to start slowly then jump forward depending on the > degree of filtering. I can't see a way to avoid that other than Bill's > idea. > > Hope that helps, Tony
I think it does, thank you. I can't really see any other way to do it to provide a somewhat meaningful progress bar - I'd like to avoid the "busy" progress bar if possible since that doesn't offer the user any sort of sense of how much longer they have to wait and your idea at least gives them some sense of status, even if it's not 100% accurate at all times. Sean This message has been scanned for malware by Forcepoint. www.forcepoint.com _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest