Fix showing progress

This commit is contained in:
fieldOfView 2018-10-03 13:59:46 +02:00
parent 718ac0a307
commit cf3d7df8a6

View file

@ -6,6 +6,7 @@ from UM.Settings.DefinitionContainer import DefinitionContainer
from cura.MachineAction import MachineAction from cura.MachineAction import MachineAction
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdateState
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject
from typing import Optional from typing import Optional
@ -13,6 +14,7 @@ from typing import Optional
MYPY = False MYPY = False
if MYPY: if MYPY:
from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdater from cura.PrinterOutput.FirmwareUpdater import FirmwareUpdater
from cura.PrinterOutput.PrinterOutputDevice import PrinterOutputDevice
catalog = i18nCatalog("cura") catalog = i18nCatalog("cura")
@ -23,7 +25,8 @@ class UpgradeFirmwareMachineAction(MachineAction):
self._qml_url = "UpgradeFirmwareMachineAction.qml" self._qml_url = "UpgradeFirmwareMachineAction.qml"
ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded)
self._active_output_device = None self._active_output_device = None #type: Optional[PrinterOutputDevice]
self._active_firmware_updater = None #type: Optional[FirmwareUpdater]
Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated)
@ -38,9 +41,10 @@ class UpgradeFirmwareMachineAction(MachineAction):
def _onOutputDevicesChanged(self) -> None: def _onOutputDevicesChanged(self) -> None:
if self._active_output_device: if self._active_output_device:
self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.disconnect(self._onControllerCanUpdateFirmwareChanged) self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.disconnect(self._onControllerCanUpdateFirmwareChanged)
output_devices = Application.getInstance().getMachineManager().printerOutputDevices output_devices = Application.getInstance().getMachineManager().printerOutputDevices
print(output_devices)
self._active_output_device = output_devices[0] if output_devices else None self._active_output_device = output_devices[0] if output_devices else None
if self._active_output_device: if self._active_output_device:
self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.connect(self._onControllerCanUpdateFirmwareChanged) self._active_output_device.activePrinter.getController().canUpdateFirmwareChanged.connect(self._onControllerCanUpdateFirmwareChanged)
@ -53,6 +57,12 @@ class UpgradeFirmwareMachineAction(MachineAction):
@pyqtProperty(QObject, notify = outputDeviceCanUpdateFirmwareChanged) @pyqtProperty(QObject, notify = outputDeviceCanUpdateFirmwareChanged)
def firmwareUpdater(self) -> Optional["firmwareUpdater"]: def firmwareUpdater(self) -> Optional["firmwareUpdater"]:
if self._active_output_device and self._active_output_device.activePrinter.getController().can_update_firmware: if self._active_output_device and self._active_output_device.activePrinter.getController().can_update_firmware:
return self._active_output_device.getFirmwareUpdater() self._active_firmware_updater = self._active_output_device.getFirmwareUpdater()
return self._active_firmware_updater
return None 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