diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9c8b0265d1..67a9451282 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -56,7 +56,7 @@ from cura.Machines.MachineErrorChecker import MachineErrorChecker from cura.Machines.Models.BuildPlateModel import BuildPlateModel from cura.Machines.Models.CustomQualityProfilesDropDownMenuModel import CustomQualityProfilesDropDownMenuModel from cura.Machines.Models.DiscoveredPrintersModel import DiscoveredPrintersModel -from cura.Machines.Models.DiscoveredUltimakerCloudPrintersModel import DiscoveredUltimakerCloudPrintersModel +from cura.Machines.Models.DiscoveredCloudPrintersModel import DiscoveredCloudPrintersModel from cura.Machines.Models.ExtrudersModel import ExtrudersModel from cura.Machines.Models.FavoriteMaterialsModel import FavoriteMaterialsModel from cura.Machines.Models.FirstStartMachineActionsModel import FirstStartMachineActionsModel @@ -202,7 +202,7 @@ class CuraApplication(QtApplication): self._quality_management_model = None self._discovered_printer_model = DiscoveredPrintersModel(self, parent = self) - self._discovered_ultimaker_cloud_printers_model = DiscoveredUltimakerCloudPrintersModel(self, parent = self) + self._discovered_cloud_printers_model = DiscoveredCloudPrintersModel(self, parent = self) self._first_start_machine_actions_model = None self._welcome_pages_model = WelcomePagesModel(self, parent = self) self._add_printer_pages_model = AddPrinterPagesModel(self, parent = self) @@ -889,8 +889,8 @@ class CuraApplication(QtApplication): return self._discovered_printer_model @pyqtSlot(result=QObject) - def getDiscoveredUltimakerCloudPrintersModel(self, *args) -> "DiscoveredUltimakerCloudPrintersModel": - return self._discovered_ultimaker_cloud_printers_model + def getDiscoveredCloudPrintersModel(self, *args) -> "DiscoveredCloudPrintersModel": + return self._discovered_cloud_printers_model @pyqtSlot(result = QObject) def getFirstStartMachineActionsModel(self, *args) -> "FirstStartMachineActionsModel": @@ -1090,7 +1090,7 @@ class CuraApplication(QtApplication): self.processEvents() qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel") - qmlRegisterType(DiscoveredUltimakerCloudPrintersModel, "Cura", 1, 7, "DiscoveredUltimakerCloudPrintersModel") + qmlRegisterType(DiscoveredCloudPrintersModel, "Cura", 1, 7, "DiscoveredCloudPrintersModel") qmlRegisterSingletonType(QualityProfilesDropDownMenuModel, "Cura", 1, 0, "QualityProfilesDropDownMenuModel", self.getQualityProfilesDropDownMenuModel) qmlRegisterSingletonType(CustomQualityProfilesDropDownMenuModel, "Cura", 1, 0, diff --git a/cura/Machines/Models/DiscoveredUltimakerCloudPrintersModel.py b/cura/Machines/Models/DiscoveredCloudPrintersModel.py similarity index 81% rename from cura/Machines/Models/DiscoveredUltimakerCloudPrintersModel.py rename to cura/Machines/Models/DiscoveredCloudPrintersModel.py index c92f84471c..e232afe8b9 100644 --- a/cura/Machines/Models/DiscoveredUltimakerCloudPrintersModel.py +++ b/cura/Machines/Models/DiscoveredCloudPrintersModel.py @@ -8,7 +8,7 @@ if TYPE_CHECKING: from cura.CuraApplication import CuraApplication -class DiscoveredUltimakerCloudPrintersModel(ListModel): +class DiscoveredCloudPrintersModel(ListModel): DeviceKeyRole = Qt.UserRole + 1 DeviceNameRole = Qt.UserRole + 2 DeviceTypeRole = Qt.UserRole + 3 @@ -28,14 +28,8 @@ class DiscoveredUltimakerCloudPrintersModel(ListModel): self._new_cloud_printers_detected = False # type: bool self._application = application # type: CuraApplication - def addDiscoveredUltimakerCloudPrinters(self, new_devices: List[Optional[Dict[str, str]]]) -> None: - for device in new_devices: - self._discovered_ultimaker_cloud_printers_list.append({ - "key": device.getId(), - "name": device.name, - "machine_type": device.printerTypeName, - "firmware_version": device.firmwareVersion - }) + def addDiscoveredCloudPrinters(self, new_devices: List[Dict[str, str]]) -> None: + self._discovered_ultimaker_cloud_printers_list.extend(new_devices) self._update() # Inform whether new cloud printers have been detected. If they have, the welcome wizard can close. diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 5e03b65279..c20456d243 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -142,7 +142,14 @@ class CloudOutputDeviceManager: self._remote_clusters[device.getId()] = device remote_clusters_added = True - CuraApplication.getInstance().getDiscoveredUltimakerCloudPrintersModel().addDiscoveredUltimakerCloudPrinters(new_devices) + # Inform the Cloud printers model about new devices. + new_devices_list_of_dicts = [{ + "key": d.getId(), + "name": d.name, + "machine_type": d.printerTypeName, + "firmware_version": d.firmwareVersion} for d in new_devices] + discovered_cloud_printers_model = CuraApplication.getInstance().getDiscoveredCloudPrintersModel() + discovered_cloud_printers_model.addDiscoveredCloudPrinters(new_devices_list_of_dicts) if not new_devices: if remote_clusters_added: diff --git a/resources/qml/WelcomePages/AddCloudPrintersView.qml b/resources/qml/WelcomePages/AddCloudPrintersView.qml index 24865a9a2d..bf7831c5c6 100644 --- a/resources/qml/WelcomePages/AddCloudPrintersView.qml +++ b/resources/qml/WelcomePages/AddCloudPrintersView.qml @@ -20,7 +20,7 @@ Item UM.I18nCatalog { id: catalog; name: "cura" } property bool searchingForCloudPrinters: true - property var discoveredCloudPrintersModel: CuraApplication.getDiscoveredUltimakerCloudPrintersModel() + property var discoveredCloudPrintersModel: CuraApplication.getDiscoveredCloudPrintersModel() Rectangle { diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml index 0139064258..af60c9c723 100644 --- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml @@ -203,7 +203,7 @@ Item text: catalog.i18nc("@label", "Add cloud printer") height: UM.Theme.getSize("message_action_button").height onClicked: { - CuraApplication.getDiscoveredUltimakerCloudPrintersModel().clear() + CuraApplication.getDiscoveredCloudPrintersModel().clear() base.addCloudPrinterButtonClicked() } } diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml index 83a258a3f5..48410f7f12 100644 --- a/resources/qml/WelcomePages/CloudContent.qml +++ b/resources/qml/WelcomePages/CloudContent.qml @@ -17,7 +17,7 @@ Item signal cloudPrintersDetected(bool newCloudPrintersDetected) - Component.onCompleted: CuraApplication.getDiscoveredUltimakerCloudPrintersModel().cloudPrintersDetectedChanged.connect(cloudPrintersDetected) + Component.onCompleted: CuraApplication.getDiscoveredCloudPrintersModel().cloudPrintersDetectedChanged.connect(cloudPrintersDetected) onCloudPrintersDetected: {