From a3a53cdde4bfe7aff556731a2270b75505d300a8 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Thu, 10 Aug 2023 19:39:15 +0300 Subject: [PATCH] QGestureManager: port Q_FOREACH to ranged-for [1/6] The loop doesn't modify the QHash while iterating over it, so use std::as_const. Drive by change: Use asKeyValueRange() to get a key/value pair: - No need to allocate a QStringList to hold the keys - Prevent double lookup which happened when hash.value(key) was used inside the loop body Task-number: QTBUG-115803 Change-Id: Ic0473c0971089f6ca75d3397209fe1c909e975a1 Reviewed-by: Christian Ehrlicher --- src/widgets/kernel/qgesturemanager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index c44bd9f972..523d140d77 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -100,8 +100,7 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type) { QList list = m_recognizers.values(type); m_recognizers.remove(type); - foreach (QGesture *g, m_gestureToRecognizer.keys()) { - QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g); + for (const auto &[g, recognizer] : std::as_const(m_gestureToRecognizer).asKeyValueRange()) { if (list.contains(recognizer)) { m_deletedRecognizers.insert(g, recognizer); }