From 12bbc785a63c476d88a689979ae9f599441c0ad0 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 10 Jul 2024 16:10:22 +0200 Subject: [PATCH] QmlDesigner: Only allow a very limited number of imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only allow a very limited number of imports for QML lite designer. Change-Id: I4f96252fe66be53aa5da26ef9d6cb4509e6ec6d9 Reviewed-by: Henning Gründl --- .../itemlibrary/itemlibraryaddimportmodel.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp index 8b3f2dee79d..fe6c9058a73 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp @@ -7,6 +7,8 @@ #include #include +#include + #include #include #include @@ -73,6 +75,9 @@ void ItemLibraryAddImportModel::update(const Imports &possibleImports) const DesignerMcuManager &mcuManager = DesignerMcuManager::instance(); const bool isQtForMCUs = mcuManager.isMCUProject(); Imports filteredImports; + + const bool isLiteDesigner = QmlDesigner::QmlDesignerBasePlugin::isLiteModeEnabled(); + if (isQtForMCUs) { const QStringList mcuAllowedList = mcuManager.allowedImports(); const QStringList mcuBannedList = mcuManager.bannedImports(); @@ -82,6 +87,11 @@ void ItemLibraryAddImportModel::update(const Imports &possibleImports) || !import.url().startsWith("Qt")) && !mcuBannedList.contains(import.url()); }); + } else if (isLiteDesigner) { + const QStringList liteAllowedList = {"QtQuick", "QtQuick.Layouts", "QtQuick.Controls"}; + filteredImports = Utils::filtered(possibleImports, [&](const Import &import) { + return (liteAllowedList.contains(import.url()) || !import.url().startsWith("Qt")); + }); } else { filteredImports = possibleImports; }