diff --git a/cura/Machines/Models/DiscoveredPrintersModel.py b/cura/Machines/Models/DiscoveredPrintersModel.py index e639ee2d25..a2a1fac3f7 100644 --- a/cura/Machines/Models/DiscoveredPrintersModel.py +++ b/cura/Machines/Models/DiscoveredPrintersModel.py @@ -192,7 +192,7 @@ class DiscoveredPrintersModel(QObject): def discoveredPrintersByAddress(self) -> Dict[str, DiscoveredPrinter]: return self._discovered_printer_by_ip_dict - @pyqtProperty(list, notify = discoveredPrintersChanged) + @pyqtProperty("QVariantList", notify = discoveredPrintersChanged) 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"))) diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml index 5f3ceac116..6d8f75c3f5 100644 --- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml @@ -76,15 +76,28 @@ Item Component.onCompleted: { - // Select the first one that's not "unknown" by default. + var toSelectIndex = -1 + // Select the first one that's not "unknown" and is the host a group by default. for (var i = 0; i < count; i++) { - if (!model[i].isUnknownMachineType) + if (!model[i].isUnknownMachineType && model[i].isHostOfGroup) { - currentIndex = i + toSelectIndex = i break } } + currentIndex = toSelectIndex + } + + // CURA-6483 For some reason currentIndex can be reset to 0. This check is here to prevent automatically + // selecting an unknown or non-host printer. + onCurrentIndexChanged: + { + var item = model[currentIndex] + if (!item || item.isUnknownMachineType || !item.isHostOfGroup) + { + currentIndex = -1 + } } Component