|
@@ -18,6 +18,9 @@ from cura.Snapshot import Snapshot
|
|
|
from cura.Utils.Threading import call_on_qt_thread
|
|
|
|
|
|
from UM.i18n import i18nCatalog
|
|
|
+
|
|
|
+METADATA_OBJECTS_PATH = "metadata/objects"
|
|
|
+
|
|
|
catalog = i18nCatalog("cura")
|
|
|
|
|
|
|
|
@@ -53,6 +56,8 @@ class UFPWriter(MeshWriter):
|
|
|
archive = VirtualFile()
|
|
|
archive.openStream(stream, "application/x-ufp", OpenMode.WriteOnly)
|
|
|
|
|
|
+ self._writeObjectList(archive)
|
|
|
+
|
|
|
#Store the g-code from the scene.
|
|
|
archive.addContentType(extension = "gcode", mime_type = "text/x-gcode")
|
|
|
gcode_textio = StringIO() #We have to convert the g-code into bytes.
|
|
@@ -139,3 +144,15 @@ class UFPWriter(MeshWriter):
|
|
|
Logger.error(error_msg)
|
|
|
return False
|
|
|
return True
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def _writeObjectList(archive):
|
|
|
+ """Write a json list of object names to the METADATA_OBJECTS_PATH metadata field
|
|
|
+
|
|
|
+ To retrieve, use: `archive.getMetadata(METADATA_OBJECTS_PATH)`
|
|
|
+ """
|
|
|
+ objects_model = CuraApplication.getInstance().getObjectsModel()
|
|
|
+ object_metas = [{"name": item["name"]} for item in objects_model.items]
|
|
|
+
|
|
|
+ data = {METADATA_OBJECTS_PATH: object_metas}
|
|
|
+ archive.setMetadata(data)
|