diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp index 19408dbb091726348fec41b1343738d325b86efb..8abc6eac7d60d5dbabe390cd974ebc3cd5109550 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp @@ -10,6 +10,7 @@ class QmlProjectItemPrivate : public QObject { public: QString sourceDirectory; QStringList importPaths; + QStringList absoluteImportPaths; QList<QmlFileFilterItem*> qmlFileFilters() const; @@ -77,23 +78,34 @@ void QmlProjectItem::setSourceDirectory(const QString &directoryPath) } } + setImportPaths(d->importPaths); + emit sourceDirectoryChanged(); } QStringList QmlProjectItem::importPaths() const { Q_D(const QmlProjectItem); - return d->importPaths; + return d->absoluteImportPaths; } void QmlProjectItem::setImportPaths(const QStringList &importPaths) { Q_D(QmlProjectItem); - if (d->importPaths == importPaths) + if (d->importPaths != importPaths) + d->importPaths = importPaths; + + // convert to absolute paths + QStringList absoluteImportPaths; + const QDir sourceDir(sourceDirectory()); + foreach (const QString &importPath, importPaths) + absoluteImportPaths += QDir::cleanPath(sourceDir.absoluteFilePath(importPath)); + + if (d->absoluteImportPaths == absoluteImportPaths) return; - d->importPaths = importPaths; + d->absoluteImportPaths = absoluteImportPaths; emit importPathsChanged(); }