forked from qt-creator/qt-creator
qmljs: set cpp object to the latest version exported
m_objectsByQualifiedName did not prefer the latest meta object revision, as consequence at type exported both anonymously and with a name, would pick up one version randomly. Change-Id: I91baf2729d0a0bda61205a62d9a38d04b4da058e Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
This commit is contained in:
@@ -1487,6 +1487,7 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
|
||||
if (m_objectsByQualifiedName.contains(key))
|
||||
continue;
|
||||
|
||||
ComponentVersion cppVersion;
|
||||
foreach (const FakeMetaObject::Export &bestExport, bestExports) {
|
||||
QString name = bestExport.type;
|
||||
bool exported = true;
|
||||
@@ -1501,7 +1502,10 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
|
||||
fmoo.originId);
|
||||
|
||||
// use package.cppname importversion as key
|
||||
m_objectsByQualifiedName.insert(key, newComponent);
|
||||
if (cppVersion <= bestExport.version) {
|
||||
cppVersion = bestExport.version;
|
||||
m_objectsByQualifiedName.insert(key, newComponent);
|
||||
}
|
||||
if (exported) {
|
||||
if (!exportedObjects.contains(name) // we might have the same type in different versions
|
||||
|| (newComponent->componentVersion() > exportedObjects.value(name)->componentVersion()))
|
||||
|
||||
Reference in New Issue
Block a user