From de8785da3741023d934a818a99637c1f07c6742a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Sep 2016 15:48:31 +0200 Subject: [PATCH] All machines that suport USB connection now get the upgrade firmware action for free! CURA-955 --- .../UpgradeFirmwareMachineAction.py | 10 +++++++++- resources/definitions/fdmprinter.def.json | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py index 53476207fd..71d3f0b55b 100644 --- a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py +++ b/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" \ No newline at end of file + 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()) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a219347f10..58bb170c21 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -15,7 +15,8 @@ "machine_extruder_trains": { "0": "fdmextruder" - } + }, + "supports_usb_connection": true }, "settings": {