Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfieldOfView <aldo@fieldofview.com>2018-10-03 21:55:51 +0300
committerfieldOfView <aldo@fieldofview.com>2018-10-03 21:55:51 +0300
commitb7542a8ef8ff17491c1366e7ca5532ebc9e0c526 (patch)
treea4c30ce9d3ff274928f3ad675ca5e6fdf799edda /plugins/UltimakerMachineActions
parent61ffdf23d70d79857156020dcd1508496d036511 (diff)
Move Firmware Updater into a plugin of its own
Diffstat (limited to 'plugins/UltimakerMachineActions')
-rw-r--r--plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py68
-rw-r--r--plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml191
-rw-r--r--plugins/UltimakerMachineActions/__init__.py5
3 files changed, 0 insertions, 264 deletions
diff --git a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py
deleted file mode 100644
index 8d03a15b38..0000000000
--- a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018 Ultimaker B.V.
-# Cura is released under the terms of the LGPLv3 or higher.
-
-from cura.CuraApplication import CuraApplication
-from UM.Settings.DefinitionContainer import DefinitionContainer
-from cura.MachineAction import MachineAction
-from UM.i18n import i18nCatalog
-from UM.Settings.ContainerRegistry import ContainerRegistry
-from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdateState
-
-from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject
-from typing import Optional
-
-MYPY = False
-if MYPY:
- from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdater
- from cura.PrinterOutput.PrinterOutputDevice import PrinterOutputDevice
-
-catalog = i18nCatalog("cura")
-
-## Upgrade the firmware of a machine by USB with this action.
-class UpgradeFirmwareMachineAction(MachineAction):
- def __init__(self) -> None:
- super().__init__("UpgradeFirmware", catalog.i18nc("@action", "Upgrade Firmware"))
- self._qml_url = "UpgradeFirmwareMachineAction.qml"
- ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
-
- self._active_output_device = None #type: Optional[PrinterOutputDevice]
- self._active_firmware_updater = None #type: Optional[FirmwareUpdater]
-
- CuraApplication.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
-
- def _onEngineCreated(self) -> None:
- CuraApplication.getInstance().getMachineManager().outputDevicesChanged.connect(self._onOutputDevicesChanged)
-
- def _onContainerAdded(self, container) -> None:
- # Add this action as a supported action to all machine definitions if they support USB connection
- if isinstance(container, DefinitionContainer) and container.getMetaDataEntry("type") == "machine" and container.getMetaDataEntry("supports_usb_connection"):
- CuraApplication.getInstance().getMachineActionManager().addSupportedAction(container.getId(), self.getKey())
-
- def _onOutputDevicesChanged(self) -> None:
- if self._active_output_device:
- self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.disconnect(self._onControllerCanUpdateFirmwareChanged)
-
- output_devices = CuraApplication.getInstance().getMachineManager().printerOutputDevices
- self._active_output_device = output_devices[0] if output_devices else None
-
- if self._active_output_device:
- self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.connect(self._onControllerCanUpdateFirmwareChanged)
-
- self.outputDeviceCanUpdateFirmwareChanged.emit()
-
- def _onControllerCanUpdateFirmwareChanged(self) -> None:
- self.outputDeviceCanUpdateFirmwareChanged.emit()
-
- outputDeviceCanUpdateFirmwareChanged = pyqtSignal()
- @pyqtProperty(QObject, notify = outputDeviceCanUpdateFirmwareChanged)
- def firmwareUpdater(self) -> Optional["FirmwareUpdater"]:
- if self._active_output_device and self._active_output_device.activePrinter.getController().can_update_firmware:
- self._active_firmware_updater = self._active_output_device.getFirmwareUpdater()
- return self._active_firmware_updater
-
- elif self._active_firmware_updater and self._active_firmware_updater.firmwareUpdateState not in [FirmwareUpdateState.idle, FirmwareUpdateState.completed]:
- # During a firmware update, the PrinterOutputDevice is disconnected but the FirmwareUpdater is still there
- return self._active_firmware_updater
-
- self._active_firmware_updater = None
- return None
diff --git a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml b/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml
deleted file mode 100644
index 1c1f39edd0..0000000000
--- a/plugins/UltimakerMachineActions/UpgradeFirmwareMachineAction.qml
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright (c) 2018 Ultimaker B.V.
-// Cura is released under the terms of the LGPLv3 or higher.
-
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Layouts 1.1
-import QtQuick.Window 2.1
-import QtQuick.Dialogs 1.2 // For filedialog
-
-import UM 1.2 as UM
-import Cura 1.0 as Cura
-
-
-Cura.MachineAction
-{
- anchors.fill: parent;
- property bool printerConnected: Cura.MachineManager.printerConnected
- property var activeOutputDevice: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null
- property var canUpdateFirmware: activeOutputDevice ? activeOutputDevice.activePrinter.canUpdateFirmware : false
-
- Column
- {
- id: upgradeFirmwareMachineAction
- anchors.fill: parent;
- UM.I18nCatalog { id: catalog; name:"cura"}
- spacing: UM.Theme.getSize("default_margin").height
-
- Label
- {
- width: parent.width
- text: catalog.i18nc("@title", "Upgrade Firmware")
- wrapMode: Text.WordWrap
- font.pointSize: 18
- }
- Label
- {
- width: parent.width
- wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work.")
- }
-
- Label
- {
- width: parent.width
- wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "The firmware shipping with new printers works, but new versions tend to have more features and improvements.");
- }
-
- Row
- {
- anchors.horizontalCenter: parent.horizontalCenter
- width: childrenRect.width
- spacing: UM.Theme.getSize("default_margin").width
- property var firmwareName: Cura.MachineManager.activeMachine.getDefaultFirmwareName()
- Button
- {
- id: autoUpgradeButton
- text: catalog.i18nc("@action:button", "Automatically upgrade Firmware");
- enabled: parent.firmwareName != "" && canUpdateFirmware
- onClicked:
- {
- firmwareUpdateWindow.visible = true;
- activeOutputDevice.updateFirmware(parent.firmwareName);
- }
- }
- Button
- {
- id: manualUpgradeButton
- text: catalog.i18nc("@action:button", "Upload custom Firmware");
- enabled: canUpdateFirmware
- onClicked:
- {
- customFirmwareDialog.open()
- }
- }
- }
-
- Label
- {
- width: parent.width
- wrapMode: Text.WordWrap
- visible: !printerConnected && !firmwareUpdateWindow.visible
- text: catalog.i18nc("@label", "Firmware can not be upgraded because there is no connection with the printer.");
- }
-
- Label
- {
- width: parent.width
- wrapMode: Text.WordWrap
- visible: printerConnected && !canUpdateFirmware
- text: catalog.i18nc("@label", "Firmware can not be upgraded because the connection with the printer does not support upgrading firmware.");
- }
- }
-
- FileDialog
- {
- id: customFirmwareDialog
- title: catalog.i18nc("@title:window", "Select custom firmware")
- nameFilters: "Firmware image files (*.hex)"
- selectExisting: true
- onAccepted:
- {
- firmwareUpdateWindow.visible = true;
- activeOutputDevice.updateFirmware(fileUrl);
- }
- }
-
- UM.Dialog
- {
- id: firmwareUpdateWindow
-
- width: minimumWidth
- minimumWidth: 500 * screenScaleFactor
- height: minimumHeight
- minimumHeight: 100 * screenScaleFactor
-
- modality: Qt.ApplicationModal
-
- title: catalog.i18nc("@title:window","Firmware Update")
-
- Column
- {
- anchors.fill: parent
-
- Label
- {
- anchors
- {
- left: parent.left
- right: parent.right
- }
-
- text: {
- if(manager.firmwareUpdater == null)
- {
- return "";
- }
- switch (manager.firmwareUpdater.firmwareUpdateState)
- {
- case 0:
- return ""; //Not doing anything (eg; idling)
- case 1:
- return catalog.i18nc("@label","Updating firmware.");
- case 2:
- return catalog.i18nc("@label","Firmware update completed.");
- case 3:
- return catalog.i18nc("@label","Firmware update failed due to an unknown error.");
- case 4:
- return catalog.i18nc("@label","Firmware update failed due to an communication error.");
- case 5:
- return catalog.i18nc("@label","Firmware update failed due to an input/output error.");
- case 6:
- return catalog.i18nc("@label","Firmware update failed due to missing firmware.");
- }
- }
-
- wrapMode: Text.Wrap
- }
-
- ProgressBar
- {
- id: prog
- value: (manager.firmwareUpdater != null) ? manager.firmwareUpdater.firmwareProgress : 0
- minimumValue: 0
- maximumValue: 100
- indeterminate:
- {
- if(manager.firmwareUpdater == null)
- {
- return false;
- }
- return manager.firmwareUpdater.firmwareProgress < 1 && manager.firmwareUpdater.firmwareProgress > 0;
- }
- anchors
- {
- left: parent.left;
- right: parent.right;
- }
- }
- }
-
- rightButtons: [
- Button
- {
- text: catalog.i18nc("@action:button","Close");
- enabled: (manager.firmwareUpdater != null) ? manager.firmwareUpdater.firmwareUpdateState != 1 : true;
- onClicked: firmwareUpdateWindow.visible = false;
- }
- ]
- }
-} \ No newline at end of file
diff --git a/plugins/UltimakerMachineActions/__init__.py b/plugins/UltimakerMachineActions/__init__.py
index 495f212736..30493536ce 100644
--- a/plugins/UltimakerMachineActions/__init__.py
+++ b/plugins/UltimakerMachineActions/__init__.py
@@ -2,13 +2,9 @@
# Cura is released under the terms of the LGPLv3 or higher.
from . import BedLevelMachineAction
-from . import UpgradeFirmwareMachineAction
from . import UMOUpgradeSelection
from . import UM2UpgradeSelection
-from UM.i18n import i18nCatalog
-catalog = i18nCatalog("cura")
-
def getMetaData():
return {
}
@@ -16,7 +12,6 @@ def getMetaData():
def register(app):
return { "machine_action": [
BedLevelMachineAction.BedLevelMachineAction(),
- UpgradeFirmwareMachineAction.UpgradeFirmwareMachineAction(),
UMOUpgradeSelection.UMOUpgradeSelection(),
UM2UpgradeSelection.UM2UpgradeSelection()
]}