diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-17 13:44:16 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-17 13:44:16 (GMT) |
commit | b3cddbcf92a20585fd6fcd0a6c200c5e94b8669f (patch) | |
tree | e476d17d94feb127f6e34fa46cfde4b763d50f77 /src/declarative/qml/qdeclarativebinding_p.h | |
parent | 4c1f54097a1fb1acff817ba8caa8af347ae56cd2 (diff) | |
parent | ca8231566ac3804e479502d082871ab8ca28b8bb (diff) | |
download | Qt-b3cddbcf92a20585fd6fcd0a6c200c5e94b8669f.zip Qt-b3cddbcf92a20585fd6fcd0a6c200c5e94b8669f.tar.gz Qt-b3cddbcf92a20585fd6fcd0a6c200c5e94b8669f.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (132 commits)
Fix auto test
Fix type lookup with url
Fix default values on Textinput
Add an implicit import "." to types loaded from a local url
Fix crash
Don't use Qt3 support methods.
Crash
Add/delete albums in photoviewer.
Emits itemsRemoved() in QDeclarativeListModel::remove.
Readd the itemtree benchmarks for comparison purposes.
Allow enum constants as list element properties.
Compile
Cleanup benchmark a little
Really fix warning.
Fix warnings.
MouseArea works now with any QGraphicsObject
Make states test work with smaller font size.
Register QGraphicsWidget type.
Add ListView and GridView.indexAt() methods to get the index at a point.
Tests for default count(), get() values should be run on the worker
...
Diffstat (limited to 'src/declarative/qml/qdeclarativebinding_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativebinding_p.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativebinding_p.h b/src/declarative/qml/qdeclarativebinding_p.h index 1a714f0..533b6d4 100644 --- a/src/declarative/qml/qdeclarativebinding_p.h +++ b/src/declarative/qml/qdeclarativebinding_p.h @@ -74,6 +74,9 @@ public: virtual QString expression() const; + enum Type { PropertyBinding, ValueTypeProxy }; + virtual Type bindingType() const { return PropertyBinding; } + void setEnabled(bool e) { setEnabled(e, QDeclarativePropertyPrivate::DontRemoveBinding); } virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags) = 0; virtual int propertyIndex() = 0; @@ -92,6 +95,7 @@ private: friend class QDeclarativeProperty; friend class QDeclarativePropertyPrivate; friend class QDeclarativeVME; + friend class QDeclarativeValueTypeProxyBinding; QObject *m_object; QDeclarativeAbstractBinding **m_mePtr; @@ -99,6 +103,30 @@ private: QDeclarativeAbstractBinding *m_nextBinding; }; +class QDeclarativeValueTypeProxyBinding : public QDeclarativeAbstractBinding +{ +public: + QDeclarativeValueTypeProxyBinding(QObject *o, int coreIndex); + virtual ~QDeclarativeValueTypeProxyBinding(); + + virtual Type bindingType() const { return ValueTypeProxy; } + + virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags); + virtual int propertyIndex(); + virtual void update(QDeclarativePropertyPrivate::WriteFlags); + + QDeclarativeAbstractBinding *binding(int propertyIndex); + +private: + void recursiveEnable(QDeclarativeAbstractBinding *, QDeclarativePropertyPrivate::WriteFlags); + void recursiveDisable(QDeclarativeAbstractBinding *); + + friend class QDeclarativeAbstractBinding; + QObject *m_object; + int m_index; + QDeclarativeAbstractBinding *m_bindings; +}; + class QDeclarativeContext; class QDeclarativeBindingPrivate; class Q_DECLARATIVE_EXPORT QDeclarativeBinding : public QDeclarativeExpression, public QDeclarativeAbstractBinding @@ -106,8 +134,9 @@ class Q_DECLARATIVE_EXPORT QDeclarativeBinding : public QDeclarativeExpression, Q_OBJECT public: QDeclarativeBinding(const QString &, QObject *, QDeclarativeContext *, QObject *parent=0); - QDeclarativeBinding(void *, QDeclarativeRefCount *, QObject *, QDeclarativeContext *, const QString &, int, - QObject *parent); + QDeclarativeBinding(const QString &, QObject *, QDeclarativeContextData *, QObject *parent=0); + QDeclarativeBinding(void *, QDeclarativeRefCount *, QObject *, QDeclarativeContextData *, + const QString &, int, QObject *parent); ~QDeclarativeBinding(); void setTarget(const QDeclarativeProperty &); |