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 d88183fbb5..dab1965da5 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 aebb22a0ee..1783fdb713 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 b0410e38ce..0f5a0a6fc1 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 da4ccb1a33..4ad8513050 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 7a880986bf..ae4f0c2044 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 2e9edb1481..296d8d31e7 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 68945a7b66..9f59550bb1 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 18e120a4eb..0402859e31 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 95988fa8b1..02d659c1e4 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 2c51e89c43..80e125947e 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 e2054401d6..82f81a704f 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; };