Add cura: namespace before setting keys, and store the rest in um_node.metadata

This retains per-node metadata entries.

Contributes to issue CURA-7615.
This commit is contained in:
Ghostkeeper 2021-02-08 17:37:38 +01:00
parent c89a397e59
commit b815d63096
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A
2 changed files with 7 additions and 3 deletions

View file

@ -1,4 +1,4 @@
# Copyright (c) 2019 Ultimaker B.V.
# Copyright (c) 2021 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import os.path
@ -178,7 +178,7 @@ class ThreeMFReader(MeshReader):
if key in known_setting_keys:
setting_container.setProperty(key, "value", setting_value)
else:
Logger.log("w", "Unable to set setting %s", key)
um_node.metadata[key] = settings[key]
if len(um_node.getChildren()) > 0 and um_node.getMeshData() is None:
if len(um_node.getAllChildren()) == 1:

View file

@ -109,7 +109,11 @@ class ThreeMFWriter(MeshWriter):
# Get values for all changed settings & save them.
for key in changed_setting_keys:
savitar_node.setSetting(key, str(stack.getProperty(key, "value")))
savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value")))
# Store the metadata.
for key, value in um_node.metadata.items():
savitar_node.setSetting(key, value)
for child_node in um_node.getChildren():
# only save the nodes on the active build plate