aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2018-02-26 14:26:07 +0100
committerUlf Hermann <ulf.hermann@qt.io>2018-02-26 13:31:23 +0000
commit0474216e2ffa72cc67fe17964466b967de1c5be9 (patch)
tree6068321007163808d1fcca65501788c9a1a56e2f
parentf60641f3d3d6da91dcba8cbe2c531d529bfcbc47 (diff)
QmlProject: Fix import paths for code model
This fixes a regression introduced by 30638df441515901c6d43b2c67a5ca4a53eaf814. Custom import paths have to be absolute for the code model. Change-Id: I232229fa58c3900fe684ca4529b2ed08bf93e8be Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp13
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.h1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp13
3 files changed, 14 insertions, 13 deletions
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 471ef4a13b..26e5060b0f 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -177,7 +177,7 @@ void QmlProject::refresh(RefreshOptions options)
QmlJS::ModelManagerInterface::ProjectInfo projectInfo =
modelManager->defaultProjectInfoForProject(this);
- foreach (const QString &searchPath, customImportPaths())
+ foreach (const QString &searchPath, makeAbsolute(canonicalProjectDir(), customImportPaths()))
projectInfo.importPaths.maybeInsert(Utils::FileName::fromString(searchPath),
QmlJS::Dialect::Qml);
@@ -249,6 +249,17 @@ void QmlProject::refreshProjectFile()
refresh(QmlProject::ProjectFile | Files);
}
+QStringList QmlProject::makeAbsolute(const Utils::FileName &path, const QStringList &relativePaths)
+{
+ if (path.isEmpty())
+ return relativePaths;
+
+ const QDir baseDir(path.toString());
+ return Utils::transform(relativePaths, [&baseDir](const QString &path) {
+ return QDir::cleanPath(baseDir.absoluteFilePath(path));
+ });
+}
+
void QmlProject::refreshFiles(const QSet<QString> &/*added*/, const QSet<QString> &removed)
{
refresh(Files);
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 4ecd7b226e..1728aad36f 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -75,6 +75,7 @@ public:
void refreshProjectFile();
+ static QStringList makeAbsolute(const Utils::FileName &path, const QStringList &relativePaths);
protected:
RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) override;
bool setupTarget(ProjectExplorer::Target *t) override;
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 6015d19f9e..9e8df4546f 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -121,17 +121,6 @@ QString QmlProjectRunConfiguration::executable() const
return qmlscene.isEmpty() ? QString("qmlscene") : qmlscene;
}
-static QStringList makeAbsolute(const Utils::FileName &path, const QStringList &relativePaths)
-{
- if (path.isEmpty())
- return relativePaths;
-
- const QDir baseDir(path.toString());
- return Utils::transform(relativePaths, [&baseDir](const QString &path) {
- return QDir::cleanPath(baseDir.absoluteFilePath(path));
- });
-}
-
QString QmlProjectRunConfiguration::commandLineArguments() const
{
// arguments in .user file
@@ -143,7 +132,7 @@ QString QmlProjectRunConfiguration::commandLineArguments() const
// arguments from .qmlproject file
const QmlProject *project = static_cast<QmlProject *>(currentTarget->project());
foreach (const QString &importPath,
- makeAbsolute(project->targetDirectory(currentTarget), project->customImportPaths())) {
+ QmlProject::makeAbsolute(project->targetDirectory(currentTarget), project->customImportPaths())) {
Utils::QtcProcess::addArg(&args, QLatin1String("-I"), osType);
Utils::QtcProcess::addArg(&args, importPath, osType);
}