From: con Date: Mon, 28 Mar 2011 11:35:43 +0000 (+0200) Subject: Fix progress bar for searching in files. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=01dd85bc00c98d822f88efd0cb81dc13a8719364;p=qt-creator-jp%2Fqt-creator-jp.git Fix progress bar for searching in files. Affects e.g. Advanced Find->All Projects. Progress bar was not updating at all, except at the end of the search. The fix is a workaround for regression in QFutureInterface::isProgressUpdateNeeded that would no longer return true the very first time in Qt 4.7. To be reverted when this is fixed in a released Qt version. Reviewed-by: dt --- diff --git a/src/libs/utils/filesearch.cpp b/src/libs/utils/filesearch.cpp index c576e32f97..c38d1606da 100644 --- a/src/libs/utils/filesearch.cpp +++ b/src/libs/utils/filesearch.cpp @@ -178,7 +178,8 @@ void runFileSearch(QFutureInterface &future, } ++numFilesSearched; - if (future.isProgressUpdateNeeded()) { + if (future.isProgressUpdateNeeded() + || future.progressValue() == 0 /*workaround for regression in Qt*/) { if (!results.isEmpty()) { future.reportResult(results); results.clear(); @@ -256,7 +257,8 @@ void runFileSearchRegExp(QFutureInterface &future, ++lineNr; } ++numFilesSearched; - if (future.isProgressUpdateNeeded()) { + if (future.isProgressUpdateNeeded() + || future.progressValue() == 0 /*workaround for regression in Qt*/) { if (!results.isEmpty()) { future.reportResult(results); results.clear(); diff --git a/src/plugins/locator/directoryfilter.cpp b/src/plugins/locator/directoryfilter.cpp index 2779ebae14..45d1319a65 100644 --- a/src/plugins/locator/directoryfilter.cpp +++ b/src/plugins/locator/directoryfilter.cpp @@ -203,7 +203,8 @@ void DirectoryFilter::refresh(QFutureInterface &future) QStringList filesFound; while (!future.isCanceled() && it.hasNext()) { filesFound << it.next(); - if (future.isProgressUpdateNeeded()) { + if (future.isProgressUpdateNeeded() + || future.progressValue() == 0 /*workaround for regression in Qt*/) { future.setProgressValueAndText(it.currentProgress(), tr("%1 filter update: %n files", 0, filesFound.size()).arg(m_name)); }