Cura/DiscoverUM3Action.py
2016-06-23 15:46:12 +02:00

33 lines
1.1 KiB
Python

from cura.MachineAction import MachineAction
from UM.Application import Application
from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot
class DiscoverUM3Action(MachineAction):
def __init__(self):
super().__init__("DiscoverUM3Action", "Discover printers")
self._qml_url = "DiscoverUM3Action.qml"
self._network_plugin = None
printerDetected = pyqtSignal()
@pyqtSlot()
def startDiscovery(self):
if not self._network_plugin:
self._network_plugin = Application.getInstance().getOutputDeviceManager().getOutputDevicePlugin("JediWifiPrintingPlugin")
self._network_plugin.addPrinterSignal.connect(self._onPrinterAdded)
self.printerDetected.emit()
def _onPrinterAdded(self, *args):
self.printerDetected.emit()
@pyqtProperty("QVariantList", notify = printerDetected)
def foundDevices(self):
if self._network_plugin:
printers = self._network_plugin.getPrinters()
return [printers[printer] for printer in printers]
else:
return []