From 8dbe67a6bf9bd0ec2196868c4b1c629359fb33d9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Sep 2016 13:30:43 +0200 Subject: [PATCH 1/2] Added printer state to output device CURA-2235 --- cura/PrinterOutputDevice.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index b828e16daf..35ca6b7cbb 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -44,6 +44,8 @@ class PrinterOutputDevice(QObject, OutputDevice): self._error_text = "" self._accepts_commands = True + self._printer_state = "" + def requestWrite(self, node, file_name = None, filter_by_machine = False): raise NotImplementedError("requestWrite needs to be implemented") @@ -91,10 +93,21 @@ class PrinterOutputDevice(QObject, OutputDevice): acceptsCommandsChanged = pyqtSignal() + printerStateChanged = pyqtSignal() + + @pyqtProperty(str, notify=printerStateChanged) + def printerState(self): + return self._printer_state + @pyqtProperty(str, notify = jobStateChanged) def jobState(self): return self._job_state + def _updatePrinterState(self, printer_state): + if self._printer_state != printer_state: + self._printer_state = printer_state + self.printerStateChanged.emit() + def _updateJobState(self, job_state): if self._job_state != job_state: self._job_state = job_state From 31bc3d2575ac8caac4883d16fe3a6a7c9c4ae53b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Sep 2016 13:38:30 +0200 Subject: [PATCH 2/2] Added maintenance state to display qml CURA-2235 --- resources/qml/MonitorButton.qml | 13 ++++++++++++- resources/qml/Sidebar.qml | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 2fc9169e38..f9f6cd5f5d 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -48,7 +48,13 @@ Rectangle { if(!printerConnected || !printerAcceptsCommands) return UM.Theme.getColor("text"); - + if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") + { + return UM.Theme.getColor("status_busy"); + } else if (Cura.MachineManager.printerOutputDevices[0].printerState == "error") + { + return UM.Theme.getColor("status_stopped"); + } switch(Cura.MachineManager.printerOutputDevices[0].jobState) { case "printing": @@ -80,6 +86,11 @@ Rectangle return catalog.i18nc("@label:MonitorStatus", "Printer does not accept commands"); var printerOutputDevice = Cura.MachineManager.printerOutputDevices[0] + + if(printerOutputDevice.printerState == "maintenance") + { + return catalog.i18nc("@label:MonitorStatus", "Printer is in maintenance mode."); + } switch(printerOutputDevice.jobState) { case "offline": diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index aa51fcfefe..b76a41fc37 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -112,6 +112,11 @@ Rectangle else if(!printerAcceptsCommands) return UM.Theme.getIcon("tab_monitor_unknown"); + if(Cura.MachineManager.printerOutputDevices[0].printerState == "maintenance") + { + return UM.Theme.getIcon("tab_monitor_busy"); + } + switch(Cura.MachineManager.printerOutputDevices[0].jobState) { case "printing":