Browse Source

All machines that suport USB connection now get the upgrade firmware action for free!

CURA-955
Jaime van Kessel 8 years ago
parent
commit
de8785da37

+ 9 - 1
plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py

@@ -1,9 +1,17 @@
 from cura.MachineAction import MachineAction
 from UM.i18n import i18nCatalog
+import cura.Settings.CuraContainerRegistry
+import UM.Settings.DefinitionContainer
 catalog = i18nCatalog("cura")
 
 
 class UpgradeFirmwareMachineAction(MachineAction):
     def __init__(self):
         super().__init__("UpgradeFirmware", catalog.i18nc("@action", "Upgrade Firmware"))
-        self._qml_url = "UpgradeFirmwareMachineAction.qml"
+        self._qml_url = "UpgradeFirmwareMachineAction.qml"
+        cura.Settings.CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
+
+    def _onContainerAdded(self, container):
+        # Add this action as a supported action to all machine definitions
+        if isinstance(container, UM.Settings.DefinitionContainer) and container.getMetaDataEntry("type") == "machine" and container.getMetaDataEntry("supports_usb_connection"):
+            UM.Application.getInstance().getMachineActionManager().addSupportedAction(container.getId(), self.getKey())

+ 2 - 1
resources/definitions/fdmprinter.def.json

@@ -15,7 +15,8 @@
         "machine_extruder_trains":
         {
             "0": "fdmextruder"
-        }
+        },
+        "supports_usb_connection": true
     },
     "settings":
     {