summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Client/Code/Core/Doc/Doc.cpp
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2019-01-07 12:00:21 +0200
committerJanne Kangas <janne.kangas@qt.io>2019-01-10 09:10:15 +0000
commitcccf8e4a75cabf1ab02ecaca22273d0461422be6 (patch)
treeb7085bbc422a74ae0336511b38cb65001e72d4f0 /src/Authoring/Client/Code/Core/Doc/Doc.cpp
parentbba03d0d5bc9fcda59f71204b43bee88ee2bae91 (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/Doc/Doc.cpp')
-rw-r--r--src/Authoring/Client/Code/Core/Doc/Doc.cpp6
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);
}
}
}