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

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