Transfer cloudPrintersDetectedChanged in DiscoveredUltimakerCloudPrintersModel

CURA-7022
This commit is contained in:
Kostas Karmas 2020-04-28 14:19:28 +02:00
parent 0ad9464131
commit ea404af973
4 changed files with 15 additions and 11 deletions

View file

@ -29,7 +29,6 @@ class Account(QObject):
# Signal emitted when user logged in or out. # Signal emitted when user logged in or out.
loginStateChanged = pyqtSignal(bool) loginStateChanged = pyqtSignal(bool)
accessTokenChanged = pyqtSignal() accessTokenChanged = pyqtSignal()
cloudPrintersDetectedChanged = pyqtSignal(bool)
def __init__(self, application: "CuraApplication", parent = None) -> None: def __init__(self, application: "CuraApplication", parent = None) -> None:
super().__init__(parent) super().__init__(parent)
@ -76,10 +75,6 @@ class Account(QObject):
def isLoggedIn(self) -> bool: def isLoggedIn(self) -> bool:
return self._logged_in return self._logged_in
@pyqtProperty(bool, notify=cloudPrintersDetectedChanged)
def newCloudPrintersDetected(self) -> bool:
return self._new_cloud_printers_detected
def _onLoginStateChanged(self, logged_in: bool = False, error_message: Optional[str] = None) -> None: def _onLoginStateChanged(self, logged_in: bool = False, error_message: Optional[str] = None) -> None:
if error_message: if error_message:
if self._error_message: if self._error_message:

View file

@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING from typing import Optional, TYPE_CHECKING
from PyQt5.QtCore import QObject, pyqtSlot, Qt from PyQt5.QtCore import QObject, pyqtSlot, Qt, pyqtSignal, pyqtProperty
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
@ -14,6 +14,8 @@ class DiscoveredUltimakerCloudPrintersModel(ListModel):
DeviceTypeRole = Qt.UserRole + 3 DeviceTypeRole = Qt.UserRole + 3
DeviceFirmwareVersionRole = Qt.UserRole + 4 DeviceFirmwareVersionRole = Qt.UserRole + 4
cloudPrintersDetectedChanged = pyqtSignal()
def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None: def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None:
super().__init__(parent) super().__init__(parent)
@ -23,6 +25,7 @@ class DiscoveredUltimakerCloudPrintersModel(ListModel):
self.addRoleName(self.DeviceFirmwareVersionRole, "firmware_version") self.addRoleName(self.DeviceFirmwareVersionRole, "firmware_version")
self._discovered_ultimaker_cloud_printers_list = [] self._discovered_ultimaker_cloud_printers_list = []
self._new_cloud_printers_detected = False
self._application = application self._application = application
def addDiscoveredUltimakerCloudPrinters(self, new_devices) -> None: def addDiscoveredUltimakerCloudPrinters(self, new_devices) -> None:
@ -35,10 +38,16 @@ class DiscoveredUltimakerCloudPrintersModel(ListModel):
}) })
self._update() self._update()
# Inform whether new cloud printers have been detected. If they have, the welcome wizard can close.
self._new_cloud_printers_detected = len(new_devices) > 0
self.cloudPrintersDetectedChanged.emit()
@pyqtSlot() @pyqtSlot()
def clear(self): def clear(self):
self._discovered_ultimaker_cloud_printers_list = [] self._discovered_ultimaker_cloud_printers_list = []
self._update() self._update()
self._new_cloud_printers_detected = False
self.cloudPrintersDetectedChanged.emit()
def _update(self): def _update(self):
items = [] items = []
@ -51,3 +60,7 @@ class DiscoveredUltimakerCloudPrintersModel(ListModel):
filtered_items.sort(key = lambda k: k["name"]) filtered_items.sort(key = lambda k: k["name"])
self.setItems(filtered_items) self.setItems(filtered_items)
@pyqtProperty(bool, notify = cloudPrintersDetectedChanged)
def newCloudPrintersDetected(self) -> bool:
return self._new_cloud_printers_detected

View file

@ -106,10 +106,6 @@ class CloudOutputDeviceManager:
self._onDevicesDiscovered(new_clusters) self._onDevicesDiscovered(new_clusters)
# Inform whether new cloud printers have been detected. If they have, the welcome wizard can close.
self._account._new_cloud_printers_detected = len(new_clusters) > 0
self._account.cloudPrintersDetectedChanged.emit(len(new_clusters) > 0)
removed_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys()) removed_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys())
for device_id in removed_device_keys: for device_id in removed_device_keys:
self._onDiscoveredDeviceRemoved(device_id) self._onDiscoveredDeviceRemoved(device_id)

View file

@ -15,7 +15,7 @@ Item
{ {
UM.I18nCatalog { id: catalog; name: "cura" } UM.I18nCatalog { id: catalog; name: "cura" }
property bool newCloudPrintersDetected: Cura.API.account.newCloudPrintersDetected property bool newCloudPrintersDetected: CuraApplication.getDiscoveredUltimakerCloudPrintersModel().newCloudPrintersDetected
onNewCloudPrintersDetectedChanged: onNewCloudPrintersDetectedChanged:
{ {