diff options
Diffstat (limited to 'src/qml/types/qqmlbind_p.h')
-rw-r--r-- | src/qml/types/qqmlbind_p.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/qml/types/qqmlbind_p.h b/src/qml/types/qqmlbind_p.h index 5bf9ef85c6..7bf4fc4dfd 100644 --- a/src/qml/types/qqmlbind_p.h +++ b/src/qml/types/qqmlbind_p.h @@ -60,15 +60,27 @@ QT_BEGIN_NAMESPACE class QQmlBindPrivate; class Q_AUTOTEST_EXPORT QQmlBind : public QObject, public QQmlPropertyValueSource, public QQmlParserStatus { +public: + enum RestorationMode { + RestoreNone = 0x0, + RestoreBinding = 0x1, + RestoreValue = 0x2, + RestoreBindingOrValue = RestoreBinding | RestoreValue + }; + +private: Q_OBJECT Q_DECLARE_PRIVATE(QQmlBind) Q_INTERFACES(QQmlParserStatus) Q_INTERFACES(QQmlPropertyValueSource) Q_PROPERTY(QObject *target READ object WRITE setObject) Q_PROPERTY(QString property READ property WRITE setProperty) - Q_PROPERTY(QVariant value READ value WRITE setValue) + Q_PROPERTY(QJSValue value READ value WRITE setValue) Q_PROPERTY(bool when READ when WRITE setWhen) Q_PROPERTY(bool delayed READ delayed WRITE setDelayed REVISION 8) + Q_PROPERTY(RestorationMode restoreMode READ restoreMode WRITE setRestoreMode + NOTIFY restoreModeChanged REVISION 14) + Q_ENUM(RestorationMode) public: QQmlBind(QObject *parent=nullptr); @@ -83,12 +95,18 @@ public: QString property() const; void setProperty(const QString &); - QVariant value() const; - void setValue(const QVariant &); + QJSValue value() const; + void setValue(const QJSValue &); bool delayed() const; void setDelayed(bool); + RestorationMode restoreMode() const; + void setRestoreMode(RestorationMode); + +Q_SIGNALS: + void restoreModeChanged(); + protected: void setTarget(const QQmlProperty &) override; void classBegin() override; @@ -97,6 +115,9 @@ protected: private: void prepareEval(); void eval(); + +private Q_SLOTS: + void targetValueChanged(); }; QT_END_NAMESPACE |