Fixed bunch of wrong / missing typing

This commit is contained in:
Jaime van Kessel 2018-05-03 21:14:06 +02:00
parent 7d2257838b
commit 7c80bc203c

View File

@ -7,6 +7,8 @@ import time
from typing import List, Dict, TYPE_CHECKING, Optional from typing import List, Dict, TYPE_CHECKING, Optional
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.Interfaces import ContainerInterface
from UM.Signal import Signal from UM.Signal import Signal
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer
@ -28,6 +30,7 @@ from cura.PrinterOutput.ConfigurationModel import ConfigurationModel
from cura.PrinterOutput.ExtruderConfigurationModel import ExtruderConfigurationModel from cura.PrinterOutput.ExtruderConfigurationModel import ExtruderConfigurationModel
from cura.PrinterOutput.MaterialOutputModel import MaterialOutputModel from cura.PrinterOutput.MaterialOutputModel import MaterialOutputModel
from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderManager import ExtruderManager
from cura.Settings.ExtruderStack import ExtruderStack
from .CuraStackBuilder import CuraStackBuilder from .CuraStackBuilder import CuraStackBuilder
@ -38,16 +41,15 @@ if TYPE_CHECKING:
from cura.Settings.CuraContainerStack import CuraContainerStack from cura.Settings.CuraContainerStack import CuraContainerStack
from cura.Settings.GlobalStack import GlobalStack from cura.Settings.GlobalStack import GlobalStack
class MachineManager(QObject): class MachineManager(QObject):
def __init__(self, parent = None): def __init__(self, parent = None):
super().__init__(parent) super().__init__(parent)
self._active_container_stack = None # type: CuraContainerStack self._active_container_stack = None # type: Optional[ExtruderManager]
self._global_container_stack = None # type: GlobalStack self._global_container_stack = None # type: Optional[GlobalStack]
self._current_root_material_id = {} self._current_root_material_id = {} # type: Dict[str, str]
self._current_quality_group = None self._current_quality_group = None
self._current_quality_changes_group = None self._current_quality_changes_group = None
@ -62,7 +64,7 @@ class MachineManager(QObject):
self._application = Application.getInstance() self._application = Application.getInstance()
self._application.globalContainerStackChanged.connect(self._onGlobalContainerChanged) self._application.globalContainerStackChanged.connect(self._onGlobalContainerChanged)
self._application.getContainerRegistry().containerLoadComplete.connect(self._onInstanceContainersChanged) self._application.getContainerRegistry().containerLoadComplete.connect(self._onContainersChanged)
## When the global container is changed, active material probably needs to be updated. ## When the global container is changed, active material probably needs to be updated.
self.globalContainerChanged.connect(self.activeMaterialChanged) self.globalContainerChanged.connect(self.activeMaterialChanged)
@ -99,7 +101,7 @@ class MachineManager(QObject):
self._global_event_keys = set() self._global_event_keys = set()
self._printer_output_devices = [] self._printer_output_devices = [] # type: List[PrinterOutputDevice]
Application.getInstance().getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged) Application.getInstance().getOutputDeviceManager().outputDevicesChanged.connect(self._onOutputDevicesChanged)
# There might already be some output devices by the time the signal is connected # There might already be some output devices by the time the signal is connected
self._onOutputDevicesChanged() self._onOutputDevicesChanged()
@ -160,7 +162,7 @@ class MachineManager(QObject):
rootMaterialChanged = pyqtSignal() rootMaterialChanged = pyqtSignal()
def setInitialActiveMachine(self): def setInitialActiveMachine(self) -> None:
active_machine_id = Preferences.getInstance().getValue("cura/active_machine") active_machine_id = Preferences.getInstance().getValue("cura/active_machine")
if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id): if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id):
# An active machine was saved, so restore it. # An active machine was saved, so restore it.
@ -177,7 +179,7 @@ class MachineManager(QObject):
self.outputDevicesChanged.emit() self.outputDevicesChanged.emit()
@pyqtProperty(QObject, notify = currentConfigurationChanged) @pyqtProperty(QObject, notify = currentConfigurationChanged)
def currentConfiguration(self): def currentConfiguration(self) -> ConfigurationModel:
return self._current_printer_configuration return self._current_printer_configuration
def _onCurrentConfigurationChanged(self) -> None: def _onCurrentConfigurationChanged(self) -> None:
@ -210,7 +212,7 @@ class MachineManager(QObject):
return self._current_printer_configuration == configuration return self._current_printer_configuration == configuration
@pyqtProperty("QVariantList", notify = outputDevicesChanged) @pyqtProperty("QVariantList", notify = outputDevicesChanged)
def printerOutputDevices(self): def printerOutputDevices(self) -> List[PrinterOutputDevice]:
return self._printer_output_devices return self._printer_output_devices
@pyqtProperty(int, constant=True) @pyqtProperty(int, constant=True)
@ -224,7 +226,7 @@ class MachineManager(QObject):
except TypeError: # pyQtSignal gives a TypeError when disconnecting from something that was already disconnected. except TypeError: # pyQtSignal gives a TypeError when disconnecting from something that was already disconnected.
pass pass
try: try:
self._global_container_stack.containersChanged.disconnect(self._onInstanceContainersChanged) self._global_container_stack.containersChanged.disconnect(self._onContainersChanged)
except TypeError: except TypeError:
pass pass
try: try:
@ -234,7 +236,7 @@ class MachineManager(QObject):
for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks(): for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks():
extruder_stack.propertyChanged.disconnect(self._onPropertyChanged) extruder_stack.propertyChanged.disconnect(self._onPropertyChanged)
extruder_stack.containersChanged.disconnect(self._onInstanceContainersChanged) extruder_stack.containersChanged.disconnect(self._onContainersChanged)
# Update the local global container stack reference # Update the local global container stack reference
self._global_container_stack = Application.getInstance().getGlobalContainerStack() self._global_container_stack = Application.getInstance().getGlobalContainerStack()
@ -248,7 +250,7 @@ class MachineManager(QObject):
Preferences.getInstance().setValue("cura/active_machine", self._global_container_stack.getId()) Preferences.getInstance().setValue("cura/active_machine", self._global_container_stack.getId())
self._global_container_stack.nameChanged.connect(self._onMachineNameChanged) self._global_container_stack.nameChanged.connect(self._onMachineNameChanged)
self._global_container_stack.containersChanged.connect(self._onInstanceContainersChanged) self._global_container_stack.containersChanged.connect(self._onContainersChanged)
self._global_container_stack.propertyChanged.connect(self._onPropertyChanged) self._global_container_stack.propertyChanged.connect(self._onPropertyChanged)
# Global stack can have only a variant if it is a buildplate # Global stack can have only a variant if it is a buildplate
@ -265,7 +267,7 @@ class MachineManager(QObject):
# Listen for changes on all extruder stacks # Listen for changes on all extruder stacks
for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks(): for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks():
extruder_stack.propertyChanged.connect(self._onPropertyChanged) extruder_stack.propertyChanged.connect(self._onPropertyChanged)
extruder_stack.containersChanged.connect(self._onInstanceContainersChanged) extruder_stack.containersChanged.connect(self._onContainersChanged)
if self._global_container_stack.getId() in self.machine_extruder_material_update_dict: if self._global_container_stack.getId() in self.machine_extruder_material_update_dict:
for func in self.machine_extruder_material_update_dict[self._global_container_stack.getId()]: for func in self.machine_extruder_material_update_dict[self._global_container_stack.getId()]:
@ -292,7 +294,7 @@ class MachineManager(QObject):
self.rootMaterialChanged.emit() self.rootMaterialChanged.emit()
def _onInstanceContainersChanged(self, container) -> None: def _onContainersChanged(self, container: ContainerInterface) -> None:
self._instance_container_timer.start() self._instance_container_timer.start()
def _onPropertyChanged(self, key: str, property_name: str) -> None: def _onPropertyChanged(self, key: str, property_name: str) -> None:
@ -301,7 +303,7 @@ class MachineManager(QObject):
self.activeStackValueChanged.emit() self.activeStackValueChanged.emit()
## Given a global_stack, make sure that it's all valid by searching for this quality group and applying it again ## Given a global_stack, make sure that it's all valid by searching for this quality group and applying it again
def _initMachineState(self, global_stack): def _initMachineState(self, global_stack: "CuraContainerStack") -> None:
material_dict = {} material_dict = {}
for position, extruder in global_stack.extruders.items(): for position, extruder in global_stack.extruders.items():
material_dict[position] = extruder.material.getMetaDataEntry("base_file") material_dict[position] = extruder.material.getMetaDataEntry("base_file")
@ -620,7 +622,7 @@ class MachineManager(QObject):
## Copy the value of the setting of the current extruder to all other extruders as well as the global container. ## Copy the value of the setting of the current extruder to all other extruders as well as the global container.
@pyqtSlot(str) @pyqtSlot(str)
def copyValueToExtruders(self, key: str): def copyValueToExtruders(self, key: str) -> None:
new_value = self._active_container_stack.getProperty(key, "value") new_value = self._active_container_stack.getProperty(key, "value")
extruder_stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())] extruder_stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())]
@ -631,7 +633,7 @@ class MachineManager(QObject):
## Copy the value of all manually changed settings of the current extruder to all other extruders. ## Copy the value of all manually changed settings of the current extruder to all other extruders.
@pyqtSlot() @pyqtSlot()
def copyAllValuesToExtruders(self): def copyAllValuesToExtruders(self) -> None:
extruder_stacks = list(self._global_container_stack.extruders.values()) extruder_stacks = list(self._global_container_stack.extruders.values())
for extruder_stack in extruder_stacks: for extruder_stack in extruder_stacks:
if extruder_stack != self._active_container_stack: if extruder_stack != self._active_container_stack:
@ -685,7 +687,7 @@ class MachineManager(QObject):
return fallback_title return fallback_title
@pyqtSlot(str, str) @pyqtSlot(str, str)
def renameMachine(self, machine_id: str, new_name: str): def renameMachine(self, machine_id: str, new_name: str) -> None:
container_registry = ContainerRegistry.getInstance() container_registry = ContainerRegistry.getInstance()
machine_stack = container_registry.findContainerStacks(id = machine_id) machine_stack = container_registry.findContainerStacks(id = machine_id)
if machine_stack: if machine_stack:
@ -694,7 +696,7 @@ class MachineManager(QObject):
self.globalContainerChanged.emit() self.globalContainerChanged.emit()
@pyqtSlot(str) @pyqtSlot(str)
def removeMachine(self, machine_id: str): def removeMachine(self, machine_id: str) -> None:
# If the machine that is being removed is the currently active machine, set another machine as the active machine. # If the machine that is being removed is the currently active machine, set another machine as the active machine.
activate_new_machine = (self._global_container_stack and self._global_container_stack.getId() == machine_id) activate_new_machine = (self._global_container_stack and self._global_container_stack.getId() == machine_id)
@ -791,9 +793,9 @@ class MachineManager(QObject):
if containers: if containers:
return containers[0].definition.getId() return containers[0].definition.getId()
def getIncompatibleSettingsOnEnabledExtruders(self, container): def getIncompatibleSettingsOnEnabledExtruders(self, container: InstanceContainer) -> List[str]:
extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value") extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value")
result = [] result = [] # type: List[str]
for setting_instance in container.findInstances(): for setting_instance in container.findInstances():
setting_key = setting_instance.definition.key setting_key = setting_instance.definition.key
setting_enabled = self._global_container_stack.getProperty(setting_key, "enabled") setting_enabled = self._global_container_stack.getProperty(setting_key, "enabled")
@ -815,7 +817,7 @@ class MachineManager(QObject):
return result return result
## Update extruder number to a valid value when the number of extruders are changed, or when an extruder is changed ## Update extruder number to a valid value when the number of extruders are changed, or when an extruder is changed
def correctExtruderSettings(self): def correctExtruderSettings(self) -> None:
for setting_key in self.getIncompatibleSettingsOnEnabledExtruders(self._global_container_stack.userChanges): for setting_key in self.getIncompatibleSettingsOnEnabledExtruders(self._global_container_stack.userChanges):
self._global_container_stack.userChanges.removeInstance(setting_key) self._global_container_stack.userChanges.removeInstance(setting_key)
add_user_changes = self.getIncompatibleSettingsOnEnabledExtruders(self._global_container_stack.qualityChanges) add_user_changes = self.getIncompatibleSettingsOnEnabledExtruders(self._global_container_stack.qualityChanges)
@ -832,7 +834,7 @@ class MachineManager(QObject):
## Set the amount of extruders on the active machine (global stack) ## Set the amount of extruders on the active machine (global stack)
# \param extruder_count int the number of extruders to set # \param extruder_count int the number of extruders to set
def setActiveMachineExtruderCount(self, extruder_count): def setActiveMachineExtruderCount(self, extruder_count: int) -> None:
extruder_manager = Application.getInstance().getExtruderManager() extruder_manager = Application.getInstance().getExtruderManager()
definition_changes_container = self._global_container_stack.definitionChanges definition_changes_container = self._global_container_stack.definitionChanges
@ -887,13 +889,13 @@ class MachineManager(QObject):
self.forceUpdateAllSettings() self.forceUpdateAllSettings()
@pyqtSlot(int, result = QObject) @pyqtSlot(int, result = QObject)
def getExtruder(self, position: int): def getExtruder(self, position: int) -> Optional[ExtruderStack]:
extruder = None extruder = None
if self._global_container_stack: if self._global_container_stack:
extruder = self._global_container_stack.extruders.get(str(position)) extruder = self._global_container_stack.extruders.get(str(position))
return extruder return extruder
def updateDefaultExtruder(self): def updateDefaultExtruder(self) -> None:
extruder_items = sorted(self._global_container_stack.extruders.items()) extruder_items = sorted(self._global_container_stack.extruders.items())
old_position = self._default_extruder_position old_position = self._default_extruder_position
new_default_position = "0" new_default_position = "0"
@ -905,7 +907,7 @@ class MachineManager(QObject):
self._default_extruder_position = new_default_position self._default_extruder_position = new_default_position
self.extruderChanged.emit() self.extruderChanged.emit()
def updateNumberExtrudersEnabled(self): def updateNumberExtrudersEnabled(self) -> None:
definition_changes_container = self._global_container_stack.definitionChanges definition_changes_container = self._global_container_stack.definitionChanges
machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value") machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value")
extruder_count = 0 extruder_count = 0
@ -917,16 +919,16 @@ class MachineManager(QObject):
self.numberExtrudersEnabledChanged.emit() self.numberExtrudersEnabledChanged.emit()
@pyqtProperty(int, notify = numberExtrudersEnabledChanged) @pyqtProperty(int, notify = numberExtrudersEnabledChanged)
def numberExtrudersEnabled(self): def numberExtrudersEnabled(self) -> int:
return self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") return self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value")
@pyqtProperty(str, notify = extruderChanged) @pyqtProperty(str, notify = extruderChanged)
def defaultExtruderPosition(self): def defaultExtruderPosition(self) -> str:
return self._default_extruder_position return self._default_extruder_position
## This will fire the propertiesChanged for all settings so they will be updated in the front-end ## This will fire the propertiesChanged for all settings so they will be updated in the front-end
@pyqtSlot() @pyqtSlot()
def forceUpdateAllSettings(self): def forceUpdateAllSettings(self) -> None:
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
property_names = ["value", "resolve", "validationState"] property_names = ["value", "resolve", "validationState"]
for container in [self._global_container_stack] + list(self._global_container_stack.extruders.values()): for container in [self._global_container_stack] + list(self._global_container_stack.extruders.values()):
@ -934,8 +936,11 @@ class MachineManager(QObject):
container.propertiesChanged.emit(setting_key, property_names) container.propertiesChanged.emit(setting_key, property_names)
@pyqtSlot(int, bool) @pyqtSlot(int, bool)
def setExtruderEnabled(self, position: int, enabled) -> None: def setExtruderEnabled(self, position: int, enabled: bool) -> None:
extruder = self.getExtruder(position) extruder = self.getExtruder(position)
if not extruder:
Logger.log("w", "Could not find extruder on position %s", position)
extruder.setEnabled(enabled) extruder.setEnabled(enabled)
self.updateDefaultExtruder() self.updateDefaultExtruder()
self.updateNumberExtrudersEnabled() self.updateNumberExtrudersEnabled()
@ -952,13 +957,13 @@ class MachineManager(QObject):
# Also trigger the build plate compatibility to update # Also trigger the build plate compatibility to update
self.activeMaterialChanged.emit() self.activeMaterialChanged.emit()
def _onMachineNameChanged(self): def _onMachineNameChanged(self) -> None:
self.globalContainerChanged.emit() self.globalContainerChanged.emit()
def _onMaterialNameChanged(self): def _onMaterialNameChanged(self) -> None:
self.activeMaterialChanged.emit() self.activeMaterialChanged.emit()
def _onQualityNameChanged(self): def _onQualityNameChanged(self) -> None:
self.activeQualityChanged.emit() self.activeQualityChanged.emit()
def _getContainerChangedSignals(self) -> List[Signal]: def _getContainerChangedSignals(self) -> List[Signal]:
@ -969,19 +974,19 @@ class MachineManager(QObject):
return [ s.containersChanged for s in stacks ] return [ s.containersChanged for s in stacks ]
@pyqtSlot(str, str, str) @pyqtSlot(str, str, str)
def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str): def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str) -> None:
for key, extruder in self._global_container_stack.extruders.items(): for key, extruder in self._global_container_stack.extruders.items():
container = extruder.userChanges container = extruder.userChanges
container.setProperty(setting_name, property_name, property_value) container.setProperty(setting_name, property_name, property_value)
@pyqtProperty("QVariantList", notify = globalContainerChanged) @pyqtProperty("QVariantList", notify = globalContainerChanged)
def currentExtruderPositions(self): def currentExtruderPositions(self) -> List[str]:
if self._global_container_stack is None: if self._global_container_stack is None:
return [] return []
return sorted(list(self._global_container_stack.extruders.keys())) return sorted(list(self._global_container_stack.extruders.keys()))
## Update _current_root_material_id when the current root material was changed. ## Update _current_root_material_id when the current root material was changed.
def _onRootMaterialChanged(self): def _onRootMaterialChanged(self) -> None:
self._current_root_material_id = {} self._current_root_material_id = {}
if self._global_container_stack: if self._global_container_stack:
@ -989,13 +994,13 @@ class MachineManager(QObject):
self._current_root_material_id[position] = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file") self._current_root_material_id[position] = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file")
@pyqtProperty("QVariant", notify = rootMaterialChanged) @pyqtProperty("QVariant", notify = rootMaterialChanged)
def currentRootMaterialId(self): def currentRootMaterialId(self) -> Dict[str, str]:
return self._current_root_material_id return self._current_root_material_id
## Return the variant names in the extruder stack(s). ## Return the variant names in the extruder stack(s).
## For the variant in the global stack, use activeVariantBuildplateName ## For the variant in the global stack, use activeVariantBuildplateName
@pyqtProperty("QVariant", notify = activeVariantChanged) @pyqtProperty("QVariant", notify = activeVariantChanged)
def activeVariantNames(self): def activeVariantNames(self) -> Dict[str, str]:
result = {} result = {}
active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
@ -1011,7 +1016,7 @@ class MachineManager(QObject):
# Sets all quality and quality_changes containers to empty_quality and empty_quality_changes containers # Sets all quality and quality_changes containers to empty_quality and empty_quality_changes containers
# for all stacks in the currently active machine. # for all stacks in the currently active machine.
# #
def _setEmptyQuality(self): def _setEmptyQuality(self) -> None:
self._current_quality_group = None self._current_quality_group = None
self._current_quality_changes_group = None self._current_quality_changes_group = None
self._global_container_stack.quality = self._empty_quality_container self._global_container_stack.quality = self._empty_quality_container
@ -1023,7 +1028,7 @@ class MachineManager(QObject):
self.activeQualityGroupChanged.emit() self.activeQualityGroupChanged.emit()
self.activeQualityChangesGroupChanged.emit() self.activeQualityChangesGroupChanged.emit()
def _setQualityGroup(self, quality_group, empty_quality_changes = True): def _setQualityGroup(self, quality_group, empty_quality_changes: bool = True) -> None:
if quality_group.node_for_global.getContainer() is None: if quality_group.node_for_global.getContainer() is None:
return return
for node in quality_group.nodes_for_extruders.values(): for node in quality_group.nodes_for_extruders.values():
@ -1219,7 +1224,7 @@ class MachineManager(QObject):
## Given a printer definition name, select the right machine instance. In case it doesn't exist, create a new ## Given a printer definition name, select the right machine instance. In case it doesn't exist, create a new
# instance with the same network key. # instance with the same network key.
@pyqtSlot(str) @pyqtSlot(str)
def switchPrinterType(self, machine_name): def switchPrinterType(self, machine_name: str):
# Don't switch if the user tries to change to the same type of printer # Don't switch if the user tries to change to the same type of printer
if self.activeMachineDefinitionName == machine_name: if self.activeMachineDefinitionName == machine_name:
return return
@ -1243,7 +1248,7 @@ class MachineManager(QObject):
self.setActiveMachine(new_machine.getId()) self.setActiveMachine(new_machine.getId())
@pyqtSlot(QObject) @pyqtSlot(QObject)
def applyRemoteConfiguration(self, configuration: ConfigurationModel): def applyRemoteConfiguration(self, configuration: ConfigurationModel) -> None:
self.blurSettings.emit() self.blurSettings.emit()
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
self.switchPrinterType(configuration.printerType) self.switchPrinterType(configuration.printerType)
@ -1273,7 +1278,7 @@ class MachineManager(QObject):
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
## Find all container stacks that has the pair 'key = value' in its metadata and replaces the value with 'new_value' ## Find all container stacks that has the pair 'key = value' in its metadata and replaces the value with 'new_value'
def replaceContainersMetadata(self, key: str, value: str, new_value: str): def replaceContainersMetadata(self, key: str, value: str, new_value: str) -> None:
machines = ContainerRegistry.getInstance().findContainerStacks(type = "machine") machines = ContainerRegistry.getInstance().findContainerStacks(type = "machine")
for machine in machines: for machine in machines:
if machine.getMetaDataEntry(key) == value: if machine.getMetaDataEntry(key) == value:
@ -1282,7 +1287,7 @@ class MachineManager(QObject):
## This method checks if the name of the group stored in the definition container is correct. ## This method checks if the name of the group stored in the definition container is correct.
# After updating from 3.2 to 3.3 some group names may be temporary. If there is a mismatch in the name of the group # After updating from 3.2 to 3.3 some group names may be temporary. If there is a mismatch in the name of the group
# then all the container stacks are updated, both the current and the hidden ones. # then all the container stacks are updated, both the current and the hidden ones.
def checkCorrectGroupName(self, device_id: str, group_name: str): def checkCorrectGroupName(self, device_id: str, group_name: str) -> None:
if self._global_container_stack and device_id == self.activeMachineNetworkKey: if self._global_container_stack and device_id == self.activeMachineNetworkKey:
# Check if the connect_group_name is correct. If not, update all the containers connected to the same printer # Check if the connect_group_name is correct. If not, update all the containers connected to the same printer
if self.activeMachineNetworkGroupName != group_name: if self.activeMachineNetworkGroupName != group_name:
@ -1316,7 +1321,7 @@ class MachineManager(QObject):
self.setMaterial(position, material_node) self.setMaterial(position, material_node)
@pyqtSlot(str, "QVariant") @pyqtSlot(str, "QVariant")
def setMaterial(self, position, container_node): def setMaterial(self, position: str, container_node) -> None:
position = str(position) position = str(position)
self.blurSettings.emit() self.blurSettings.emit()
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
@ -1324,13 +1329,13 @@ class MachineManager(QObject):
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot(str, str) @pyqtSlot(str, str)
def setVariantByName(self, position, variant_name): def setVariantByName(self, position: str, variant_name: str) -> None:
machine_definition_id = self._global_container_stack.definition.id machine_definition_id = self._global_container_stack.definition.id
variant_node = self._variant_manager.getVariantNode(machine_definition_id, variant_name) variant_node = self._variant_manager.getVariantNode(machine_definition_id, variant_name)
self.setVariant(position, variant_node) self.setVariant(position, variant_node)
@pyqtSlot(str, "QVariant") @pyqtSlot(str, "QVariant")
def setVariant(self, position, container_node): def setVariant(self, position: str, container_node):
position = str(position) position = str(position)
self.blurSettings.emit() self.blurSettings.emit()
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
@ -1339,7 +1344,7 @@ class MachineManager(QObject):
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot(str) @pyqtSlot(str)
def setQualityGroupByQualityType(self, quality_type): def setQualityGroupByQualityType(self, quality_type: str) -> None:
if self._global_container_stack is None: if self._global_container_stack is None:
return return
# Get all the quality groups for this global stack and filter out by quality_type # Get all the quality groups for this global stack and filter out by quality_type
@ -1391,7 +1396,7 @@ class MachineManager(QObject):
name = self._current_quality_group.name name = self._current_quality_group.name
return name return name
def _updateUponMaterialMetadataChange(self): def _updateUponMaterialMetadataChange(self) -> None:
if self._global_container_stack is None: if self._global_container_stack is None:
return return
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):