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,