diff options
6 files changed, 21 insertions, 15 deletions
diff --git a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py index c89bd31e21..8a183c25f4 100644 --- a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py @@ -47,7 +47,10 @@ class WindowsRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin): def checkRemovableDrives(self): drives = {} + # The currently available disk drives, e.g.: bitmask = ...1100 <-- ...DCBA bitmask = ctypes.windll.kernel32.GetLogicalDrives() + # Since we are ignoring drives A and B, the bitmask has has to shift twice to the right + bitmask >>= 2 # Check possible drive letters, from C to Z # Note: using ascii_uppercase because we do not want this to change with locale! # Skip A and B, since those drives are typically reserved for floppy disks. diff --git a/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py b/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py index 14db1a992d..f848f818d7 100644 --- a/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py +++ b/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py @@ -83,7 +83,7 @@ class CloudPackageChecker(QObject): package_discrepancy = list(set(user_subscribed_packages).difference(user_installed_packages)) if package_discrepancy: self._model.addDiscrepancies(package_discrepancy) - self._model.initialize(subscribed_packages_payload) + self._model.initialize(self._package_manager, subscribed_packages_payload) self._handlePackageDiscrepancies() def _handlePackageDiscrepancies(self) -> None: diff --git a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py index 614d397d91..db16c5ea84 100644 --- a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py +++ b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py @@ -2,9 +2,12 @@ # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import Qt, pyqtProperty, pyqtSlot + +from UM.PackageManager import PackageManager from UM.Qt.ListModel import ListModel +from UM.Version import Version + from cura import ApplicationMetadata -from UM.Logger import Logger from typing import List, Dict, Any @@ -46,7 +49,7 @@ class SubscribedPackagesModel(ListModel): def getIncompatiblePackages(self) -> List[str]: return [package["package_id"] for package in self._items if not package["is_compatible"]] - def initialize(self, subscribed_packages_payload: List[Dict[str, Any]]) -> None: + def initialize(self, package_manager: PackageManager, subscribed_packages_payload: List[Dict[str, Any]]) -> None: self._items.clear() for item in subscribed_packages_payload: if item["package_id"] not in self._discrepancies: @@ -59,15 +62,13 @@ class SubscribedPackagesModel(ListModel): "md5_hash": item["md5_hash"], "is_dismissed": False, } - if self._sdk_version not in item["sdk_versions"]: - package.update({"is_compatible": False}) - else: - package.update({"is_compatible": True}) + + compatible = any(package_manager.isPackageCompatible(Version(version)) for version in item["sdk_versions"]) + package.update({"is_compatible": compatible}) + try: package.update({"icon_url": item["icon_url"]}) except KeyError: # There is no 'icon_url" in the response payload for this package package.update({"icon_url": ""}) self._items.append(package) self.setItems(self._items) - - diff --git a/resources/definitions/hms434.def.json b/resources/definitions/hms434.def.json index e5f32283d8..be8208a77a 100644 --- a/resources/definitions/hms434.def.json +++ b/resources/definitions/hms434.def.json @@ -13,6 +13,7 @@ "chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "emotiontech_abs", "emotiontech_asax", "emotiontech_hips", "emotiontech_petg", "emotiontech_pla", "emotiontech_pva-m", "emotiontech_pva-oks", "emotiontech_pva-s", "emotiontech_tpu98a", + "eSUN_PETG_Black", "eSUN_PETG_Grey", "eSUN_PETG_Purple", "eSUN_PLA_PRO_Black", "eSUN_PLA_PRO_Grey", "eSUN_PLA_PRO_Purple", "eSUN_PLA_PRO_White", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", @@ -118,6 +119,7 @@ "material_final_print_temperature": {"value": "material_print_temperature"}, "material_bed_temperature_layer_0": {"value": "material_bed_temperature"}, "material_flow": {"value": "100"}, + "material_flow_layer_0": {"value": "material_flow"}, "retraction_enable": {"value": true }, "retract_at_layer_change": {"value": true }, "retraction_amount": {"value": "1"}, @@ -130,9 +132,9 @@ "speed_print": {"value": "50"}, "speed_infill": {"value": "speed_print"}, - "speed_wall": {"value": "(speed_print/5*3) if speed_print < 51 else speed_print"}, + "speed_wall": {"value": "(speed_print/5*3) if speed_print > 45 else speed_print"}, "speed_wall_x": {"value": "speed_wall"}, - "speed_layer_0": {"value": "(speed_print/5*4) if speed_print < 51 else speed_print"}, + "speed_layer_0": {"value": "(speed_print/5*4) if speed_print > 45 else speed_print"}, "speed_topbottom": {"value": "speed_layer_0"}, "speed_travel": {"value": "150"}, "speed_travel_layer_0": {"value": "speed_travel"}, @@ -151,8 +153,8 @@ "cool_fan_speed": {"value": 0}, "cool_fan_enabled": {"value": true}, "cool_min_layer_time_fan_speed_max": {"value": "cool_min_layer_time"}, - "cool_min_layer_time": {"value": 20}, - "cool_min_speed": {"value": "10"}, + "cool_min_layer_time": {"value": 30}, + "cool_min_speed": {"value": "5"}, "cool_lift_head": {"value": false}, "support_infill_rate": {"value": 25}, diff --git a/resources/extruders/hms434_tool_1.def.json b/resources/extruders/hms434_tool_1.def.json index ddd46e60f3..3fde2a997d 100644 --- a/resources/extruders/hms434_tool_1.def.json +++ b/resources/extruders/hms434_tool_1.def.json @@ -16,7 +16,7 @@ "machine_nozzle_offset_y": { "default_value": 0.0 }, "material_diameter": { "default_value": 1.75 }, "machine_extruder_start_code": { - "default_value": "\n;changing to tool1\nM109 T0 S{material_print_temperature}\nG1 Y120 F3000\nG1 X10 F12000\n\n" + "default_value": "\n;changing to tool1\nM83\nM109 T0 S{material_print_temperature}\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 Y120 F3000\nG1 X10 F12000\nG1 E-{switch_extruder_retraction_amount} F2400\n\n" }, "machine_extruder_end_code": { "default_value": "\nG1 X10 Y120 F12000\nG1 X-40 F12000\nM109 T0 R{material_standby_temperature}\nG1 Y100 F3000\n; ending tool1\n\n" diff --git a/resources/extruders/hms434_tool_2.def.json b/resources/extruders/hms434_tool_2.def.json index aec54238f3..1be433dca7 100644 --- a/resources/extruders/hms434_tool_2.def.json +++ b/resources/extruders/hms434_tool_2.def.json @@ -16,7 +16,7 @@ "machine_nozzle_offset_y": { "default_value": 0.0 }, "material_diameter": { "default_value": 1.75 }, "machine_extruder_start_code": { - "default_value": "\n;changing to tool2\nM109 T1 S{material_print_temperature}\nG1 Y120 F3000\nG1 X10 F12000\n\n" + "default_value": "\n;changing to tool2\nM83\nM109 T1 S{material_print_temperature}\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 E{switch_extruder_extra_prime_amount} F480\nG1 Y120 F3000\nG1 X10 F12000\nG1 E-{switch_extruder_retraction_amount} F2400\n\n" }, "machine_extruder_end_code": { "default_value": "\nG1 X10 Y120 F12000\nG1 X-40 F12000\nM109 T1 R{material_standby_temperature}\nG1 Y100 F3000\n; ending tool2\n\n" |