From 54470472d64674cbb78b2c5f204ee8b97c0abae7 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 14 Mar 2025 17:12:54 +0100 Subject: [PATCH] QmlDesigner: Hardcode imports for project storage We hardcode the possible imports for now. The default for usedImports is simply simports. TODO: Properly adjust the API. Possible imports are a project wide global "property" and do not belong into the model. Task-number: QDS-14925 Change-Id: I07246f449a00850717e8c7040c5d069a1685feee Reviewed-by: Marco Bubke --- .../libs/designercore/include/import.h | 4 +- .../libs/designercore/model/model.cpp | 57 ++++++++++++++++++- 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/libs/designercore/include/import.h b/src/plugins/qmldesigner/libs/designercore/include/import.h index 2d75371d761..ca9bd010192 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/import.h +++ b/src/plugins/qmldesigner/libs/designercore/include/import.h @@ -59,9 +59,9 @@ public: || second.m_version.isEmpty()); } - friend bool operator<(const Import &first, const Import &second) + friend auto operator<=>(const Import &first, const Import &second) { - return std::tie(first.m_url, first.m_type) < std::tie(second.m_url, second.m_type); + return std::tie(first.m_url, first.m_type) <=> std::tie(second.m_url, second.m_type); } friend QDebug operator<<(QDebug debug, const Import &import) diff --git a/src/plugins/qmldesigner/libs/designercore/model/model.cpp b/src/plugins/qmldesigner/libs/designercore/model/model.cpp index e3e98598364..17ebfae15ab 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/libs/designercore/model/model.cpp @@ -1788,10 +1788,63 @@ Storage::Info::ExportedTypeName Model::exportedTypeNameForMetaInfo(const NodeMet return {}; } +#ifdef QDS_USE_PROJECTSTORAGE + +namespace { + +QmlDesigner::Imports createQt6ModulesForProjectStorage() +{ + QmlDesigner::Imports imports = { + QmlDesigner::Import::createLibraryImport("QtQuick"), + QmlDesigner::Import::createLibraryImport("QtQuick.Controls"), + QmlDesigner::Import::createLibraryImport("QtQuick.Window"), + QmlDesigner::Import::createLibraryImport("QtQuick.VectorImage"), + QmlDesigner::Import::createLibraryImport("QtQuick.Layouts"), + QmlDesigner::Import::createLibraryImport("QtQuick.Timeline"), + QmlDesigner::Import::createLibraryImport("QtCharts"), + QmlDesigner::Import::createLibraryImport("QtGraphs"), + QmlDesigner::Import::createLibraryImport("QtInsightTracker"), + QmlDesigner::Import::createLibraryImport("QtMultimedia"), + + QmlDesigner::Import::createLibraryImport("QtQuick.VirtualKeyboard"), + QmlDesigner::Import::createLibraryImport("QtQuick.VirtualKeyboard.Components"), + QmlDesigner::Import::createLibraryImport("QtQuick.VirtualKeyboard.Layouts"), + QmlDesigner::Import::createLibraryImport("QtQuick.VirtualKeyboard.Settings"), + QmlDesigner::Import::createLibraryImport("QtQuick.VirtualKeyboard.Styles"), + + QmlDesigner::Import::createLibraryImport("QtQuick3D"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.Effects"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.Particles3D"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.Physics"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.Physics.Helpers"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.SpatialAudio"), + QmlDesigner::Import::createLibraryImport("QtQuick3D.Xr"), + + QmlDesigner::Import::createLibraryImport("QtQuickUltralite.Extras"), + QmlDesigner::Import::createLibraryImport("QtQuickUltralite.Layers"), + QmlDesigner::Import::createLibraryImport("QtQuickUltralite.Studio.Components"), + + QmlDesigner::Import::createLibraryImport("QtQuick.Studio.Components"), + QmlDesigner::Import::createLibraryImport("QtQuick.Studio.DesignEffects"), + QmlDesigner::Import::createLibraryImport("QtQuick.Studio.LogicHelper"), + + QmlDesigner::Import::createLibraryImport("Qt.SafeRenderer"), + + QmlDesigner::Import::createLibraryImport("SimulinkConnector")}; + + std::ranges::sort(imports); + return imports; +}; + +} //namespace + +#endif //QDS_USE_PROJECTSTORAGE + Imports Model::possibleImports() const { #ifdef QDS_USE_PROJECTSTORAGE - return {}; + static auto imports = createQt6ModulesForProjectStorage(); + return imports; #else return d->m_possibleImportList; #endif @@ -1800,7 +1853,7 @@ Imports Model::possibleImports() const Imports Model::usedImports() const { #ifdef QDS_USE_PROJECTSTORAGE - return {}; + return imports(); #else return d->m_usedImportList; #endif