Browse Source

Merge branch 'main' into CURA-7812-decrease-Qml-singletons

Saumya Jain 1 year ago
parent
commit
db19f53943

+ 2 - 1
conanfile.py

@@ -518,7 +518,8 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
         del self.info.options.cloud_api_version
         del self.info.options.display_name
         del self.info.options.cura_debug_mode
-        self.options.rm_safe("enable_i18n")
+        if self.options.get_safe("enable_i18n", False):
+            del self.info.options.enable_i18n
 
         # TODO: Use the hash of requirements.txt and requirements-ultimaker.txt, Because changing these will actually result in a different
         #  Cura. This is needed because the requirements.txt aren't managed by Conan and therefor not resolved in the package_id. This isn't

+ 95 - 0
plugins/VersionUpgrade/VersionUpgrade56to57/VersionUpgrade56to57.py

@@ -0,0 +1,95 @@
+# Copyright (c) 2024 UltiMaker
+# Cura is released under the terms of the LGPLv3 or higher.
+
+import configparser
+from typing import Tuple, List
+import io
+from UM.VersionUpgrade import VersionUpgrade
+
+_REMOVED_SETTINGS = {
+    "support_interface_skip_height",
+}
+_NEW_SETTING_VERSION = "23"
+
+
+class VersionUpgrade56to57(VersionUpgrade):
+    def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+        """
+        Upgrades preferences to remove from the visibility list the settings that were removed in this version.
+        It also changes the preferences to have the new version number.
+
+        This removes any settings that were removed in the new Cura version.
+        :param serialized: The original contents of the preferences file.
+        :param filename: The file name of the preferences file.
+        :return: A list of new file names, and a list of the new contents for
+        those files.
+        """
+        parser = configparser.ConfigParser(interpolation = None)
+        parser.read_string(serialized)
+
+        # Update version number.
+        parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+        # Remove deleted settings from the visible settings list.
+        if "general" in parser and "visible_settings" in parser["general"]:
+            visible_settings = set(parser["general"]["visible_settings"].split(";"))
+            for removed in _REMOVED_SETTINGS:
+                if removed in visible_settings:
+                    visible_settings.remove(removed)
+
+            parser["general"]["visible_settings"] = ";".join(visible_settings)
+
+        result = io.StringIO()
+        parser.write(result)
+        return [filename], [result.getvalue()]
+
+    def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+        """
+        Upgrades instance containers to remove the settings that were removed in this version.
+        It also changes the instance containers to have the new version number.
+
+        This removes any settings that were removed in the new Cura version and updates settings that need to be updated
+        with a new value.
+
+        :param serialized: The original contents of the instance container.
+        :param filename: The original file name of the instance container.
+        :return: A list of new file names, and a list of the new contents for
+        those files.
+        """
+        parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
+        parser.read_string(serialized)
+
+        # Update version number.
+        parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+        if "values" in parser:
+            # Remove deleted settings from the instance containers.
+            for removed in _REMOVED_SETTINGS:
+                if removed in parser["values"]:
+                    del parser["values"][removed]
+
+        result = io.StringIO()
+        parser.write(result)
+        return [filename], [result.getvalue()]
+
+    def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+        """
+        Upgrades stacks to have the new version number.
+
+        :param serialized: The original contents of the stack.
+        :param filename: The original file name of the stack.
+        :return: A list of new file names, and a list of the new contents for
+        those files.
+        """
+        parser = configparser.ConfigParser(interpolation = None)
+        parser.read_string(serialized)
+
+        # Update version number.
+        if "metadata" not in parser:
+            parser["metadata"] = {}
+
+        parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+        result = io.StringIO()
+        parser.write(result)
+        return [filename], [result.getvalue()]

+ 61 - 0
plugins/VersionUpgrade/VersionUpgrade56to57/__init__.py

