QmlJs: fixes bug in module import search.

Task-number: QTCREATORBUG-16425
Change-Id: I5fdd1a5882730c0f52dba5edb8cf8ca7092a4409
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
This commit is contained in:
Marco Benelli
2016-06-23 10:48:54 +02:00
parent 8562abbb56
commit 8f474cbfbe

View File

@@ -250,12 +250,8 @@ QString QmlJS::modulePath(const QString &name, const QString &version,
QString candidate; QString candidate;
for (QString ver = sanitizedVersion; ; ver.remove(re)) { for (QString ver = sanitizedVersion; !ver.isEmpty(); ver.remove(re)) {
for (const QString &path: importPaths) { for (const QString &path: importPaths) {
if (ver.isEmpty()) {
candidate = QDir::cleanPath(QString::fromLatin1("%1/%2").arg(path, mkpath(parts)));
return QDir(candidate).exists() ? candidate : QString();
} else {
for (int i = parts.count() - 1; i >= 0; --i) { for (int i = parts.count() - 1; i >= 0; --i) {
candidate = QDir::cleanPath( candidate = QDir::cleanPath(
QString::fromLatin1("%1/%2.%3/%4").arg(path, QString::fromLatin1("%1/%2.%3/%4").arg(path,
@@ -267,7 +263,15 @@ QString QmlJS::modulePath(const QString &name, const QString &version,
} }
} }
} }
// Version is empty
for (const QString &path: importPaths) {
candidate = QDir::cleanPath(QString::fromLatin1("%1/%2").arg(path, mkpath(parts)));
if (QDir(candidate).exists())
return candidate;
} }
return QString();
} }
bool QmlJS::isValidBuiltinPropertyType(const QString &name) bool QmlJS::isValidBuiltinPropertyType(const QString &name)