forked from qt-creator/qt-creator
Add an accessor to get the flat scope list from ScopeChain.
Done-with: Erik Verbruggen
This commit is contained in:
@@ -745,22 +745,27 @@ void ScopeChain::QmlComponentChain::add(QList<const ObjectValue *> *list) const
|
|||||||
|
|
||||||
void ScopeChain::update()
|
void ScopeChain::update()
|
||||||
{
|
{
|
||||||
all.clear();
|
_all.clear();
|
||||||
|
|
||||||
all += globalScope;
|
_all += globalScope;
|
||||||
|
|
||||||
foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents)
|
foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents)
|
||||||
parent->add(&all);
|
parent->add(&_all);
|
||||||
|
|
||||||
if (qmlComponentScope.rootObject)
|
if (qmlComponentScope.rootObject)
|
||||||
all += qmlComponentScope.rootObject;
|
_all += qmlComponentScope.rootObject;
|
||||||
all += qmlScopeObjects;
|
_all += qmlScopeObjects;
|
||||||
all += qmlComponentScope.functionScopes;
|
_all += qmlComponentScope.functionScopes;
|
||||||
if (qmlComponentScope.ids)
|
if (qmlComponentScope.ids)
|
||||||
all += qmlComponentScope.ids;
|
_all += qmlComponentScope.ids;
|
||||||
if (qmlTypes)
|
if (qmlTypes)
|
||||||
all += qmlTypes;
|
_all += qmlTypes;
|
||||||
all += jsScopes;
|
_all += jsScopes;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<const ObjectValue *> ScopeChain::all() const
|
||||||
|
{
|
||||||
|
return _all;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -819,7 +824,7 @@ void Context::setTypeEnvironment(const QmlJS::Document *doc, const ObjectValue *
|
|||||||
|
|
||||||
const Value *Context::lookup(const QString &name)
|
const Value *Context::lookup(const QString &name)
|
||||||
{
|
{
|
||||||
QList<const ObjectValue *> scopes = _scopeChain.all;
|
QList<const ObjectValue *> scopes = _scopeChain.all();
|
||||||
for (int index = scopes.size() - 1; index != -1; --index) {
|
for (int index = scopes.size() - 1; index != -1; --index) {
|
||||||
const ObjectValue *scope = scopes.at(index);
|
const ObjectValue *scope = scopes.at(index);
|
||||||
|
|
||||||
|
|||||||
@@ -249,7 +249,10 @@ public:
|
|||||||
|
|
||||||
// rebuilds the flat list of all scopes
|
// rebuilds the flat list of all scopes
|
||||||
void update();
|
void update();
|
||||||
QList<const ObjectValue *> all;
|
QList<const ObjectValue *> all() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<const ObjectValue *> _all;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QMLJS_EXPORT Context
|
class QMLJS_EXPORT Context
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ public:
|
|||||||
_properties.clear();
|
_properties.clear();
|
||||||
_currentObject = 0;
|
_currentObject = 0;
|
||||||
|
|
||||||
foreach (const Interpreter::ObjectValue *scope, _context->scopeChain().all)
|
foreach (const Interpreter::ObjectValue *scope, _context->scopeChain().all())
|
||||||
enumerateProperties(scope);
|
enumerateProperties(scope);
|
||||||
|
|
||||||
return _properties;
|
return _properties;
|
||||||
|
|||||||
Reference in New Issue
Block a user