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();
|
const QList<Import> imports = model()->possibleImports();
|
||||||
for (const auto &import : imports) {
|
for (const auto &import : imports) {
|
||||||
if (import.url() == "QtQuick3D") {
|
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}, {});
|
model()->changeImports({import}, {});
|
||||||
|
}
|
||||||
|
|
||||||
// Subcomponent manager update needed to make item library entries appear
|
// Subcomponent manager update needed to make item library entries appear
|
||||||
QmlDesignerPlugin::instance()->currentDesignDocument()
|
QmlDesignerPlugin::instance()->currentDesignDocument()
|
||||||
|
@@ -2142,7 +2142,7 @@ void TextToModelMerger::collectSemanticErrorsAndWarnings(QList<DocumentMessage>
|
|||||||
for (const Import &import : m_rewriterView->model()->imports()) {
|
for (const Import &import : m_rewriterView->model()->imports()) {
|
||||||
if (import.isLibraryImport() && import.url() == "QtQuick3D") {
|
if (import.isLibraryImport() && import.url() == "QtQuick3D") {
|
||||||
const QString version = getHighestPossibleImport(import.url());
|
const QString version = getHighestPossibleImport(import.url());
|
||||||
if (Import::majorFromVersion(version) > import.majorVersion()) {
|
if (!import.version().isEmpty() && Import::majorFromVersion(version) > import.majorVersion()) {
|
||||||
errors->append(DocumentMessage(
|
errors->append(DocumentMessage(
|
||||||
QObject::tr(
|
QObject::tr(
|
||||||
"The selected version of the Qt Quick 3D module is not supported with the selected Qt version.")
|
"The selected version of the Qt Quick 3D module is not supported with the selected Qt version.")
|
||||||
|
Reference in New Issue
Block a user