Update printer information when switching global container stacks

This was just evaluated once during the creating of a USB connection. But you can switch out the printer without breaking/making a USB connection, so in that case we have to update it here.

Contributes to issue CURA-5749.
This commit is contained in:
Ghostkeeper 2018-10-12 14:55:13 +02:00
parent 287689a073
commit 99fc372b32
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A
2 changed files with 10 additions and 6 deletions

View file

@ -273,14 +273,18 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
except SerialException:
Logger.log("w", "An exception occured while trying to create serial connection")
return
container_stack = CuraApplication.getInstance().getGlobalContainerStack()
num_extruders = container_stack.getProperty("machine_extruder_count", "value")
# Ensure that a printer is created.
self._printers = [PrinterOutputModel(output_controller=GenericOutputController(self), number_of_extruders=num_extruders)]
self._printers[0].updateName(container_stack.getName())
CuraApplication.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerStackChanged)
self._onGlobalContainerStackChanged()
self.setConnectionState(ConnectionState.connected)
self._update_thread.start()
def _onGlobalContainerStackChanged(self):
container_stack = CuraApplication.getInstance().getGlobalContainerStack()
num_extruders = container_stack.getProperty("machine_extruder_count", "value")
#Ensure that a printer is created.
self._printers = [PrinterOutputModel(output_controller = GenericOutputController(self), number_of_extruders = num_extruders)]
self._printers[0].updateName(container_stack.getName())
def close(self):
super().close()
if self._serial is not None: