QmlDesigner: Do not specify version if it is -1 -1

Otherwise isBasedOn works differently than isSubclassOf for file components.
File components do not have a version.

Change-Id: If7009538ef97d119a348da99ed07919136c8b6e1
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2022-11-16 14:11:06 +01:00
committed by Tim Jenssen
parent 7a65a16718
commit 626e1175a6

View File

@@ -1704,8 +1704,11 @@ bool NodeMetaInfo::isBasedOn(const NodeMetaInfo &metaInfo) const
if constexpr (useProjectStorage()) {
return m_projectStorage->isBasedOn(m_typeId, metaInfo.m_typeId);
} else {
return isValid()
&& isSubclassOf(metaInfo.typeName(), metaInfo.majorVersion(), metaInfo.minorVersion());
if (!isValid())
return false;
if (majorVersion() == -1 && minorVersion() == -1)
return isSubclassOf(metaInfo.typeName());
return isSubclassOf(metaInfo.typeName(), metaInfo.majorVersion(), metaInfo.minorVersion());
}
}
@@ -1714,11 +1717,14 @@ bool NodeMetaInfo::isBasedOn(const NodeMetaInfo &metaInfo1, const NodeMetaInfo &
if constexpr (useProjectStorage()) {
return m_projectStorage->isBasedOn(m_typeId, metaInfo1.m_typeId, metaInfo2.m_typeId);
} else {
return isValid()
&& (isSubclassOf(metaInfo1.typeName(), metaInfo1.majorVersion(), metaInfo1.minorVersion())
|| isSubclassOf(metaInfo2.typeName(),
metaInfo2.majorVersion(),
metaInfo2.minorVersion()));
if (!isValid())
return false;
if (majorVersion() == -1 && minorVersion() == -1)
return (isSubclassOf(metaInfo1.typeName()) || isSubclassOf(metaInfo2.typeName()));
return (
isSubclassOf(metaInfo1.typeName(), metaInfo1.majorVersion(), metaInfo1.minorVersion())
|| isSubclassOf(metaInfo2.typeName(), metaInfo2.majorVersion(), metaInfo2.minorVersion()));
}
}
@@ -1732,14 +1738,16 @@ bool NodeMetaInfo::isBasedOn(const NodeMetaInfo &metaInfo1,
metaInfo2.m_typeId,
metaInfo3.m_typeId);
} else {
return isValid()
&& (isSubclassOf(metaInfo1.typeName(), metaInfo1.majorVersion(), metaInfo1.minorVersion())
|| isSubclassOf(metaInfo2.typeName(),
metaInfo2.majorVersion(),
metaInfo2.minorVersion())
|| isSubclassOf(metaInfo3.typeName(),
metaInfo3.majorVersion(),
metaInfo3.minorVersion()));
if (!isValid())
return false;
if (majorVersion() == -1 && minorVersion() == -1)
return (isSubclassOf(metaInfo1.typeName()) || isSubclassOf(metaInfo2.typeName())
|| isSubclassOf(metaInfo3.typeName()));
return (
isSubclassOf(metaInfo1.typeName(), metaInfo1.majorVersion(), metaInfo1.minorVersion())
|| isSubclassOf(metaInfo2.typeName(), metaInfo2.majorVersion(), metaInfo2.minorVersion())
|| isSubclassOf(metaInfo3.typeName(), metaInfo3.majorVersion(), metaInfo3.minorVersion()));
}
}