diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-01-28 10:40:24 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-02-02 08:15:36 +0000 |
commit | 8731325ce86489dc4624a93afc1f857b30be029a (patch) | |
tree | 9f2e2b6a29f71c0dbc71e4b26186918b61b4ac9f | |
parent | e3ae92bc5f7c54168d53fb36b593f82654dfd0fe (diff) | |
download | qt-creator-8731325ce86489dc4624a93afc1f857b30be029a.tar.gz |
Use invokeMethod instead of single shot timer with 0 timeout
Change-Id: I3ffc4bfdbc6fc58d4b90aa53427eb80653c22b65
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
8 files changed, 18 insertions, 25 deletions
diff --git a/src/plugins/coreplugin/locator/basefilefilter.cpp b/src/plugins/coreplugin/locator/basefilefilter.cpp index 93be24f414..ef75c683dc 100644 --- a/src/plugins/coreplugin/locator/basefilefilter.cpp +++ b/src/plugins/coreplugin/locator/basefilefilter.cpp @@ -32,7 +32,6 @@ #include <QDir> #include <QRegularExpression> -#include <QTimer> using namespace Utils; @@ -202,7 +201,8 @@ QList<LocatorFilterEntry> BaseFileFilter::matchesFor(QFutureInterface<LocatorFil d->m_current.clear(); // free memory } else { d->m_current.iterator.clear(); - QTimer::singleShot(0, this, &BaseFileFilter::updatePreviousResultData); + QMetaObject::invokeMethod(this, &BaseFileFilter::updatePreviousResultData, + Qt::QueuedConnection); } for (auto &entry : entries) { diff --git a/src/plugins/coreplugin/locator/commandlocator.cpp b/src/plugins/coreplugin/locator/commandlocator.cpp index 207a96ae26..7ad0fea386 100644 --- a/src/plugins/coreplugin/locator/commandlocator.cpp +++ b/src/plugins/coreplugin/locator/commandlocator.cpp @@ -31,7 +31,6 @@ #include <utils/stringutils.h> #include <QAction> -#include <QTimer> using namespace Utils; @@ -124,10 +123,10 @@ void CommandLocator::accept(LocatorFilterEntry entry, QTC_ASSERT(index >= 0 && index < d->commands.size(), return); QAction *action = d->commands.at(index)->action(); // avoid nested stack trace and blocking locator by delayed triggering - QTimer::singleShot(0, action, [action] { + QMetaObject::invokeMethod(action, [action] { if (action->isEnabled()) action->trigger(); - }); + }, Qt::QueuedConnection); } void CommandLocator::refresh(QFutureInterface<void> &) diff --git a/src/plugins/coreplugin/locator/directoryfilter.cpp b/src/plugins/coreplugin/locator/directoryfilter.cpp index 831fd443db..aa3d3f1c15 100644 --- a/src/plugins/coreplugin/locator/directoryfilter.cpp +++ b/src/plugins/coreplugin/locator/directoryfilter.cpp @@ -33,7 +33,6 @@ #include <utils/filesearch.h> #include <QFileDialog> -#include <QTimer> using namespace Utils; @@ -240,7 +239,8 @@ void DirectoryFilter::refresh(QFutureInterface<void> &future) QMutexLocker locker(&m_lock); if (m_directories.isEmpty()) { m_files.clear(); - QTimer::singleShot(0, this, &DirectoryFilter::updateFileIterator); + QMetaObject::invokeMethod(this, &DirectoryFilter::updateFileIterator, + Qt::QueuedConnection); future.setProgressRange(0, 1); future.setProgressValueAndText(1, tr("%1 filter update: 0 files").arg(displayName())); return; @@ -267,7 +267,7 @@ void DirectoryFilter::refresh(QFutureInterface<void> &future) if (!future.isCanceled()) { QMutexLocker locker(&m_lock); m_files = filesFound; - QTimer::singleShot(0, this, &DirectoryFilter::updateFileIterator); + QMetaObject::invokeMethod(this, &DirectoryFilter::updateFileIterator, Qt::QueuedConnection); future.setProgressValue(subDirIterator.maxProgress()); } else { future.setProgressValueAndText(subDirIterator.currentProgress(), tr("%1 filter update: canceled").arg(displayName())); diff --git a/src/plugins/coreplugin/locator/filesystemfilter.cpp b/src/plugins/coreplugin/locator/filesystemfilter.cpp index 5ed25277f4..f7d940a73f 100644 --- a/src/plugins/coreplugin/locator/filesystemfilter.cpp +++ b/src/plugins/coreplugin/locator/filesystemfilter.cpp @@ -40,7 +40,6 @@ #include <QDir> #include <QPushButton> #include <QRegularExpression> -#include <QTimer> using namespace Core; using namespace Core::Internal; @@ -175,7 +174,7 @@ void FileSystemFilter::accept(LocatorFilterEntry selection, *selectionStart = value.length(); } else { // Don't block locator filter execution with dialog - QTimer::singleShot(0, EditorManager::instance(), [info, selection] { + QMetaObject::invokeMethod(EditorManager::instance(), [info, selection] { const QString targetFile = selection.internalData.toString(); if (!info.exists()) { if (Utils::CheckableMessageBox::shouldAskAgain(ICore::settings(), kAlwaysCreate)) { @@ -208,7 +207,7 @@ void FileSystemFilter::accept(LocatorFilterEntry selection, EditorManager::openEditor(cleanedFilePath, Id(), EditorManager::CanContainLineAndColumnNumber); - }); + }, Qt::QueuedConnection); } } diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp index dc87cbe16a..d88bc210ad 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.cpp +++ b/src/plugins/coreplugin/locator/locatorwidget.cpp @@ -361,7 +361,7 @@ bool LocatorPopup::event(QEvent *event) doUpdateGeometry(); else if (event->type() == QEvent::LayoutRequest) // completion list resizes after first items are shown --> LayoutRequest - QTimer::singleShot(0, this, &LocatorPopup::doUpdateGeometry); + QMetaObject::invokeMethod(this, &LocatorPopup::doUpdateGeometry, Qt::QueuedConnection); return QWidget::event(event); } @@ -751,12 +751,10 @@ bool LocatorWidget::eventFilter(QObject *obj, QEvent *event) case Qt::Key_Escape: if (!ke->modifiers()) { event->accept(); - QTimer::singleShot(0, - this, - [focus = m_previousFocusWidget, - isInMainWindow = isInMainWindow()] { - resetFocus(focus, isInMainWindow); - }); + QMetaObject::invokeMethod(this, [focus = m_previousFocusWidget, + isInMainWindow = isInMainWindow()] { + resetFocus(focus, isInMainWindow); + }, Qt::QueuedConnection); return true; } break; diff --git a/src/plugins/cpptools/cppincludesfilter.cpp b/src/plugins/cpptools/cppincludesfilter.cpp index 7286982c91..0856d26864 100644 --- a/src/plugins/cpptools/cppincludesfilter.cpp +++ b/src/plugins/cpptools/cppincludesfilter.cpp @@ -34,8 +34,6 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/session.h> -#include <QTimer> - using namespace Core; using namespace ProjectExplorer; using namespace Utils; @@ -168,7 +166,7 @@ void CppIncludesFilter::prepareSearch(const QString &entry) void CppIncludesFilter::refresh(QFutureInterface<void> &future) { Q_UNUSED(future) - QTimer::singleShot(0, this, &CppIncludesFilter::markOutdated); + QMetaObject::invokeMethod(this, &CppIncludesFilter::markOutdated, Qt::QueuedConnection); } void CppIncludesFilter::markOutdated() diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp index e6beb28724..c045dcfbe0 100644 --- a/src/plugins/projectexplorer/allprojectsfilter.cpp +++ b/src/plugins/projectexplorer/allprojectsfilter.cpp @@ -31,7 +31,6 @@ #include <utils/algorithm.h> #include <QMutexLocker> -#include <QTimer> using namespace Core; using namespace ProjectExplorer; @@ -69,5 +68,5 @@ void AllProjectsFilter::prepareSearch(const QString &entry) void AllProjectsFilter::refresh(QFutureInterface<void> &future) { Q_UNUSED(future) - QTimer::singleShot(0, this, &AllProjectsFilter::markFilesAsOutOfDate); + QMetaObject::invokeMethod(this, &AllProjectsFilter::markFilesAsOutOfDate, Qt::QueuedConnection); } diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp index 89c2ed1a3c..b077a035d1 100644 --- a/src/plugins/projectexplorer/currentprojectfilter.cpp +++ b/src/plugins/projectexplorer/currentprojectfilter.cpp @@ -30,7 +30,6 @@ #include <utils/algorithm.h> #include <QMutexLocker> -#include <QTimer> using namespace Core; using namespace ProjectExplorer; @@ -84,5 +83,6 @@ void CurrentProjectFilter::currentProjectChanged() void CurrentProjectFilter::refresh(QFutureInterface<void> &future) { Q_UNUSED(future) - QTimer::singleShot(0, this, &CurrentProjectFilter::markFilesAsOutOfDate); + QMetaObject::invokeMethod(this, &CurrentProjectFilter::markFilesAsOutOfDate, + Qt::QueuedConnection); } |