diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index da7b8737e3..ebf389b396 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/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 diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 7417a58126..3d22e18874 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/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 } }