diff --git a/cura/Machines/Models/DiscoveredPrintersModel.py b/cura/Machines/Models/DiscoveredPrintersModel.py index 68936fb714..7e0721fcbe 100644 --- a/cura/Machines/Models/DiscoveredPrintersModel.py +++ b/cura/Machines/Models/DiscoveredPrintersModel.py @@ -105,8 +105,20 @@ class DiscoveredPrintersModel(QObject): def discoveredPrinters(self) -> List["DiscoveredPrinter"]: item_list = list( x for x in self._discovered_printer_by_ip_dict.values() if not parseBool(x.device.getProperty("temporary"))) - item_list.sort(key = lambda x: (int(not x.isUnknownMachineType), getattr(x.device, "clusterSize", 1), x.device.name), reverse = True) - return item_list + + # Split the printers into 2 lists and sort them ascending based on names. + available_list = [] + not_available_list = [] + for item in item_list: + if item.isUnknownMachineType or getattr(item.device, "clusterSize", 1) < 1: + not_available_list.append(item) + else: + available_list.append(item) + + available_list.sort(key = lambda x: x.device.name) + not_available_list.sort(key = lambda x: x.device.name) + + return available_list + not_available_list def addDiscoveredPrinter(self, ip_address: str, key: str, name: str, create_callback: Callable[[str], None], machine_type: str, device: "NetworkedPrinterOutputDevice") -> None: