From 1cbee8cd71b43c1d13acbb31c8619c107e0d8e8f Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Wed, 3 Feb 2010 11:11:31 +0100 Subject: [PATCH] Fixed EnumerateProperties to enumerate properties of the base object. Done with: ckamm --- src/plugins/qmljseditor/qmlcodecompletion.cpp | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmljseditor/qmlcodecompletion.cpp b/src/plugins/qmljseditor/qmlcodecompletion.cpp index 277db9d9b3a..6346b372aae 100644 --- a/src/plugins/qmljseditor/qmlcodecompletion.cpp +++ b/src/plugins/qmljseditor/qmlcodecompletion.cpp @@ -143,16 +143,24 @@ public: _globalCompletion = globalCompletion; } - QHash<QString, const Interpreter::Value *> operator ()(bool lookAtScope = false) + QHash<QString, const Interpreter::Value *> operator ()(const Interpreter::Value *value) { _processed.clear(); _properties.clear(); - if (!lookAtScope) { - enumerateProperties(_link->scopeChain().first()); - } else { - foreach (const Interpreter::ObjectValue *scope, _link->scopeChain()) - enumerateProperties(scope); - } + + enumerateProperties(value); + + return _properties; + } + + QHash<QString, const Interpreter::Value *> operator ()() + { + _processed.clear(); + _properties.clear(); + + foreach (const Interpreter::ObjectValue *scope, _link->scopeChain()) + enumerateProperties(scope); + return _properties; } @@ -650,7 +658,7 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) // It's a global completion. EnumerateProperties enumerateProperties(&link); enumerateProperties.setGlobalCompletion(true); - QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties(/* lookAtScope = */ true)); + QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties()); while (it.hasNext()) { it.next(); @@ -679,7 +687,7 @@ int QmlCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) if (value && completionOperator == QLatin1Char('.')) { // member completion EnumerateProperties enumerateProperties(&link); - QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties()); + QHashIterator<QString, const Interpreter::Value *> it(enumerateProperties(value)); while (it.hasNext()) { it.next(); -- GitLab