Added function to save a single stack to file.

CURA-2279
This commit is contained in:
Jaime van Kessel 2016-09-12 11:58:51 +02:00
parent edb1a143ea
commit 03c28537f2

View file

@ -327,29 +327,31 @@ class CuraApplication(QtApplication):
f.write(data) f.write(data)
for stack in ContainerRegistry.getInstance().findContainerStacks(): for stack in ContainerRegistry.getInstance().findContainerStacks():
if not stack.isDirty(): self.saveStack(stack)
continue
try: def saveStack(self, stack):
data = stack.serialize() if not stack.isDirty():
except NotImplementedError: return
continue try:
except Exception: data = stack.serialize()
Logger.logException("e", "An exception occurred when serializing container %s", instance.getId()) except NotImplementedError:
continue return
except Exception:
Logger.logException("e", "An exception occurred when serializing container %s", stack.getId())
return
mime_type = ContainerRegistry.getMimeTypeForContainer(type(stack)) mime_type = ContainerRegistry.getMimeTypeForContainer(type(stack))
file_name = urllib.parse.quote_plus(stack.getId()) + "." + mime_type.preferredSuffix file_name = urllib.parse.quote_plus(stack.getId()) + "." + mime_type.preferredSuffix
stack_type = stack.getMetaDataEntry("type", None) stack_type = stack.getMetaDataEntry("type", None)
path = None path = None
if not stack_type or stack_type == "machine": if not stack_type or stack_type == "machine":
path = Resources.getStoragePath(self.ResourceTypes.MachineStack, file_name) path = Resources.getStoragePath(self.ResourceTypes.MachineStack, file_name)
elif stack_type == "extruder_train": elif stack_type == "extruder_train":
path = Resources.getStoragePath(self.ResourceTypes.ExtruderStack, file_name) path = Resources.getStoragePath(self.ResourceTypes.ExtruderStack, file_name)
if path: if path:
stack.setPath(path) stack.setPath(path)
with SaveFile(path, "wt", -1, "utf-8") as f: with SaveFile(path, "wt", -1, "utf-8") as f:
f.write(data) f.write(data)
@pyqtSlot(str, result = QUrl) @pyqtSlot(str, result = QUrl)