diff --git a/DiscoverUM3Action.py b/DiscoverUM3Action.py index 3d69a8c118..c4ffdb8472 100644 --- a/DiscoverUM3Action.py +++ b/DiscoverUM3Action.py @@ -39,6 +39,11 @@ class DiscoverUM3Action(MachineAction): self._network_plugin.printerListChanged.connect(self._onPrinterDiscoveryChanged) self.printersChanged.emit() + ## Re-filters the list of printers. + @pyqtSlot() + def reset(self): + self.printersChanged.emit() + @pyqtSlot() def restartDiscovery(self): # Ensure that there is a bit of time after a printer has been discovered. @@ -75,7 +80,14 @@ class DiscoverUM3Action(MachineAction): @pyqtProperty("QVariantList", notify = printersChanged) def foundDevices(self): if self._network_plugin: + if Application.getInstance().getGlobalContainerStack(): + global_printer_type = Application.getInstance().getGlobalContainerStack().getBottom().getId() + else: + global_printer_type = "unknown" + printers = list(self._network_plugin.getPrinters().values()) + # TODO; There are still some testing printers that don't have a correct printer type, so don't filter out unkown ones just yet. + printers = [printer for printer in printers if printer.printerType == global_printer_type or printer.printerType == "unknown"] printers.sort(key = lambda k: k.name) return printers else: diff --git a/DiscoverUM3Action.qml b/DiscoverUM3Action.qml index 219ec25f25..a80ed1d179 100644 --- a/DiscoverUM3Action.qml +++ b/DiscoverUM3Action.qml @@ -228,7 +228,26 @@ Cura.MachineAction { width: parent.width * 0.5 wrapMode: Text.WordWrap - text: true ? catalog.i18nc("@label", "Ultimaker 3") : catalog.i18nc("@label", "Ultimaker 3 Extended") + text: + { + if(base.selectedPrinter) + { + if(base.selectedPrinter.printerType == "ultimaker3") + { + return catalog.i18nc("@label", "Ultimaker 3") + } else if(base.selectedPrinter.printerType == "ultimaker3_extended") + { + return catalog.i18nc("@label", "Ultimaker 3 Extended") + } else + { + return catalog.i18nc("@label", "Unknown") // We have no idea what type it is. Should not happen 'in the field' + } + } + else + { + return "" + } + } } Label { diff --git a/NetworkPrinterOutputDevice.py b/NetworkPrinterOutputDevice.py index f57637af1f..2eb126d966 100644 --- a/NetworkPrinterOutputDevice.py +++ b/NetworkPrinterOutputDevice.py @@ -167,10 +167,10 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._compressing_print = False printer_type = self._properties.get(b"machine", b"").decode("utf-8") - if printer_type == "9511.0": - self._updatePrinterType("UM3Extended") - elif printer_type == "9066.0": - self._updatePrinterType("UM3") + if printer_type.startswith("9511"): + self._updatePrinterType("ultimaker3_extended") + elif printer_type.startswith("9066"): + self._updatePrinterType("ultimaker3") else: self._updatePrinterType("unknown")