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.
This commit is contained in:
Ghostkeeper 2017-05-12 12:58:15 +02:00
parent 6fd3bc4ba4
commit 0f5814e52f
No known key found for this signature in database
GPG Key ID: C5F96EE2BC0F7E75
2 changed files with 9 additions and 0 deletions

View File

@ -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

View File

@ -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,