forked from qt-creator/qt-creator
QmlDesigner: Fix issues with QtQuick3D versioning
Empty version no longer triggers error about version incompatibility when the import is set with Model::changeImports(). Adding QtQuick3D via the prompt inside 3D Edit view now correctly sets empty version instead of 6.x. Fixes: QDS-4494 Change-Id: I18e62ced6d6df45bc453431f8419bc853bf1e758 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -316,7 +316,14 @@ void Edit3DView::addQuick3DImport()
|
||||
const QList<Import> imports = model()->possibleImports();
|
||||
for (const auto &import : imports) {
|
||||
if (import.url() == "QtQuick3D") {
|
||||
if (!import.version().isEmpty() && import.majorVersion() >= 6) {
|
||||
// Prefer empty version number in Qt6 and beyond
|
||||
model()->changeImports({Import::createLibraryImport(
|
||||
import.url(), {}, import.alias(),
|
||||
import.importPaths())}, {});
|
||||
} else {
|
||||
model()->changeImports({import}, {});
|
||||
}
|
||||
|
||||
// Subcomponent manager update needed to make item library entries appear
|
||||
QmlDesignerPlugin::instance()->currentDesignDocument()
|
||||
|
@@ -2142,7 +2142,7 @@ void TextToModelMerger::collectSemanticErrorsAndWarnings(QList<DocumentMessage>
|
||||
for (const Import &import : m_rewriterView->model()->imports()) {
|
||||
if (import.isLibraryImport() && import.url() == "QtQuick3D") {
|
||||
const QString version = getHighestPossibleImport(import.url());
|
||||
if (Import::majorFromVersion(version) > import.majorVersion()) {
|
||||
if (!import.version().isEmpty() && Import::majorFromVersion(version) > import.majorVersion()) {
|
||||
errors->append(DocumentMessage(
|
||||
QObject::tr(
|
||||
"The selected version of the Qt Quick 3D module is not supported with the selected Qt version.")
|
||||
|
Reference in New Issue
Block a user