forked from qt-creator/qt-creator
QmlDesigner: Fix try_emplace return value
Don't return a null pointer if the collection model was already inserted. try_emplace is always return an valid iterator. Change-Id: Icbb5ec16c1dd63630cbcb1d3fdd6a6a783a76548 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
@@ -29,13 +29,8 @@ void DesignSystemInterface::loadDesignSystem()
|
|||||||
|
|
||||||
CollectionModel *DesignSystemInterface::model(const QString &typeName)
|
CollectionModel *DesignSystemInterface::model(const QString &typeName)
|
||||||
{
|
{
|
||||||
if (auto collection = m_store->collection(typeName)) {
|
if (auto collection = m_store->collection(typeName))
|
||||||
auto itr = m_models.find(typeName);
|
|
||||||
if (itr != m_models.end())
|
|
||||||
return itr->second.get();
|
|
||||||
|
|
||||||
return createModel(typeName, collection);
|
return createModel(typeName, collection);
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@@ -75,14 +70,14 @@ QStringList DesignSystemInterface::collections() const
|
|||||||
|
|
||||||
CollectionModel *DesignSystemInterface::createModel(const QString &typeName, DSThemeManager *collection)
|
CollectionModel *DesignSystemInterface::createModel(const QString &typeName, DSThemeManager *collection)
|
||||||
{
|
{
|
||||||
auto [newItr, success] = m_models.try_emplace(typeName,
|
auto [iterator, inserted] = m_models.try_emplace(typeName,
|
||||||
makeLazyUniquePtr<CollectionModel>(collection,
|
makeLazyUniquePtr<CollectionModel>(collection,
|
||||||
m_store));
|
m_store));
|
||||||
if (success) {
|
if (inserted) {
|
||||||
// Otherwise the model will be deleted by the QML engine.
|
// Otherwise the model will be deleted by the QML engine.
|
||||||
QQmlEngine::setObjectOwnership(newItr->second.get(), QQmlEngine::CppOwnership);
|
QQmlEngine::setObjectOwnership(iterator->second.get(), QQmlEngine::CppOwnership);
|
||||||
return newItr->second.get();
|
|
||||||
}
|
}
|
||||||
return nullptr;
|
|
||||||
|
return iterator->second.get();
|
||||||
}
|
}
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
Reference in New Issue
Block a user