From 108b22932bc2f5acdf50de59740b13df84f82195 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Aug 2019 14:55:30 +0200 Subject: [PATCH] Override saveDirtyContainers with Cura specific logic --- cura/Settings/CuraContainerRegistry.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index bc0d99ead9..c563568cba 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -396,6 +396,25 @@ class CuraContainerRegistry(ContainerRegistry): return None + @override(ContainerRegistry) + def saveDirtyContainers(self) -> None: + # Lock file for "more" atomically loading and saving to/from config dir. + with self.lockFile(): + # Save base files first + for instance in self.findDirtyContainers(container_type=InstanceContainer): + if instance.getMetaDataEntry("removed"): + continue + if instance.getId() == instance.getMetaData().get("base_file"): + self.saveContainer(instance) + + for instance in self.findDirtyContainers(container_type=InstanceContainer): + if instance.getMetaDataEntry("removed"): + continue + self.saveContainer(instance) + + for stack in self.findContainerStacks(): + self.saveContainer(stack) + ## Gets a list of profile writer plugins # \return List of tuples of (plugin_id, meta_data). def _getIOPlugins(self, io_type):