QbsProjectManager: Support QML designer import paths

Task-number: QTCREATORBUG-20810
Change-Id: I1f096124f94d2c9f4ad51373bb39a212a108799f
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2018-08-20 14:48:02 +02:00
parent b6eb350a31
commit b68d943c92
3 changed files with 19 additions and 1 deletions

View File

@@ -175,7 +175,8 @@
If you want to use a different module in the Design mode than in your actual If you want to use a different module in the Design mode than in your actual
application for example to mockup C++ items, then you can use \c{QML_DESIGNER_IMPORT_PATH} application for example to mockup C++ items, then you can use \c{QML_DESIGNER_IMPORT_PATH}
in the \c{.pro} file. in the \c{.pro} file (for qmake projects), or declare and set the property
qmlDesignerImportPaths in your product (for Qbs projects).
Modules in the import paths defined in \c{QML_DESIGNER_IMPORT_PATH} will be Modules in the import paths defined in \c{QML_DESIGNER_IMPORT_PATH} will be
used only in the Design mode. used only in the Design mode.
For an example, see \l {Qt Quick Controls 2 - Contact List}. For an example, see \l {Qt Quick Controls 2 - Contact List}.

View File

@@ -188,6 +188,22 @@ ProjectImporter *QbsProject::projectImporter() const
return m_importer; return m_importer;
} }
QVariant QbsProject::additionalData(Id id, const Target *target) const
{
if (id == "QmlDesignerImportPath") {
const qbs::Project qbsProject = m_qbsProjects.value(const_cast<Target *>(target));
const qbs::ProjectData projectData = qbsProject.isValid()
? qbsProject.projectData() : qbs::ProjectData();
QStringList designerImportPaths;
foreach (const qbs::ProductData &product, projectData.allProducts()) {
designerImportPaths << product.properties()
.value("qmlDesignerImportPaths").toStringList();
}
return designerImportPaths;
}
return Project::additionalData(id, target);
}
QStringList QbsProject::filesGeneratedFrom(const QString &sourceFile) const QStringList QbsProject::filesGeneratedFrom(const QString &sourceFile) const
{ {
QStringList generated; QStringList generated;

View File

@@ -135,6 +135,7 @@ private:
void projectLoaded() override; void projectLoaded() override;
ProjectExplorer::ProjectImporter *projectImporter() const override; ProjectExplorer::ProjectImporter *projectImporter() const override;
QVariant additionalData(Core::Id id, const ProjectExplorer::Target *target) const final;
static bool ensureWriteableQbsFile(const QString &file); static bool ensureWriteableQbsFile(const QString &file);