aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmljs
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2014-09-03 16:07:46 +0200
committerEike Ziller <[email protected]>2014-09-03 16:08:02 +0200
commit49db3a450a6d15ae0327b8e3713920ac19320972 (patch)
tree309c83eb1dbb6321845d6a1db8fbc49428b20340 /src/libs/qmljs
parentafd56bd8ada761b87c40d80a07cd3b3766b2d2f8 (diff)
parentd030a960a0e6e1dda89e20b60e5252842fe83f49 (diff)
Merge remote-tracking branch 'origin/3.2'
Conflicts: qtcreator.pri qtcreator.qbs src/plugins/coreplugin/editormanager/editormanager.cpp src/plugins/cppeditor/cppeditor.cpp src/plugins/remotelinux/remotelinuxdebugsupport.cpp src/plugins/texteditor/basetexteditor.cpp Change-Id: I0da7c1cf2506b12d0563795aa8177fc45e97050f
Diffstat (limited to 'src/libs/qmljs')
-rw-r--r--src/libs/qmljs/qmljscheck.cpp2
-rw-r--r--src/libs/qmljs/qmljsdocument.cpp1
-rw-r--r--src/libs/qmljs/qmljsinterpreter.cpp10
-rw-r--r--src/libs/qmljs/qmljsinterpreter.h4
-rw-r--r--src/libs/qmljs/qmljslink.cpp18
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.cpp6
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.h2
-rw-r--r--src/libs/qmljs/qmljsplugindumper.cpp2
-rw-r--r--src/libs/qmljs/qmljsvalueowner.cpp2
9 files changed, 29 insertions, 18 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index 18eef295ece..3584c9a851b 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -123,7 +123,7 @@ public:
QString fileName = url.toLocalFile();
if (!fileName.isEmpty()) {
if (QFileInfo(fileName).isRelative()) {
- fileName.prepend(QDir::separator());
+ fileName.prepend(QLatin1Char('/'));
fileName.prepend(_doc->path());
}
if (!QFileInfo(fileName).exists())
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp
index d22e84e42ec..d956b434559 100644
--- a/src/libs/qmljs/qmljsdocument.cpp
+++ b/src/libs/qmljs/qmljsdocument.cpp
@@ -448,6 +448,7 @@ void Snapshot::insert(const Document::Ptr &document, bool allowInvalid)
void Snapshot::insertLibraryInfo(const QString &path, const LibraryInfo &info)
{
+ QTC_CHECK(!path.isEmpty());
QTC_CHECK(info.fingerprint() == info.calculateFingerprint());
_libraries.insert(QDir::cleanPath(path), info);
if (!info.wasFound()) return;
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index b02fda890b3..26a9b2358fa 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -2242,7 +2242,7 @@ ImportInfo ImportInfo::moduleImport(QString uri, ComponentVersion version,
info.m_type = ImportType::Library;
info.m_name = uri;
info.m_path = uri;
- info.m_path.replace(QLatin1Char('.'), QDir::separator());
+ info.m_path.replace(QLatin1Char('.'), QLatin1Char('/'));
info.m_version = version;
info.m_as = as;
info.m_ast = ast;
@@ -2257,7 +2257,7 @@ ImportInfo ImportInfo::pathImport(const QString &docPath, const QString &path,
QFileInfo importFileInfo(path);
if (!importFileInfo.isAbsolute())
- importFileInfo = QFileInfo(docPath + QDir::separator() + path);
+ importFileInfo = QFileInfo(docPath + QLatin1Char('/') + path);
info.m_path = importFileInfo.absoluteFilePath();
if (importFileInfo.isFile()) {
@@ -2369,8 +2369,10 @@ const Value *TypeScope::lookupMember(const QString &name, const Context *context
continue;
}
- if (const Value *v = import->lookupMember(name, context, foundInObject))
+ if (const Value *v = import->lookupMember(name, context, foundInObject)) {
+ i.used = true;
return v;
+ }
}
if (foundInObject)
*foundInObject = 0;
@@ -2548,7 +2550,7 @@ bool Imports::importFailed() const
return m_importFailed;
}
-QList<Import> Imports::all() const
+const QList<Import> &Imports::all() const
{
return m_imports;
}
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index f4721b99571..405a2f7a71f 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -1011,7 +1011,7 @@ public:
// Other: non-absolute path
QString name() const;
- // LibraryImport: uri with QDir::separator separator
+ // LibraryImport: uri with '/' separator
// Other: absoluteFilePath
QString path() const;
@@ -1088,7 +1088,7 @@ public:
QString nameForImportedObject(const ObjectValue *value, const Context *context) const;
bool importFailed() const;
- QList<Import> all() const;
+ const QList<Import> &all() const;
const TypeScope *typeScope() const;
const JSImportScope *jsImportScope() const;
diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp
index 5671cc1273b..d4e9da98b57 100644
--- a/src/libs/qmljs/qmljslink.cpp
+++ b/src/libs/qmljs/qmljslink.cpp
@@ -438,15 +438,21 @@ Import LinkPrivate::importNonFile(Document::Ptr doc, const ImportInfo &importInf
}
bool LinkPrivate::importLibrary(Document::Ptr doc,
- const QString &libraryPath,
+ const QString &libraryPath_,
Import *import,
const QString &importPath)
{
const ImportInfo &importInfo = import->info;
-
- const LibraryInfo libraryInfo = snapshot.libraryInfo(libraryPath);
- if (!libraryInfo.isValid())
- return false;
+ QString libraryPath = libraryPath_;
+
+ LibraryInfo libraryInfo = snapshot.libraryInfo(libraryPath);
+ if (!libraryInfo.isValid()) {
+ // try canonical path
+ libraryPath = QFileInfo(libraryPath).canonicalFilePath();
+ libraryInfo = snapshot.libraryInfo(libraryPath);
+ if (!libraryInfo.isValid())
+ return false;
+ }
import->libraryPath = libraryPath;
@@ -551,7 +557,7 @@ void LinkPrivate::loadQmldirComponents(ObjectValue *import, ComponentVersion ver
importedTypes.insert(component.typeName);
if (Document::Ptr importedDoc = snapshot.document(
- libraryPath + QDir::separator() + component.fileName)) {
+ libraryPath + QLatin1Char('/') + component.fileName)) {
if (ObjectValue *v = importedDoc->bind()->rootObjectValue())
import->setMember(component.typeName, v);
}
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
index 6bfffda64f8..fb2c24c4a42 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
@@ -118,9 +118,11 @@ ModelManagerInterface::ModelManagerInterface(QObject *parent)
qRegisterMetaType<QmlJS::PathAndLanguage>("QmlJS::PathAndLanguage");
qRegisterMetaType<QmlJS::PathsAndLanguages>("QmlJS::PathsAndLanguages");
- m_defaultProjectInfo.qtImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
+ m_defaultProjectInfo.qtImportsPath = QFileInfo(
+ QLibraryInfo::location(QLibraryInfo::ImportsPath)).canonicalFilePath();
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
- m_defaultProjectInfo.qtQmlPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
+ m_defaultProjectInfo.qtQmlPath = QFileInfo(
+ QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath)).canonicalFilePath();
#endif
m_defaultImportPaths << environmentImportPaths();
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h
index d440c78dc99..1a36a6e3c54 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.h
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h
@@ -90,8 +90,6 @@ public:
bool isNull() const
{ return project.isNull(); }
- QStringList completeImportPaths();
-
public: // attributes
QPointer<ProjectExplorer::Project> project;
QStringList sourceFiles;
diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp
index 687e3bedd20..f62428a565d 100644
--- a/src/libs/qmljs/qmljsplugindumper.cpp
+++ b/src/libs/qmljs/qmljsplugindumper.cpp
@@ -138,7 +138,7 @@ static QString makeAbsolute(const QString &path, const QString &base)
{
if (QFileInfo(path).isAbsolute())
return path;
- return QString::fromLatin1("%1%2%3").arg(base, QDir::separator(), path);
+ return QString::fromLatin1("%1/%3").arg(base, path);
}
void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri, const QString &importVersion)
diff --git a/src/libs/qmljs/qmljsvalueowner.cpp b/src/libs/qmljs/qmljsvalueowner.cpp
index 644b0c09ed7..41cd4b21210 100644
--- a/src/libs/qmljs/qmljsvalueowner.cpp
+++ b/src/libs/qmljs/qmljsvalueowner.cpp
@@ -365,6 +365,8 @@ SharedValueOwner::SharedValueOwner(SharedValueOwnerKind kind)
addFunction(_datePrototype, QLatin1String("getTime"), numberValue(), 0);
addFunction(_datePrototype, QLatin1String("getFullYear"), numberValue(), 0);
addFunction(_datePrototype, QLatin1String("getUTCFullYear"), numberValue(), 0);
+ addFunction(_datePrototype, QLatin1String("getDay"), numberValue(), 0);
+ addFunction(_datePrototype, QLatin1String("getUTCDay"), numberValue(), 0);
addFunction(_datePrototype, QLatin1String("getMonth"), numberValue(), 0);
addFunction(_datePrototype, QLatin1String("getUTCMonth"), numberValue(), 0);
addFunction(_datePrototype, QLatin1String("getDate"), numberValue(), 0);