From 0f5814e52f8b7ae2373dede03c16c0883589ba67 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 12 May 2017 12:58:15 +0200 Subject: [PATCH] Add setting_version and check against it This breaks all profiles since they have the wrong setting version, of course. Have to change that in every instance container now... Contributes to issue CURA-3427. --- cura/Settings/CuraContainerRegistry.py | 8 ++++++++ resources/definitions/fdmprinter.def.json | 1 + 2 files changed, 9 insertions(+) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 72b94a6f8d..91327ceb54 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -41,6 +41,14 @@ class CuraContainerRegistry(ContainerRegistry): if type(container) == ContainerStack: container = self._convertContainerStack(container) + if isinstance(container, InstanceContainer) and type(container) != type(self.getEmptyInstanceContainer()): + #Check against setting version of the definition. + required_setting_version = int(container.getDefinition().getMetaDataEntry("setting_version")) + actual_setting_version = int(container.getMetaDataEntry("setting_version", default = "0")) + if required_setting_version != actual_setting_version: + Logger.log("w", "Instance container {container_id} is outdated. Its setting version is {actual_setting_version} but it should be {required_setting_version}.".format(container_id = container.getId(), actual_setting_version = actual_setting_version, required_setting_version = required_setting_version)) + return #Don't add. + super().addContainer(container) ## Create a name that is not empty and unique diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7c8782de69..bd34d8c7d8 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8,6 +8,7 @@ "author": "Ultimaker B.V.", "category": "Ultimaker", "manufacturer": "Ultimaker", + "setting_version": 1, "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g", "visible": false, "has_materials": true,