From 7ae38c49b78515e1e49f8a8858ce9c581e534284 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Thu, 1 Mar 2012 23:47:36 +0000 Subject: [PATCH] Use QHash instead of QMap when K is a pointer type Changes various internal usages of QMap when the key is a pointer type. Being ordered by the pointer value itself, it makes very little sense to use QMap (esp. in cases where the key is actually allocated on the heap). The usages have been found with the following script: #!/usr/bin/perl use strict; use warnings; use Regexp::Common; use File::Find; use feature ':5.10'; my $container = qr/(?:QMap)/; sub process { return unless (-f and -r and /(\.c|\.cpp|\.h|\.txt)$/); open my $fh, "<", $_ or die "Cannot open $_: $!"; while (my $line = <$fh>) { chomp $line; while ($line =~ /($container\s*$RE{balanced}{-parens=>"<>"})/g) { my $tmp = $1; $tmp =~ s/\s+//g; say "$_:$.: $line" if $tmp =~ /^$container\s*<[^,]+\*,/; } } close $fh; } find( { no_chdir => 1, wanted => \&process }, @ARGV ); Change-Id: Idd9819c3f4c48f98ef92831d5e8e5ac0fa42283c Reviewed-by: Lars Knoll --- src/widgets/graphicsview/qgraphicsitem.cpp | 6 +++--- src/widgets/graphicsview/qgraphicsitem_p.h | 4 ++-- src/widgets/graphicsview/qgraphicsscene_p.h | 2 +- src/widgets/graphicsview/qgraphicswidget.cpp | 2 +- src/widgets/kernel/qapplication_p.h | 4 ++-- src/widgets/kernel/qgesturemanager.cpp | 6 +++--- src/widgets/kernel/qgesturemanager_p.h | 4 ++-- src/widgets/styles/qgtkstyle_p.cpp | 10 +++++----- src/widgets/styles/qgtkstyle_p.h | 2 +- src/widgets/widgets/qabstractbutton.cpp | 2 +- src/widgets/widgets/qwidgetanimator_p.h | 4 ++-- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index d88183fbb57..dab1965da5c 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -783,7 +783,7 @@ static inline void _q_adjustRect(QRect *rect) class QGraphicsItemCustomDataStore { public: - QMap > data; + QHash > data; }; Q_GLOBAL_STATIC(QGraphicsItemCustomDataStore, qt_dataStore) @@ -1379,7 +1379,7 @@ void QGraphicsItemCache::purge() { QPixmapCache::remove(key); key = QPixmapCache::Key(); - QMutableMapIterator it(deviceData); + QMutableHashIterator it(deviceData); while (it.hasNext()) { DeviceData &data = it.next().value(); QPixmapCache::remove(data.key); @@ -7124,7 +7124,7 @@ void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) if ((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) { // Determine the list of items that need to be moved. QList selectedItems; - QMap initialPositions; + QHash initialPositions; if (d_ptr->scene) { selectedItems = d_ptr->scene->selectedItems(); initialPositions = d_ptr->scene->d_func()->movingItemsInitialPositions; diff --git a/src/widgets/graphicsview/qgraphicsitem_p.h b/src/widgets/graphicsview/qgraphicsitem_p.h index aebb22a0ee4..1783fdb713c 100644 --- a/src/widgets/graphicsview/qgraphicsitem_p.h +++ b/src/widgets/graphicsview/qgraphicsitem_p.h @@ -145,7 +145,7 @@ public: QPoint cacheIndent; QPixmapCache::Key key; }; - QMap deviceData; + QHash deviceData; // List of logical exposed rects QVector exposed; @@ -508,7 +508,7 @@ public: QRectF childrenBoundingRect; QRectF needsRepaint; - QMap paintedViewBoundingRects; + QHash paintedViewBoundingRects; QPointF pos; qreal z; qreal opacity; diff --git a/src/widgets/graphicsview/qgraphicsscene_p.h b/src/widgets/graphicsview/qgraphicsscene_p.h index b0410e38ce0..0f5a0a6fc17 100644 --- a/src/widgets/graphicsview/qgraphicsscene_p.h +++ b/src/widgets/graphicsview/qgraphicsscene_p.h @@ -128,7 +128,7 @@ public: QVector unpolishedItems; QList topLevelItems; - QMap movingItemsInitialPositions; + QHash movingItemsInitialPositions; void registerTopLevelItem(QGraphicsItem *item); void unregisterTopLevelItem(QGraphicsItem *item); void _q_updateLater(); diff --git a/src/widgets/graphicsview/qgraphicswidget.cpp b/src/widgets/graphicsview/qgraphicswidget.cpp index da4ccb1a334..4ad8513050c 100644 --- a/src/widgets/graphicsview/qgraphicswidget.cpp +++ b/src/widgets/graphicsview/qgraphicswidget.cpp @@ -222,7 +222,7 @@ public: } private: - QMap styles; + QHash styles; mutable QMutex mutex; }; Q_GLOBAL_STATIC(QGraphicsWidgetStyles, widgetStyles) diff --git a/src/widgets/kernel/qapplication_p.h b/src/widgets/kernel/qapplication_p.h index 7a880986bf9..ae4f0c20446 100644 --- a/src/widgets/kernel/qapplication_p.h +++ b/src/widgets/kernel/qapplication_p.h @@ -313,7 +313,7 @@ public: QPointer last_manager; QWSServerCleaner qwsServerCleaner; # ifndef QT_NO_DIRECTPAINTER - QMap *directPainters; + QHash *directPainters; # endif QRect maxWindowRect(const QScreen *screen) const { return maxWindowRects[screen]; } void setMaxWindowRect(const QScreen *screen, int screenNo, const QRect &rect); @@ -393,7 +393,7 @@ public: private: #ifdef Q_WS_QWS - QMap maxWindowRects; + QHash maxWindowRects; #endif static QApplicationPrivate *self; diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index 2e9edb14814..296d8d31e71 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -541,8 +541,8 @@ bool QGestureManager::filterEvent(QObject *receiver, QEvent *event) } void QGestureManager::getGestureTargets(const QSet &gestures, - QMap > *conflicts, - QMap > *normal) + QHash > *conflicts, + QHash > *normal) { typedef QHash > GestureByTypes; GestureByTypes gestureByTypes; @@ -588,7 +588,7 @@ void QGestureManager::deliverEvents(const QSet &gestures, if (gestures.isEmpty()) return; - typedef QMap > GesturesPerWidget; + typedef QHash > GesturesPerWidget; GesturesPerWidget conflictedGestures; GesturesPerWidget normalStartedGestures; diff --git a/src/widgets/kernel/qgesturemanager_p.h b/src/widgets/kernel/qgesturemanager_p.h index 68945a7b66e..9f59550bb19 100644 --- a/src/widgets/kernel/qgesturemanager_p.h +++ b/src/widgets/kernel/qgesturemanager_p.h @@ -138,8 +138,8 @@ private: void deliverEvents(const QSet &gestures, QSet *undeliveredGestures); void getGestureTargets(const QSet &gestures, - QMap > *conflicts, - QMap > *normal); + QHash > *conflicts, + QHash > *normal); void cancelGesturesForChildren(QGesture *originatingGesture); }; diff --git a/src/widgets/styles/qgtkstyle_p.cpp b/src/widgets/styles/qgtkstyle_p.cpp index 18e120a4eb3..0402859e318 100644 --- a/src/widgets/styles/qgtkstyle_p.cpp +++ b/src/widgets/styles/qgtkstyle_p.cpp @@ -897,7 +897,7 @@ extern QStringList qt_make_filter_list(const QString &filter); void QGtkStylePrivate::setupGtkFileChooser(GtkWidget* gtkFileChooser, QWidget *parent, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options, bool isSaveDialog, - QMap *filterMap) + QHash *filterMap) { g_object_set(gtkFileChooser, "do-overwrite-confirmation", gboolean(!(options & QFileDialog::DontConfirmOverwrite)), NULL); g_object_set(gtkFileChooser, "local_only", gboolean(true), NULL); @@ -969,7 +969,7 @@ void QGtkStylePrivate::setupGtkFileChooser(GtkWidget* gtkFileChooser, QWidget *p QString QGtkStylePrivate::openFilename(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options) { - QMap filterMap; + QHash filterMap; GtkWidget *gtkFileChooser = QGtkStylePrivate::gtk_file_chooser_dialog_new (qPrintable(caption), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, @@ -1003,7 +1003,7 @@ QString QGtkStylePrivate::openFilename(QWidget *parent, const QString &caption, QString QGtkStylePrivate::openDirectory(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options) { - QMap filterMap; + QHash filterMap; GtkWidget *gtkFileChooser = QGtkStylePrivate::gtk_file_chooser_dialog_new (qPrintable(caption), NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, @@ -1033,7 +1033,7 @@ QStringList QGtkStylePrivate::openFilenames(QWidget *parent, const QString &capt QString *selectedFilter, QFileDialog::Options options) { QStringList filenames; - QMap filterMap; + QHash filterMap; GtkWidget *gtkFileChooser = QGtkStylePrivate::gtk_file_chooser_dialog_new (qPrintable(caption), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, @@ -1068,7 +1068,7 @@ QStringList QGtkStylePrivate::openFilenames(QWidget *parent, const QString &capt QString QGtkStylePrivate::saveFilename(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options) { - QMap filterMap; + QHash filterMap; GtkWidget *gtkFileChooser = QGtkStylePrivate::gtk_file_chooser_dialog_new (qPrintable(caption), NULL, GTK_FILE_CHOOSER_ACTION_SAVE, diff --git a/src/widgets/styles/qgtkstyle_p.h b/src/widgets/styles/qgtkstyle_p.h index 95988fa8b1f..02d659c1e4e 100644 --- a/src/widgets/styles/qgtkstyle_p.h +++ b/src/widgets/styles/qgtkstyle_p.h @@ -344,7 +344,7 @@ public: static void setupGtkFileChooser(GtkWidget* gtkFileChooser, QWidget *parent, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options, bool isSaveDialog = false, - QMap *filterMap = 0); + QHash *filterMap = 0); static QString openFilename(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp index 2c51e89c43a..80e125947ee 100644 --- a/src/widgets/widgets/qabstractbutton.cpp +++ b/src/widgets/widgets/qabstractbutton.cpp @@ -190,7 +190,7 @@ public: void detectCheckedButton(); void notifyChecked(QAbstractButton *button); bool exclusive; - QMap mapping; + QHash mapping; }; QButtonGroup::QButtonGroup(QObject *parent) diff --git a/src/widgets/widgets/qwidgetanimator_p.h b/src/widgets/widgets/qwidgetanimator_p.h index e2054401d6a..82f81a704f2 100644 --- a/src/widgets/widgets/qwidgetanimator_p.h +++ b/src/widgets/widgets/qwidgetanimator_p.h @@ -54,7 +54,7 @@ // #include -#include +#include QT_BEGIN_NAMESPACE @@ -79,7 +79,7 @@ private Q_SLOTS: #endif private: - typedef QMap AnimationMap; + typedef QHash AnimationMap; AnimationMap m_animation_map; QMainWindowLayout *m_mainWindowLayout; };