aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlcontext.h
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2018-01-10 15:59:07 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2018-01-12 07:03:29 +0000
commit4d6830546619d16275b01f1f049fdcb0b6489f7a (patch)
treefeee3a660e22affd2ad4f6d5858478edecdac4df /src/qml/qml/qqmlcontext.h
parent6318a43ffc473ba101c955d96b39bc1b93ef7e61 (diff)
Add setContextProperties()
Setting all properties in one batch avoids unnecessary refreshing of expressions and is therefore a lot faster if there are many expressions in the context. In an example I created it takes 500ms to set 10 context properties using setContextProperty() and it takes about 150ms to set the context properties using setContextProperties. Change-Id: Ic7cf03cda292b316198f37f963b61a2388a288c9 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlcontext.h')
-rw-r--r--src/qml/qml/qqmlcontext.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlcontext.h b/src/qml/qml/qqmlcontext.h
index b2b95b7573..506ae216b2 100644
--- a/src/qml/qml/qqmlcontext.h
+++ b/src/qml/qml/qqmlcontext.h
@@ -42,6 +42,8 @@
#include <QtCore/qurl.h>
#include <QtCore/qobject.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qpair.h>
#include <QtQml/qjsvalue.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qvariant.h>
@@ -62,6 +64,8 @@ class Q_QML_EXPORT QQmlContext : public QObject
Q_DECLARE_PRIVATE(QQmlContext)
public:
+ struct PropertyPair { QString name; QVariant value; };
+
QQmlContext(QQmlEngine *parent, QObject *objParent = nullptr);
QQmlContext(QQmlContext *parent, QObject *objParent = nullptr);
virtual ~QQmlContext();
@@ -77,6 +81,7 @@ public:
QVariant contextProperty(const QString &) const;
void setContextProperty(const QString &, QObject *);
void setContextProperty(const QString &, const QVariant &);
+ void setContextProperties(const QVector<PropertyPair> &properties);
// ### Qt 6: no need for a mutable object, this should become a const QObject pointer
QString nameForObject(QObject *) const;