diff --git a/src/plugins/qmleditor/qmllookupcontext.cpp b/src/plugins/qmleditor/qmllookupcontext.cpp index cf6bea32311b78368472fea23d61fe6b21b1c833..77369e61424305a8837b3b1a2602dd8bb777380b 100644 --- a/src/plugins/qmleditor/qmllookupcontext.cpp +++ b/src/plugins/qmleditor/qmllookupcontext.cpp @@ -204,7 +204,12 @@ QmlSymbol *QmlLookupContext::resolveProperty(const QString &name, QmlSymbol *sco if (typeSymbol->isSymbolFromFile()) { return resolveProperty(name, typeSymbol->asSymbolFromFile(), typeSymbol->asSymbolFromFile()->fileName()); - } // TODO: internal types + } else if (QmlBuildInSymbol *builtinSymbol = typeSymbol->asBuildInSymbol()) { + foreach (QmlSymbol *member, builtinSymbol->members(true)) { + if (member->isProperty() && member->name() == name) + return member; + } + } return 0; } diff --git a/tests/auto/qml/qmleditor/lookup/tst_lookup.cpp b/tests/auto/qml/qmleditor/lookup/tst_lookup.cpp index 94879a1bd1cdb0cec1ec1b9a64d2ee3b05a30ba3..8b66c84d89e9c503b0477d811dd54c772c7519fd 100644 --- a/tests/auto/qml/qmleditor/lookup/tst_lookup.cpp +++ b/tests/auto/qml/qmleditor/lookup/tst_lookup.cpp @@ -281,7 +281,7 @@ void tst_Lookup::localScopeLookup() symbol = context.resolve("x"); QVERIFY(symbol); QVERIFY(symbol->isProperty()); - QVERIFY(parent->members().contains(symbol)); + // how do we know we got the right x? } } @@ -307,7 +307,7 @@ void tst_Lookup::localRootLookup() } // try lookup - QmlSymbol *parent = scopes.top(); + QmlSymbol *parent = scopes.front(); QmlLookupContext context(scopes, doc, snapshot(doc), typeSystem()); QmlSymbol *symbol; @@ -319,7 +319,6 @@ void tst_Lookup::localRootLookup() symbol = context.resolve("color"); QVERIFY(symbol); QVERIFY(symbol->isProperty()); - QVERIFY(parent->members().contains(symbol)); } QTEST_APPLESS_MAIN(tst_Lookup)