summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsinterpreter.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-09-19 13:04:59 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2011-09-19 13:52:44 +0200
commit4fdeeb303936bb6cde163d04b717a4d2e1715f89 (patch)
tree4c296383426aac8d9acfdd5e0bb0e1a35e6e0dd7 /src/libs/qmljs/qmljsinterpreter.cpp
parent3e090166e3fcb990789e2a16a65dbc90002a0d59 (diff)
downloadqt-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.cpp27
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;