diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2018-11-13 12:34:38 +0200 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2018-11-15 11:13:48 +0000 |
commit | d23f25123af9351709f7f2b2f3c1951d218487f0 (patch) | |
tree | f683ab073c8650430afdb3629ade4827c4bd82ff /src/Authoring/Client/Code/Core/Doc/DocumentEditor.cpp | |
parent | 1aa65c0f4721bf0083352e3bf20738d39cac807d (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.cpp | 26 |
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; |