aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-07-05 13:01:50 +1000
committerQt by Nokia <qt-info@nokia.com>2011-07-07 02:32:21 +0200
commit06ce394b06214569e0a863dcc3ad8538c8a6aa47 (patch)
treef73842f193cc103554bceca5968d3c30b513a4c8 /src/declarative
parentcce4dc1001a25977a3eb0ad401361275f29d30ea (diff)
Correct handling of QObject* and QWidget* properties
Change-Id: I28eb68bc0236d5f7a7f9cc178462c3ad6055924e Reviewed-on: http://codereview.qt.nokia.com/1128 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/qml/qdeclarativepropertycache.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativepropertycache.cpp b/src/declarative/qml/qdeclarativepropertycache.cpp
index 24dc15aeb1..8dba8e4350 100644
--- a/src/declarative/qml/qdeclarativepropertycache.cpp
+++ b/src/declarative/qml/qdeclarativepropertycache.cpp
@@ -80,7 +80,7 @@ static QDeclarativePropertyCache::Data::Flags flagsForPropertyType(int propType,
{
QDeclarativePropertyCache::Data::Flags flags;
- if (propType < QMetaType::User) {
+ if (propType < QMetaType::User && propType != QMetaType::QObjectStar && propType != QMetaType::QWidgetStar) {
} else if (propType == qMetaTypeId<QDeclarativeBinding *>()) {
flags |= QDeclarativePropertyCache::Data::IsQmlBinding;
} else if (propType == qMetaTypeId<QScriptValue>()) {
@@ -118,7 +118,10 @@ void QDeclarativePropertyCache::Data::lazyLoad(const QMetaProperty &p, QDeclarat
flags = fastFlagsForProperty(p);
int type = p.type();
- if (type == QVariant::UserType || type == -1) {
+ if (type == QMetaType::QObjectStar || type == QMetaType::QWidgetStar) {
+ propType = type;
+ flags |= QDeclarativePropertyCache::Data::IsQObjectDerived;
+ } else if (type == QVariant::UserType || type == -1) {
propTypeName = p.typeName();
flags |= QDeclarativePropertyCache::Data::NotFullyResolved;
} else {