From: Roberto Raggi Date: Mon, 22 Aug 2011 11:46:33 +0000 (+0200) Subject: Fix lookup of non scriptable default properties. X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=dd71ea9cb6fd59ff78fd88c3c0abbfe0d111ea21;p=konrad%2Fqtdeclarative.git Fix lookup of non scriptable default properties. Change-Id: I027169a54dc0041212d38aefc99164930c31d2b2 Reviewed-on: http://codereview.qt.nokia.com/3793 Reviewed-by: Roberto Raggi Reviewed-by: Qt Sanity Bot --- diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index 7ae571c..bd99a33 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -1578,13 +1578,6 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop, prop->value->metatype = type->attachedPropertiesType(); } else { // Setup regular property data - if (prop->isDefault) { - QMetaProperty p = QDeclarativeMetaType::defaultProperty(metaObject); - - if (p.name()) - prop->setName(p.name()); - } - bool notInRevision = false; QDeclarativePropertyCache::Data *d = prop->name().isEmpty()?0:property(obj, prop->name(), ¬InRevision); @@ -1600,6 +1593,14 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop, } else if (d) { prop->index = d->coreIndex; prop->core = *d; + } else if (prop->isDefault) { + QMetaProperty p = QDeclarativeMetaType::defaultProperty(metaObject); + QDeclarativePropertyCache::Data defaultPropertyData; + defaultPropertyData.load(p, engine); + if (p.name()) + prop->setName(p.name()); + prop->core = defaultPropertyData; + prop->index = prop->core.coreIndex; } // We can't error here as the "id" property does not require a