diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index c6e98257ba..837ecc97c6 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -74,6 +74,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._can_pause = True self._can_abort = True self._can_pre_heat_bed = True + self._can_control_manually = True def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None): raise NotImplementedError("requestWrite needs to be implemented") @@ -144,6 +145,11 @@ class PrinterOutputDevice(QObject, OutputDevice): def canAbort(self): return self._can_abort + # Does the printer support manual control at all + @pyqtProperty(bool, constant=True) + def canControlManually(self): + return self._can_control_manually + @pyqtProperty(QObject, constant=True) def monitorItem(self): # Note that we specifically only check if the monitor component is created. diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index cfa793996b..dee6b30e4b 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -103,6 +103,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._can_pause = True self._can_abort = True self._can_pre_heat_bed = False + self._can_control_manually = False self._cluster_size = int(properties.get(b"cluster_size", 0)) self._cleanupRequest() diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 412b6e9a59..f926444847 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -677,14 +677,9 @@ Column watchedProperties: ["value"] } - Loader - { - sourceComponent: monitorSection - property string label: catalog.i18nc("@label", "Printer control") - } - Column { + visible: connectedPrinter != null ? connectedPrinter.canControlManually : false enabled: { if (connectedPrinter == null) @@ -702,6 +697,12 @@ Column return true; } + Loader + { + sourceComponent: monitorSection + property string label: catalog.i18nc("@label", "Printer control") + } + Row { width: base.width - 2 * UM.Theme.getSize("default_margin").width