diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 9a2282c8c0..aee9eccdd7 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -218,6 +218,7 @@ class ContainerManager(QObject): entries = entry_name.split("/") entry_name = entries.pop() + sub_item_changed = False if entries: root_name = entries.pop(0) root = container.getMetaDataEntry(root_name) @@ -226,12 +227,16 @@ class ContainerManager(QObject): for entry in entries: item = item.get(entries.pop(0), { }) + if item[entry_name] != entry_value: + sub_item_changed = True item[entry_name] = entry_value entry_name = root_name entry_value = root container.setMetaDataEntry(entry_name, entry_value) + if sub_item_changed: #If it was only a sub-item that has changed then the setMetaDataEntry won't correctly notice that something changed, and we must manually signal that the metadata changed. + container.metaDataChanged.emit(container) return True