mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-02 00:34:26 +08:00
Set some meta data before switching active stacks, fix manual added device pairing
This commit is contained in:
parent
609ceed140
commit
c3d846440d
@ -127,8 +127,8 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
|
||||
if network_key.startswith(self.clusterData.host_name):
|
||||
return True
|
||||
# However, for manually added printers, the local IP address is used in lieu of a proper
|
||||
# network key, so check for that as well
|
||||
if self.clusterData.host_internal_ip is not None and network_key in self.clusterData.host_internal_ip:
|
||||
# network key, so check for that as well. It is in the format "manual:10.1.10.1".
|
||||
if network_key.endswith(self.clusterData.host_internal_ip):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
@ -9,6 +9,7 @@ from UM.Logger import Logger # To log errors talking to the API.
|
||||
from UM.Signal import Signal
|
||||
from cura.API import Account
|
||||
from cura.CuraApplication import CuraApplication
|
||||
from cura.Settings.CuraStackBuilder import CuraStackBuilder
|
||||
from cura.Settings.GlobalStack import GlobalStack
|
||||
|
||||
from .CloudApiClient import CloudApiClient
|
||||
@ -140,14 +141,12 @@ class CloudOutputDeviceManager:
|
||||
if not device:
|
||||
return
|
||||
|
||||
# The newly added machine is automatically activated.
|
||||
machine_manager = CuraApplication.getInstance().getMachineManager()
|
||||
machine_manager.addMachine(device.printerType, device.clusterData.friendly_name)
|
||||
active_machine = CuraApplication.getInstance().getGlobalContainerStack()
|
||||
if not active_machine:
|
||||
return
|
||||
active_machine.setMetaDataEntry(self.META_CLUSTER_ID, device.key)
|
||||
self._connectToOutputDevice(device, active_machine)
|
||||
# Create a new machine and activate it.
|
||||
# We do not use use MachineManager.addMachine here because we need to set the cluster ID before activating it.
|
||||
new_machine = CuraStackBuilder.createMachine(device.name, device.printerType)
|
||||
new_machine.setMetaDataEntry(self.META_CLUSTER_ID, device.key)
|
||||
CuraApplication.getInstance().getMachineManager().setActiveMachine(new_machine.getId())
|
||||
self._connectToOutputDevice(device, new_machine)
|
||||
|
||||
## Callback for when the active machine was changed by the user or a new remote cluster was found.
|
||||
def _connectToActiveMachine(self) -> None:
|
||||
|
@ -9,6 +9,7 @@ from UM.Signal import Signal
|
||||
from UM.Version import Version
|
||||
|
||||
from cura.CuraApplication import CuraApplication
|
||||
from cura.Settings.CuraStackBuilder import CuraStackBuilder
|
||||
from cura.Settings.GlobalStack import GlobalStack
|
||||
|
||||
from .ZeroConfClient import ZeroConfClient
|
||||
@ -203,12 +204,13 @@ class LocalClusterOutputDeviceManager:
|
||||
if device is None:
|
||||
return
|
||||
|
||||
# The newly added machine is automatically activated.
|
||||
CuraApplication.getInstance().getMachineManager().addMachine(device.printerType, device.name)
|
||||
active_machine = CuraApplication.getInstance().getGlobalContainerStack()
|
||||
if not active_machine:
|
||||
return
|
||||
self._connectToOutputDevice(device, active_machine)
|
||||
# Create a new machine and activate it.
|
||||
# We do not use use MachineManager.addMachine here because we need to set the network key before activating it.
|
||||
# If we do not do this the auto-pairing with the cloud-equivalent device will not work.
|
||||
new_machine = CuraStackBuilder.createMachine(device.name, device.printerType)
|
||||
new_machine.setMetaDataEntry(self.META_NETWORK_KEY, device.key)
|
||||
CuraApplication.getInstance().getMachineManager().setActiveMachine(new_machine.getId())
|
||||
self._connectToOutputDevice(device, new_machine)
|
||||
self._showCloudFlowMessage(device)
|
||||
|
||||
## Add an address to the stored preferences.
|
||||
|
Loading…
x
Reference in New Issue
Block a user