diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-19 13:04:59 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-19 13:52:44 +0200 |
commit | 4fdeeb303936bb6cde163d04b717a4d2e1715f89 (patch) | |
tree | 4c296383426aac8d9acfdd5e0bb0e1a35e6e0dd7 /src/libs/qmljs/qmljsinterpreter.cpp | |
parent | 3e090166e3fcb990789e2a16a65dbc90002a0d59 (diff) | |
download | qt-creator-4fdeeb303936bb6cde163d04b717a4d2e1715f89.tar.gz |
QmlJS: Fix enum completion with 'as' imports.
Change-Id: Ifc229c23c14a6395c9d3e5f7ec76b9b04678787d
Reviewed-on: http://codereview.qt-project.org/5134
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'src/libs/qmljs/qmljsinterpreter.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsinterpreter.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index bb28532503..257b58eb8f 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -2118,6 +2118,33 @@ ImportInfo Imports::info(const QString &name, const Context *context) const return ImportInfo(); } +QString Imports::nameForImportedObject(const ObjectValue *value, const Context *context) const +{ + QListIterator<Import> it(_imports); + it.toBack(); + while (it.hasPrevious()) { + const Import &i = it.previous(); + const ObjectValue *import = i.object; + const ImportInfo &info = i.info; + + if (info.type() == ImportInfo::FileImport) { + if (import == value) + return import->className(); + } else { + const Value *v = import->lookupMember(value->className(), context); + if (v == value) { + QString result = value->className(); + if (!info.id().isEmpty()) { + result.prepend(QLatin1Char('.')); + result.prepend(info.id()); + } + return result; + } + } + } + return QString(); +} + QList<Import> Imports::all() const { return _imports; |