mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-11 00:37:50 -06:00
CURA-4606 ensure startup order for machine manager before build volume to prevent errors there
This commit is contained in:
parent
c56b3bc7bd
commit
b96d49c010
3 changed files with 17 additions and 12 deletions
|
@ -754,6 +754,8 @@ class CuraApplication(QtApplication):
|
||||||
self._quality_manager = QualityManager(container_registry)
|
self._quality_manager = QualityManager(container_registry)
|
||||||
self._quality_manager.initialize()
|
self._quality_manager.initialize()
|
||||||
|
|
||||||
|
self.getMachineManager() # ensure creation of machine manager
|
||||||
|
|
||||||
# Check if we should run as single instance or not
|
# Check if we should run as single instance or not
|
||||||
self._setUpSingleInstanceServer()
|
self._setUpSingleInstanceServer()
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@ class QualityProfilesModel(ListModel):
|
||||||
|
|
||||||
self._layer_height_unit = "" # This is cached
|
self._layer_height_unit = "" # This is cached
|
||||||
|
|
||||||
|
self._update()
|
||||||
|
|
||||||
def _update(self):
|
def _update(self):
|
||||||
Logger.log("d", "Updating quality profile model ...")
|
Logger.log("d", "Updating quality profile model ...")
|
||||||
|
|
||||||
|
|
|
@ -107,18 +107,12 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
self._global_event_keys = set()
|
self._global_event_keys = set()
|
||||||
|
|
||||||
active_machine_id = Preferences.getInstance().getValue("cura/active_machine")
|
|
||||||
|
|
||||||
self._printer_output_devices = []
|
self._printer_output_devices = []
|
||||||
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()
|
||||||
|
|
||||||
if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id):
|
self._application.callLater(self.setInitialActiveMachine)
|
||||||
# An active machine was saved, so restore it.
|
|
||||||
self.setActiveMachine(active_machine_id)
|
|
||||||
# Make sure _active_container_stack is properly initiated
|
|
||||||
ExtruderManager.getInstance().setActiveExtruderIndex(0)
|
|
||||||
|
|
||||||
self._material_incompatible_message = Message(catalog.i18nc("@info:status",
|
self._material_incompatible_message = Message(catalog.i18nc("@info:status",
|
||||||
"The selected material is incompatible with the selected machine or configuration."),
|
"The selected material is incompatible with the selected machine or configuration."),
|
||||||
|
@ -150,6 +144,14 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
rootMaterialChanged = pyqtSignal()
|
rootMaterialChanged = pyqtSignal()
|
||||||
|
|
||||||
|
def setInitialActiveMachine(self):
|
||||||
|
active_machine_id = Preferences.getInstance().getValue("cura/active_machine")
|
||||||
|
if active_machine_id != "" and ContainerRegistry.getInstance().findContainerStacksMetadata(id = active_machine_id):
|
||||||
|
# An active machine was saved, so restore it.
|
||||||
|
self.setActiveMachine(active_machine_id)
|
||||||
|
# Make sure _active_container_stack is properly initiated
|
||||||
|
ExtruderManager.getInstance().setActiveExtruderIndex(0)
|
||||||
|
|
||||||
def _onOutputDevicesChanged(self) -> None:
|
def _onOutputDevicesChanged(self) -> None:
|
||||||
self._printer_output_devices = []
|
self._printer_output_devices = []
|
||||||
for printer_output_device in Application.getInstance().getOutputDeviceManager().getOutputDevices():
|
for printer_output_device in Application.getInstance().getOutputDeviceManager().getOutputDevices():
|
||||||
|
@ -285,11 +287,10 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
quality_groups = self._application._quality_manager.getQualityGroups(global_stack)
|
quality_groups = self._application._quality_manager.getQualityGroups(global_stack)
|
||||||
quality_type = global_quality.getMetaDataEntry("quality_type")
|
quality_type = global_quality.getMetaDataEntry("quality_type")
|
||||||
if quality_type in quality_groups:
|
if not quality_type in quality_groups:
|
||||||
|
Logger.log("w", "Quality type [%s] not found in available qualities [%s]", quality_type, str(quality_groups.values()))
|
||||||
|
return
|
||||||
new_quality_group = quality_groups[quality_type]
|
new_quality_group = quality_groups[quality_type]
|
||||||
else:
|
|
||||||
new_quality_group = quality_groups.values()[0]
|
|
||||||
Logger.log("e", "Quality type [%s] not found in available qualities [%s]", quality_type, str(quality_groups.values()))
|
|
||||||
self._setQualityGroup(new_quality_group)
|
self._setQualityGroup(new_quality_group)
|
||||||
|
|
||||||
if global_quality_changes.getId() != "empty_quality_changes":
|
if global_quality_changes.getId() != "empty_quality_changes":
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue