qmljs: phase out qtImportPaths

builtins were always using qtimportPath, which is now being removed,
so prefer qtQmlPath.

Change-Id: I99d9214c2188507859f27b729c027aaf77eb579e
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
This commit is contained in:
Fawzi Mohamed
2014-11-24 18:03:23 +01:00
committed by Fawzi Mohamed
parent ebea99d399
commit addb1c171a
2 changed files with 12 additions and 9 deletions

View File

@@ -1324,6 +1324,8 @@ LibraryInfo ModelManagerInterface::builtins(const Document::Ptr &doc) const
ProjectInfo info = projectInfoForPath(doc->path()); ProjectInfo info = projectInfoForPath(doc->path());
if (!info.isValid()) if (!info.isValid())
return LibraryInfo(); return LibraryInfo();
if (!info.qtQmlPath.isEmpty())
return m_validSnapshot.libraryInfo(info.qtQmlPath);
return m_validSnapshot.libraryInfo(info.qtImportsPath); return m_validSnapshot.libraryInfo(info.qtImportsPath);
} }

View File

@@ -93,34 +93,35 @@ void PluginDumper::scheduleMaybeRedumpBuiltins(const QmlJS::ModelManagerInterfac
void PluginDumper::onLoadBuiltinTypes(const QmlJS::ModelManagerInterface::ProjectInfo &info, bool force) void PluginDumper::onLoadBuiltinTypes(const QmlJS::ModelManagerInterface::ProjectInfo &info, bool force)
{ {
if (info.qmlDumpPath.isEmpty() || info.qtImportsPath.isEmpty()) if (info.qmlDumpPath.isEmpty() || (info.qtImportsPath.isEmpty() && info.qtQmlPath.isEmpty()))
return; return;
const QString importsPath = QDir::cleanPath(info.qtImportsPath); const QString baseImportsPath = info.qtQmlPath.isEmpty() ? info.qtImportsPath : info.qtQmlPath;
const QString importsPath = QDir::cleanPath(baseImportsPath);
if (m_runningQmldumps.values().contains(importsPath)) if (m_runningQmldumps.values().contains(importsPath))
return; return;
LibraryInfo builtinInfo; LibraryInfo builtinInfo;
if (!force) { if (!force) {
const Snapshot snapshot = m_modelManager->snapshot(); const Snapshot snapshot = m_modelManager->snapshot();
builtinInfo = snapshot.libraryInfo(info.qtImportsPath); builtinInfo = snapshot.libraryInfo(baseImportsPath);
if (builtinInfo.isValid()) if (builtinInfo.isValid())
return; return;
} }
builtinInfo = LibraryInfo(LibraryInfo::Found); builtinInfo = LibraryInfo(LibraryInfo::Found);
m_modelManager->updateLibraryInfo(info.qtImportsPath, builtinInfo); m_modelManager->updateLibraryInfo(info.qtImportsPath, builtinInfo);
// prefer QTDIR/imports/builtins.qmltypes if available // prefer QTDIR/qml/builtins.qmltypes if available
const QString builtinQmltypesPath = info.qtImportsPath + QLatin1String("/builtins.qmltypes"); const QString builtinQmltypesPath = baseImportsPath + QLatin1String("/builtins.qmltypes");
if (QFile::exists(builtinQmltypesPath)) { if (QFile::exists(builtinQmltypesPath)) {
loadQmltypesFile(QStringList(builtinQmltypesPath), info.qtImportsPath, builtinInfo); loadQmltypesFile(QStringList(builtinQmltypesPath), baseImportsPath, builtinInfo);
return; return;
} }
// QTDIR/imports/QtQuick1/builtins.qmltypes was used in developer builds of 5.0.0, 5.0.1 // QTDIR/imports/QtQuick1/builtins.qmltypes was used in developer builds of 5.0.0, 5.0.1
const QString builtinQmltypesPath2 = info.qtImportsPath const QString builtinQmltypesPath2 = info.qtImportsPath
+ QLatin1String("/QtQuick1/builtins.qmltypes"); + QLatin1String("/QtQuick1/builtins.qmltypes");
if (QFile::exists(builtinQmltypesPath2)) { if (QFile::exists(builtinQmltypesPath2)) {
loadQmltypesFile(QStringList(builtinQmltypesPath2), info.qtImportsPath, builtinInfo); loadQmltypesFile(QStringList(builtinQmltypesPath2), baseImportsPath, builtinInfo);
return; return;
} }
@@ -131,8 +132,8 @@ void PluginDumper::onLoadBuiltinTypes(const QmlJS::ModelManagerInterface::Projec
connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError))); connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError)));
QStringList args(QLatin1String("--builtins")); QStringList args(QLatin1String("--builtins"));
process->start(info.qmlDumpPath, args); process->start(info.qmlDumpPath, args);
m_runningQmldumps.insert(process, info.qtImportsPath); m_runningQmldumps.insert(process, baseImportsPath);
m_qtToInfo.insert(info.qtImportsPath, info); m_qtToInfo.insert(baseImportsPath, info);
} }
static QString makeAbsolute(const QString &path, const QString &base) static QString makeAbsolute(const QString &path, const QString &base)