summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2018-11-13 12:34:38 +0200
committerJere Tuliniemi <jere.tuliniemi@qt.io>2018-11-15 11:13:48 +0000
commitd23f25123af9351709f7f2b2f3c1951d218487f0 (patch)
treef683ab073c8650430afdb3629ade4827c4bd82ff /src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
parent1aa65c0f4721bf0083352e3bf20738d39cac807d (diff)
Save matdef after image DnD
Task-number: QT3DS-2108 Change-Id: I6ad3a8097e7b62c06f965b56b0bf8107b734164c Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp')
-rw-r--r--src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
index 418c442c..75d4a1b9 100644
--- a/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
+++ b/src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp
@@ -1984,6 +1984,13 @@ public:
return getMaterialDirectoryPath() + actualMaterialName + QStringLiteral(".materialdef");
}
+ void writeMaterialFile(Qt3DSDMInstanceHandle instance, bool createNewFile) override
+ {
+ const auto materialName = GetName(instance).toQString();
+ writeMaterialFile(instance, materialName, createNewFile,
+ getFilePathFromMaterialName(materialName));
+ }
+
Q3DStudio::CString writeMaterialFile(Qt3DSDMInstanceHandle instance,
const QString &materialName,
bool createNewFile,
@@ -2058,6 +2065,25 @@ public:
&& name != QLatin1String("timebartext");
}
+ void saveIfMaterial(Qt3DSDMInstanceHandle instance)
+ {
+ Qt3DSDMInstanceHandle material;
+ if (m_Bridge.isInsideMaterialContainer(instance)) {
+ const auto type = m_Bridge.GetObjectType(instance);
+ if (type == OBJTYPE_MATERIAL || type == OBJTYPE_CUSTOMMATERIAL) {
+ material = instance;
+ } else {
+ const auto parent = m_Bridge.GetParentInstance(instance);
+ const auto parentType = m_Bridge.GetObjectType(parent);
+ if (parentType == OBJTYPE_MATERIAL || parentType == OBJTYPE_CUSTOMMATERIAL)
+ material = parent;
+ }
+ }
+
+ if (material.Valid())
+ writeMaterialFile(material, false);
+ }
+
void saveMaterial(Qt3DSDMInstanceHandle instance, QFile &file)
{
SValue value;