mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 17:15:56 +08:00
Merge branch 'switching_performance_fixes' of github.com:Ultimaker/Cura
This commit is contained in:
commit
94439eddd4
@ -105,7 +105,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
|
|||||||
|
|
||||||
def _onExtruderStackContainersChanged(self, container):
|
def _onExtruderStackContainersChanged(self, container):
|
||||||
# The ExtrudersModel needs to be updated when the material-name or -color changes, because the user identifies extruders by material-name
|
# The ExtrudersModel needs to be updated when the material-name or -color changes, because the user identifies extruders by material-name
|
||||||
if container.getMetaDataEntry("type") == "material":
|
|
||||||
self._updateExtruders()
|
self._updateExtruders()
|
||||||
|
|
||||||
modelChanged = pyqtSignal()
|
modelChanged = pyqtSignal()
|
||||||
|
@ -10,6 +10,7 @@ from UM.Application import Application
|
|||||||
from UM.Preferences import Preferences
|
from UM.Preferences import Preferences
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
from UM.Signal import postponeSignals
|
||||||
|
|
||||||
import UM.Settings
|
import UM.Settings
|
||||||
|
|
||||||
@ -286,11 +287,8 @@ class MachineManager(QObject):
|
|||||||
def _onInstanceContainersChanged(self, container):
|
def _onInstanceContainersChanged(self, container):
|
||||||
container_type = container.getMetaDataEntry("type")
|
container_type = container.getMetaDataEntry("type")
|
||||||
|
|
||||||
if container_type == "material":
|
|
||||||
self.activeMaterialChanged.emit()
|
|
||||||
elif container_type == "variant":
|
|
||||||
self.activeVariantChanged.emit()
|
self.activeVariantChanged.emit()
|
||||||
elif container_type == "quality":
|
self.activeMaterialChanged.emit()
|
||||||
self.activeQualityChanged.emit()
|
self.activeQualityChanged.emit()
|
||||||
|
|
||||||
self._updateStacksHaveErrors()
|
self._updateStacksHaveErrors()
|
||||||
@ -694,6 +692,7 @@ class MachineManager(QObject):
|
|||||||
# Depending on from/to material+current variant, a quality profile is chosen and set.
|
# Depending on from/to material+current variant, a quality profile is chosen and set.
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def setActiveMaterial(self, material_id):
|
def setActiveMaterial(self, material_id):
|
||||||
|
with postponeSignals(*self._getContainerChangedSignals(), compress = True):
|
||||||
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = material_id)
|
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = material_id)
|
||||||
if not containers or not self._active_container_stack:
|
if not containers or not self._active_container_stack:
|
||||||
return
|
return
|
||||||
@ -752,6 +751,7 @@ class MachineManager(QObject):
|
|||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def setActiveVariant(self, variant_id):
|
def setActiveVariant(self, variant_id):
|
||||||
|
with postponeSignals(*self._getContainerChangedSignals(), compress = True):
|
||||||
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = variant_id)
|
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = variant_id)
|
||||||
if not containers or not self._active_container_stack:
|
if not containers or not self._active_container_stack:
|
||||||
return
|
return
|
||||||
@ -775,6 +775,7 @@ class MachineManager(QObject):
|
|||||||
# \param quality_id The quality_id of either a quality or a quality_changes
|
# \param quality_id The quality_id of either a quality or a quality_changes
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def setActiveQuality(self, quality_id):
|
def setActiveQuality(self, quality_id):
|
||||||
|
with postponeSignals(*self._getContainerChangedSignals(), compress = True):
|
||||||
self.blurSettings.emit()
|
self.blurSettings.emit()
|
||||||
|
|
||||||
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = quality_id)
|
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = quality_id)
|
||||||
@ -806,8 +807,8 @@ class MachineManager(QObject):
|
|||||||
|
|
||||||
name_changed_connect_stacks.append(stack_quality)
|
name_changed_connect_stacks.append(stack_quality)
|
||||||
name_changed_connect_stacks.append(stack_quality_changes)
|
name_changed_connect_stacks.append(stack_quality_changes)
|
||||||
self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit = True)
|
self._replaceQualityOrQualityChangesInStack(stack, stack_quality)
|
||||||
self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit = True)
|
self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes)
|
||||||
|
|
||||||
# Send emits that are postponed in replaceContainer.
|
# Send emits that are postponed in replaceContainer.
|
||||||
# Here the stacks are finished replacing and every value can be resolved based on the current state.
|
# Here the stacks are finished replacing and every value can be resolved based on the current state.
|
||||||
@ -1296,3 +1297,8 @@ class MachineManager(QObject):
|
|||||||
|
|
||||||
def _onQualityNameChanged(self):
|
def _onQualityNameChanged(self):
|
||||||
self.activeQualityChanged.emit()
|
self.activeQualityChanged.emit()
|
||||||
|
|
||||||
|
def _getContainerChangedSignals(self):
|
||||||
|
stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
|
stacks.append(self._global_container_stack)
|
||||||
|
return [ s.containersChanged for s in stacks ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user