From 9c48362c5b712603babee2277ba6c8710bf6e73a Mon Sep 17 00:00:00 2001 From: Khushboo Mehta Date: Fri, 5 Dec 2025 14:04:53 +0100 Subject: [PATCH] fix: This fixes the crash in ObjectProxy Model when the QML Context becomes invalid --- toolkit/src/objectproxymodel.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/toolkit/src/objectproxymodel.cpp b/toolkit/src/objectproxymodel.cpp index bc38df4..cb89252 100644 --- a/toolkit/src/objectproxymodel.cpp +++ b/toolkit/src/objectproxymodel.cpp @@ -74,7 +74,8 @@ QVariant ObjectProxyModel::data(const QModelIndex& index, int role) const if (m_delegate && m_exposedRolesSet.contains(role)) { const auto proxy = this->proxyObject(index.row()); - return proxy->property(m_roleNames[role]); + if (proxy != nullptr) + return proxy->property(m_roleNames[role]); } return QIdentityProxyModel::data(index, role); @@ -253,9 +254,15 @@ QObject* ObjectProxyModel::proxyObject(int index) const if (entry.proxy) return entry.proxy.get(); + if (m_delegate == nullptr) + return nullptr; + auto creationContext = m_delegate->creationContext(); + if (creationContext != nullptr && !creationContext->isValid()) + return nullptr; + auto parentContext = creationContext - ? creationContext : m_delegate->engine()->rootContext(); + ? creationContext : m_delegate->engine()->rootContext(); auto context = new QQmlContext(parentContext); auto rowData = new QQmlPropertyMap(context);