Avoid using connect in QQuickImplicitSizeItem.
authorMichael Brasser <michael.brasser@live.com>
Thu, 1 Aug 2013 13:44:27 +0000 (08:44 -0500)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 1 Aug 2013 18:53:03 +0000 (20:53 +0200)
In the past connect has shown up as a noticeable cost in item
creation. Avoid the use here by refactoring to call base class
implementation and emit override signal as well.

Task-number: QTBUG-32764
Change-Id: If3e5a1cc55c113d812705fcfdc7a17aee9d6f51c
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
src/quick/items/qquickimplicitsizeitem.cpp

index b330b39..62dddb4 100644 (file)
@@ -47,32 +47,20 @@ QT_BEGIN_NAMESPACE
 void QQuickImplicitSizeItemPrivate::implicitWidthChanged()
 {
     Q_Q(QQuickImplicitSizeItem);
-    for (int ii = 0; ii < changeListeners.count(); ++ii) {
-        const QQuickItemPrivate::ChangeListener &change = changeListeners.at(ii);
-        if (change.types & QQuickItemPrivate::ImplicitWidth) {
-            change.listener->itemImplicitWidthChanged(q);
-        }
-    }
+    QQuickItemPrivate::implicitWidthChanged();
     emit q->implicitWidthChanged2();
 }
 
 void QQuickImplicitSizeItemPrivate::implicitHeightChanged()
 {
     Q_Q(QQuickImplicitSizeItem);
-    for (int ii = 0; ii < changeListeners.count(); ++ii) {
-        const QQuickItemPrivate::ChangeListener &change = changeListeners.at(ii);
-        if (change.types & QQuickItemPrivate::ImplicitHeight) {
-            change.listener->itemImplicitHeightChanged(q);
-        }
-    }
+    QQuickItemPrivate::implicitHeightChanged();
     emit q->implicitHeightChanged2();
 }
 
 QQuickImplicitSizeItem::QQuickImplicitSizeItem(QQuickImplicitSizeItemPrivate &dd, QQuickItem *parent)
     : QQuickItem(dd, parent)
 {
-    connect(this, SIGNAL(implicitHeightChanged2()), this, SIGNAL(implicitHeightChanged()));
-    connect(this, SIGNAL(implicitWidthChanged2()), this, SIGNAL(implicitWidthChanged()));
 }
 
 QT_END_NAMESPACE