@@ -0,0 +1,61 @@
+# Copyright (c) 2024 UltiMaker
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from typing import Any, Dict, TYPE_CHECKING
+
+from . import VersionUpgrade56to57
+
+if TYPE_CHECKING:
+    from UM.Application import Application
+
+upgrade = VersionUpgrade56to57.VersionUpgrade56to57()
+
+
+def getMetaData() -> Dict[str, Any]:
+    return {
+        "version_upgrade": {
+            # From                           To                              Upgrade function
+            ("preferences", 7000022):        ("preferences", 7000023,        upgrade.upgradePreferences),
+            ("machine_stack", 6000022):      ("machine_stack", 6000023,      upgrade.upgradeStack),
+            ("extruder_train", 6000022):     ("extruder_train", 6000023,     upgrade.upgradeStack),
+            ("definition_changes", 4000022): ("definition_changes", 4000023, upgrade.upgradeInstanceContainer),
+            ("quality_changes", 4000022):    ("quality_changes", 4000023,    upgrade.upgradeInstanceContainer),
+            ("quality", 4000022):            ("quality", 4000023,            upgrade.upgradeInstanceContainer),
+            ("user", 4000022):               ("user", 4000023,               upgrade.upgradeInstanceContainer),
+            ("intent", 4000022):             ("intent", 4000023,             upgrade.upgradeInstanceContainer),
+        },
+        "sources": {
+            "preferences": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"."}
+            },
+            "machine_stack": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./machine_instances"}
+            },
+            "extruder_train": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./extruders"}
+            },
+            "definition_changes": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./definition_changes"}
+            },
+            "quality_changes": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./quality_changes"}
+            },
+            "quality": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./quality"}
+            },
+            "user": {
+                "get_version": upgrade.getCfgVersion,
+                "location": {"./user"}
+            }
+        }
+    }
+
+
+def register(app: "Application") -> Dict[str, Any]:
+    return {"version_upgrade": upgrade}

+ 8 - 0
plugins/VersionUpgrade/VersionUpgrade56to57/plugin.json

@@ -0,0 +1,8 @@
+{
+    "name": "Version Upgrade 5.6 to 5.7",
+    "author": "UltiMaker",
+    "version": "1.0.0",
+    "description": "Upgrades configurations from Cura 5.6 to Cura 5.7.",
+    "api": 8,
+    "i18n-catalog": "cura"
+}

+ 0 - 1
resources/definitions/ankermake_m5.def.json

@@ -112,7 +112,6 @@
         "support_interface_density": { "value": 33.333 },
         "support_interface_enable": { "value": true },
         "support_interface_pattern": { "value": "'grid'" },
-        "support_interface_skip_height": { "value": 0.2 },
         "support_roof_enable": { "value": true },
         "support_xy_distance": { "value": "wall_line_width_0 * 2" },
         "support_xy_distance_overhang": { "value": "wall_line_width_0" },

+ 0 - 1
resources/definitions/artillery_base.def.json

@@ -114,7 +114,6 @@
         "support_interface_enable": { "value": true },
         "support_interface_height": { "value": "layer_height * 4" },
         "support_interface_pattern": { "value": "'grid'" },
-        "support_interface_skip_height": { "value": 0.2 },
         "support_xy_distance": { "value": "wall_line_width_0 * 2" },
         "support_xy_distance_overhang": { "value": "wall_line_width_0" },
         "support_xy_overrides_z": { "value": "'xy_overrides_z'" },

+ 0 - 1
resources/definitions/atmat_signal_pro_base.def.json

@@ -154,7 +154,6 @@
         "support_infill_rate": { "value": "20" },
         "support_interface_enable": { "value": "True" },
         "support_interface_height": { "value": "1" },
-        "support_interface_skip_height": { "value": "layer_height" },
         "support_join_distance": { "value": "1" },
         "support_offset": { "value": "1.5" },
         "support_pattern": { "default_value": "zigzag" },

+ 0 - 1
resources/definitions/biqu_base.def.json

@@ -108,7 +108,6 @@
         "support_interface_enable": { "value": true },
         "support_interface_height": { "value": "layer_height * 4" },
         "support_interface_pattern": { "value": "'grid'" },
-        "support_interface_skip_height": { "value": 0.2 },
         "support_pattern": { "value": "'zigzag'" },
         "support_wall_count": { "value": 1 },
         "support_xy_distance": { "value": "wall_line_width_0 * 2" },

+ 0 - 1
resources/definitions/blocks_base.def.json

@@ -97,7 +97,6 @@
         "support_interface_enable": { "value": true },
         "support_interface_height": { "value": "layer_height * 4" },
         "support_interface_pattern": { "value": "'grid'" },
-        "support_interface_skip_height": { "value": 0.2 },
         "support_pattern": { "value": "'zigzag'" },
         "support_xy_distance": { "value": "wall_line_width_0 * 2" },
         "support_xy_distance_overhang": { "value": "wall_line_width_0" },

+ 0 - 14
resources/definitions/fdmprinter.def.json

@@ -5423,20 +5423,6 @@
                         }
                     }
                 },
-                "support_interface_skip_height":
-                {
-                    "label": "Support Interface Resolution",
-                    "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.",
-                    "unit": "mm",
-                    "type": "float",
-                    "default_value": 0.2,
-                    "value": "layer_height",
-                    "minimum_value": "0",
-                    "maximum_value_warning": "support_interface_height",
-                    "limit_to_extruder": "support_interface_extruder_nr",
-                    "enabled": "support_interface_enable and (support_enable or support_meshes_present)",
-                    "settable_per_mesh": true
-                },
                 "support_interface_density":
                 {
                     "label": "Support Interface Density",

Some files were not shown because too many files changed in this diff