Browse Source

Update drop down to show correct printer icons in header

CURA-9424
Joey de l'Arago 2 years ago
parent
commit
44d9df57e4
2 changed files with 28 additions and 4 deletions
  1. 22 0
      plugins/3MFReader/WorkspaceDialog.py
  2. 6 4
      plugins/3MFReader/WorkspaceDialog.qml

+ 22 - 0
plugins/3MFReader/WorkspaceDialog.py

@@ -66,6 +66,8 @@ class WorkspaceDialog(QObject):
         self._missing_package_metadata: List[Dict[str, str]] = []
         self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry()
         self._install_missing_package_dialog: Optional[QObject] = None
+        self._is_abstract_machine = False
+        self._is_online_machine = False
 
     machineConflictChanged = pyqtSignal()
     qualityChangesConflictChanged = pyqtSignal()
@@ -79,6 +81,8 @@ class WorkspaceDialog(QObject):
     intentNameChanged = pyqtSignal()
     machineNameChanged = pyqtSignal()
     updatableMachinesChanged = pyqtSignal()
+    isAbstractMachineChanged = pyqtSignal()
+    isOnlineChanged = pyqtSignal()
     materialLabelsChanged = pyqtSignal()
     objectsOnPlateChanged = pyqtSignal()
     numUserSettingsChanged = pyqtSignal()
@@ -167,6 +171,24 @@ class WorkspaceDialog(QObject):
         self._updatable_machines_model.set_machines_filter(updatable_machines)
         self.updatableMachinesChanged.emit()
 
+    @pyqtProperty(bool, notify = isAbstractMachineChanged)
+    def isAbstractMachine(self) -> bool:
+        return self._is_abstract_machine
+
+    @pyqtSlot(bool)
+    def setIsAbstractMachine(self, is_abstract_machine: bool) -> None:
+        self._is_abstract_machine = is_abstract_machine
+        self.isAbstractMachineChanged.emit()
+
+    @pyqtProperty(bool, notify = isOnlineChanged)
+    def isOnline(self) -> bool:
+        return self._is_online_machine
+
+    @pyqtSlot(bool)
+    def setIsNetworkedMachine(self, is_online_machine: bool) -> None:
+        self._is_online_machine = is_online_machine
+        self.isOnlineChanged.emit()
+
     @pyqtProperty(str, notify=qualityTypeChanged)
     def qualityType(self) -> str:
         return self._quality_type

+ 6 - 4
plugins/3MFReader/WorkspaceDialog.qml

@@ -112,10 +112,10 @@ UM.Dialog
                         machineListModel: manager.updatableMachinesModel
                         machineName: manager.machineName
 
-                        isNetworkPrinter: false
                         isConnectedCloudPrinter: false
                         isCloudRegistered: false
-                        isGroup: false
+                        isNetworkPrinter: manager.isOnline
+                        isGroup: manager.isAbstractMachine
 
                         minDropDownWidth: machineSelector.width
 
@@ -129,10 +129,10 @@ UM.Dialog
                                 onClicked:
                                 {
                                     machineSelector.machineName = catalog.i18nc("@button", "Create new")
-                                    machineSelector.isNetworkPrinter = false
+                                    manager.setIsAbstractMachine(false)
+                                    manager.setIsNetworkedMachine(false)
                                     machineSelector.isConnectedCloudPrinter = false
                                     machineSelector.isCloudRegistered = false
-                                    machineSelector.isGroup = false
 
                                     toggleContent()
                                     manager.setResolveStrategy("machine", "new")
@@ -145,6 +145,8 @@ UM.Dialog
                             toggleContent();
                             manager.setResolveStrategy("machine", "override")
                             manager.setMachineToOverride(machine.id)
+                            manager.setIsAbstractMachine(machine.isAbstractMachine)
+                            manager.setIsNetworkedMachine(machine.isOnline)
                             machineSelector.machineName = machine.name
                         }
                     }