diff options
author | Janne Kangas <janne.kangas@qt.io> | 2019-01-07 12:00:21 +0200 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2019-01-10 09:10:15 +0000 |
commit | cccf8e4a75cabf1ab02ecaca22273d0461422be6 (patch) | |
tree | b7085bbc422a74ae0336511b38cb65001e72d4f0 /src/Authoring/Client/Code/Core | |
parent | bba03d0d5bc9fcda59f71204b43bee88ee2bae91 (diff) |
Check for datainput validity when updating datainput map
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ää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Client/Code/Core')
-rw-r--r-- | src/Authoring/Client/Code/Core/Doc/Doc.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
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); } } } |