From cccf8e4a75cabf1ab02ecaca22273d0461422be6 Mon Sep 17 00:00:00 2001 From: Janne Kangas Date: Mon, 7 Jan 2019 12:00:21 +0200 Subject: Check for datainput validity when updating datainput map MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Broken presentations might contain control bindings to datainputs that do not exist, so check that datainput name is actually listed in the global datainput map. Change-Id: I4d5fb1fa85464c6a60576d9f5d1e2a671f48512b Reviewed-by: Tomi Korpipää Reviewed-by: Miikka Heikkinen --- src/Authoring/Client/Code/Core/Doc/Doc.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/Authoring/Client/Code/Core/Doc/Doc.cpp') diff --git a/src/Authoring/Client/Code/Core/Doc/Doc.cpp b/src/Authoring/Client/Code/Core/Doc/Doc.cpp index 8659923f..ecb16fb8 100644 --- a/src/Authoring/Client/Code/Core/Doc/Doc.cpp +++ b/src/Authoring/Client/Code/Core/Doc/Doc.cpp @@ -3061,7 +3061,11 @@ void CDoc::UpdateDatainputMapForInstance(qt3dsdm::Qt3DSDMInstanceHandle inInstan else if (propName == QLatin1String("@timeline")) item.dataType = {qt3dsdm::DataModelDataType::Value::RangedNumber, true}; - g_StudioApp.m_dataInputDialogItems[diName]->ctrldElems.append(item); + // Check for DI name validity because we might have broken + // presentations with property control bindings set to non-existent + // datainputs + if (g_StudioApp.m_dataInputDialogItems.contains(diName)) + g_StudioApp.m_dataInputDialogItems[diName]->ctrldElems.append(item); } } } -- cgit v1.2.3