summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2018-11-27 17:21:13 +0200
committerJere Tuliniemi <jere.tuliniemi@qt.io>2018-11-27 15:38:24 +0000
commit56fdb004583675be4ae1fc69bdf808f52c3926d5 (patch)
tree88367f8b3b0fad1396117ca583746ecf60428cf8
parent0874a716139539864fba445863ef762a2a87576e (diff)
Fix presentation id crash and save for matdefs
Task-number: QT3DS-2753 Change-Id: I1dcdc1e1bd8b4ad8364c6c04affa4b1d6a0f8224 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/Authoring/Studio/Application/ProjectFile.cpp3
-rw-r--r--src/Authoring/Studio/Palettes/Inspector/InspectorControlModel.cpp4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/Authoring/Studio/Application/ProjectFile.cpp b/src/Authoring/Studio/Application/ProjectFile.cpp
index f70a1689..f314a312 100644
--- a/src/Authoring/Studio/Application/ProjectFile.cpp
+++ b/src/Authoring/Studio/Application/ProjectFile.cpp
@@ -35,6 +35,7 @@
#include "ClientDataModelBridge.h"
#include "Core.h"
#include "Doc.h"
+#include "IDocumentEditor.h"
#include "PresentationFile.h"
#include "IStudioRenderer.h"
#include "StudioUtils.h"
@@ -322,6 +323,8 @@ void ProjectFile::writePresentationId(const QString &id, const QString &src)
if (instancesToRefresh.size() > 0) {
g_StudioApp.GetCore()->GetDispatch()->FireImmediateRefreshInstance(
&(instancesToRefresh[0]), long(instancesToRefresh.size()));
+ for (auto &instance : instancesToRefresh)
+ doc->getSceneEditor()->saveIfMaterial(instance);
}
}
}
diff --git a/src/Authoring/Studio/Palettes/Inspector/InspectorControlModel.cpp b/src/Authoring/Studio/Palettes/Inspector/InspectorControlModel.cpp
index a1183c72..19348fc2 100644
--- a/src/Authoring/Studio/Palettes/Inspector/InspectorControlModel.cpp
+++ b/src/Authoring/Studio/Palettes/Inspector/InspectorControlModel.cpp
@@ -1435,8 +1435,10 @@ void InspectorControlModel::refreshRenderables()
for (int p = 0; p < group.controlElements.count(); ++p) {
QVariant& element = group.controlElements[p];
InspectorControlBase *property = element.value<InspectorControlBase *>();
- if (property->m_propertyType == qt3dsdm::AdditionalMetaDataType::Renderable)
+ if (property->m_property.Valid()
+ && property->m_propertyType == qt3dsdm::AdditionalMetaDataType::Renderable) {
updatePropertyValue(property);
+ }
}
}
}