diff --git a/cura/Machines/Models/DiscoveredCloudPrintersModel.py b/cura/Machines/Models/DiscoveredCloudPrintersModel.py index 58a73e7095..302ef1557b 100644 --- a/cura/Machines/Models/DiscoveredCloudPrintersModel.py +++ b/cura/Machines/Models/DiscoveredCloudPrintersModel.py @@ -9,6 +9,9 @@ if TYPE_CHECKING: class DiscoveredCloudPrintersModel(ListModel): + """ + Model used to inform the application about newly added cloud printers, which are discovered from the user's account + """ DeviceKeyRole = Qt.UserRole + 1 DeviceNameRole = Qt.UserRole + 2 DeviceTypeRole = Qt.UserRole + 3 @@ -28,6 +31,18 @@ class DiscoveredCloudPrintersModel(ListModel): self._application = application # type: CuraApplication def addDiscoveredCloudPrinters(self, new_devices: List[Dict[str, str]]) -> None: + """ + Adds all the newly discovered cloud printers into the DiscoveredCloudPrintersModel. + + :param new_devices: List of dictionaries which contain information about added cloud printers. Example: + { + "key": "YjW8pwGYcaUvaa0YgVyWeFkX3z", + "name": "NG 001", + "machine_type": "Ultimaker S5", + "firmware_version": "5.5.12.202001" + } + :return: None + """ self._discovered_ultimaker_cloud_printers_list.extend(new_devices) self._update() @@ -36,11 +51,21 @@ class DiscoveredCloudPrintersModel(ListModel): @pyqtSlot() def clear(self) -> None: + """ + Clears the contents of the DiscoveredCloudPrintersModel. + + :return: None + """ self._discovered_ultimaker_cloud_printers_list = [] self._update() self.cloudPrintersDetectedChanged.emit(False) def _update(self) -> None: + """ + Sorts the newly discovered cloud printers by name and then updates the ListModel. + + :return: None + """ items = self._discovered_ultimaker_cloud_printers_list[:] items.sort(key = lambda k: k["name"]) self.setItems(items) diff --git a/resources/qml/WelcomePages/AddCloudPrintersView.qml b/resources/qml/WelcomePages/AddCloudPrintersView.qml index e4e42d1e9e..f97d68f776 100644 --- a/resources/qml/WelcomePages/AddCloudPrintersView.qml +++ b/resources/qml/WelcomePages/AddCloudPrintersView.qml @@ -22,6 +22,7 @@ Item property bool searchingForCloudPrinters: true property var discoveredCloudPrintersModel: CuraApplication.getDiscoveredCloudPrintersModel() + // The area where either the discoveredCloudPrintersScrollView or the busyIndicator will be displayed Rectangle { id: cloudPrintersContent