QmlJS: Make the project always return absolute import paths.

Task-number: QTCREATORBUG-1728
Reviewed-by: Kai Koehne
This commit is contained in:
Christian Kamm
2010-06-24 10:47:52 +02:00
parent d2944d2250
commit 0fd0e6a9d0

View File

@@ -10,6 +10,7 @@ class QmlProjectItemPrivate : public QObject {
public: public:
QString sourceDirectory; QString sourceDirectory;
QStringList importPaths; QStringList importPaths;
QStringList absoluteImportPaths;
QList<QmlFileFilterItem*> qmlFileFilters() const; QList<QmlFileFilterItem*> qmlFileFilters() const;
@@ -77,23 +78,34 @@ void QmlProjectItem::setSourceDirectory(const QString &directoryPath)
} }
} }
setImportPaths(d->importPaths);
emit sourceDirectoryChanged(); emit sourceDirectoryChanged();
} }
QStringList QmlProjectItem::importPaths() const QStringList QmlProjectItem::importPaths() const
{ {
Q_D(const QmlProjectItem); Q_D(const QmlProjectItem);
return d->importPaths; return d->absoluteImportPaths;
} }
void QmlProjectItem::setImportPaths(const QStringList &importPaths) void QmlProjectItem::setImportPaths(const QStringList &importPaths)
{ {
Q_D(QmlProjectItem); 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; return;
d->importPaths = importPaths; d->absoluteImportPaths = absoluteImportPaths;
emit importPathsChanged(); emit importPathsChanged();
} }