diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-03-31 09:58:13 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-31 12:03:57 +0200 |
commit | 790268130926f318c007b41439c9d60463666e34 (patch) | |
tree | ad182dcf6fd0eaed4e48b32d1ade176f12a33bf7 /tests/auto/qml/qqmllanguage/testtypes.h | |
parent | bd54c80e4b60f922bf29154e8c1131c274a603a8 (diff) |
Fix performance regression of parent setting during QML object creation
This showed up in the profiles again: In QML we create a lot of objects
with many children and sending a child event each time is expensive. That's
why the VME didn't do that and hadn't done so in ages. This patch restores
that behavior and aspect of loading performance.
Change-Id: I5078fe330d913dc832b284aaecf031152dc80802
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'tests/auto/qml/qqmllanguage/testtypes.h')
-rw-r--r-- | tests/auto/qml/qqmllanguage/testtypes.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/auto/qml/qqmllanguage/testtypes.h b/tests/auto/qml/qqmllanguage/testtypes.h index 1a4cca2e8d..1f34309a5e 100644 --- a/tests/auto/qml/qqmllanguage/testtypes.h +++ b/tests/auto/qml/qqmllanguage/testtypes.h @@ -119,7 +119,7 @@ class MyQmlObject : public QObject, public MyInterface Q_INTERFACES(MyInterface) public: - MyQmlObject() : m_value(-1), m_interface(0), m_qmlobject(0) { qRegisterMetaType<MyCustomVariantType>("MyCustomVariantType"); } + MyQmlObject(); int value() const { return m_value; } void setValue(int v) { m_value = v; } @@ -161,6 +161,8 @@ public: QJSValue qjsvalue() const { return m_qjsvalue; } void setQJSValue(const QJSValue &value) { m_qjsvalue = value; emit qjsvalueChanged(); } + int childAddedEventCount() const { return m_childAddedEventCount; } + public slots: void basicSlot() { qWarning("MyQmlObject::basicSlot"); } void basicSlotWithArgs(int v) { qWarning("MyQmlObject::basicSlotWithArgs(%d)", v); } @@ -173,6 +175,9 @@ signals: void signalWithDefaultArg(int parameter = 5); void qjsvalueChanged(); +protected: + virtual bool event(QEvent *event); + private: friend class tst_qqmllanguage; int m_value; @@ -181,6 +186,7 @@ private: MyCustomVariantType m_custom; int m_propertyWithNotify; QJSValue m_qjsvalue; + int m_childAddedEventCount; }; QML_DECLARE_TYPE(MyQmlObject) QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES) |