From 8683275d4fae75753b69dd400fc5e8a0f7a5311d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 4 Sep 2017 15:16:55 +0200 Subject: [PATCH] Added canAbort & canPause feature to PrinterOutputDevice --- cura/PrinterOutputDevice.py | 12 ++++++++++++ resources/qml/MonitorButton.qml | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 6643ce6e03..64544d3d3f 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -71,6 +71,8 @@ class PrinterOutputDevice(QObject, OutputDevice): self._control_item = None self._qml_context = None + self._can_pause = True + self._can_abort = True def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None): raise NotImplementedError("requestWrite needs to be implemented") @@ -126,6 +128,16 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to be emitted when some drastic change occurs in the remaining time (not when the time just passes on normally). preheatBedRemainingTimeChanged = pyqtSignal() + # Does the printer support pause at all + @pyqtProperty(bool, constant=True) + def canPause(self): + return self._can_pause + + # Does the printer support abort at all + @pyqtProperty(bool, constant=True) + def canAbort(self): + return self._can_abort + @pyqtProperty(QObject, constant=True) def monitorItem(self): # Note that we specifically only check if the monitor component is created. diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 5741749d4e..45c28847cd 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -220,7 +220,7 @@ Item property bool userClicked: false property string lastJobState: "" - visible: printerConnected + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canPause enabled: (!userClicked) && printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) @@ -261,7 +261,7 @@ Item { id: abortButton - visible: printerConnected + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canAbort enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing", "pre_print"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0)