diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-29 08:13:24 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-31 01:16:34 (GMT) |
commit | 29202f033c87b5efe305e606805a26c59886875b (patch) | |
tree | 6d0b770e58a67648f64fd90c6be9f5e2ee45c5f6 /src/corelib | |
parent | f5acc7b83f79c0bce554a6e4fe2d9e6ebb4b582b (diff) | |
download | Qt-29202f033c87b5efe305e606805a26c59886875b.zip Qt-29202f033c87b5efe305e606805a26c59886875b.tar.gz Qt-29202f033c87b5efe305e606805a26c59886875b.tar.bz2 |
Add CONSTANT attribute to Q_PROPERTY()
This will be used by the declarative module to determine if a property lacking a NOTIFY signal is truly constant, or just missing a NOTIFY signal.
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 29 | ||||
-rw-r--r-- | src/corelib/kernel/qmetaobject.h | 2 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 08cecaf..fee2da9 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -159,7 +159,9 @@ enum PropertyFlags { ResolveEditable = 0x00080000, User = 0x00100000, ResolveUser = 0x00200000, - Notify = 0x00400000 + Notify = 0x00400000, + Dynamic = 0x00800000, + Constant = 0x00000400 }; enum MethodFlags { @@ -2439,6 +2441,31 @@ bool QMetaProperty::isUser(const QObject *object) const } /*! + \internal +*/ +bool QMetaProperty::isDynamic() const +{ + if (!mobj) + return false; + int flags = mobj->d.data[handle + 2]; + return flags & Dynamic; +} + +/*! + Returns true if the property is constant; otherwise returns false. + + A property is constant if the \c{Q_PROPERTY()}'s \c CONSTANT attribute + is set. +*/ +bool QMetaProperty::isConstant() const +{ + if (!mobj) + return false; + int flags = mobj->d.data[handle + 2]; + return flags & Constant; +} + +/*! \obsolete Returns true if the property is editable for the given \a object; diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h index 000ba6e..73b52a9 100644 --- a/src/corelib/kernel/qmetaobject.h +++ b/src/corelib/kernel/qmetaobject.h @@ -187,6 +187,8 @@ public: bool isStored(const QObject *obj = 0) const; bool isEditable(const QObject *obj = 0) const; bool isUser(const QObject *obj = 0) const; + bool isDynamic() const; + bool isConstant() const; bool isFlagType() const; bool isEnumType() const; |