From d661c2ed12e4962739e8ba68b5be5d3152ae5c2a Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 13 Nov 2020 16:51:07 +0200 Subject: [PATCH] QmlJS: Ensure QtQuick is the first import Some items will show empty property panel and cannot be reparented in QmlDesigner if the module that defines the item is imported before QtQuick module. This fix ensures QtQuick module is always imported first. Change-Id: Ie610fef681f5bf0ac62d1b879bb9306d4f7d293b Fixes: QDS-3115 Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- src/libs/qmljs/qmljsbind.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp index e405fd3ab59..2bcf4246a5b 100644 --- a/src/libs/qmljs/qmljsbind.cpp +++ b/src/libs/qmljs/qmljsbind.cpp @@ -228,7 +228,12 @@ bool Bind::visit(UiImport *ast) _doc->setLanguage(Dialect::QmlQtQuick2); } } - _imports += import; + + // Make sure QtQuick import is in the list before imports that might depend on it + if (import.name() == QLatin1String("QtQuick")) + _imports.prepend(import); + else + _imports += import; } else if (!ast->fileName.isEmpty()) { _imports += ImportInfo::pathImport(_doc->path(), ast->fileName.toString(), version, ast->importId.toString(), ast);