mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 19:05:54 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
502b6b6f08
@ -66,8 +66,8 @@ class CuraContainerStack(ContainerStack):
|
|||||||
## Set the quality changes container.
|
## Set the quality changes container.
|
||||||
#
|
#
|
||||||
# \param new_quality_changes The new quality changes container. It is expected to have a "type" metadata entry with the value "quality_changes".
|
# \param new_quality_changes The new quality changes container. It is expected to have a "type" metadata entry with the value "quality_changes".
|
||||||
def setQualityChanges(self, new_quality_changes: InstanceContainer) -> None:
|
def setQualityChanges(self, new_quality_changes: InstanceContainer, postpone_emit = False) -> None:
|
||||||
self.replaceContainer(_ContainerIndexes.QualityChanges, new_quality_changes)
|
self.replaceContainer(_ContainerIndexes.QualityChanges, new_quality_changes, postpone_emit = postpone_emit)
|
||||||
|
|
||||||
## Set the quality changes container by an ID.
|
## Set the quality changes container by an ID.
|
||||||
#
|
#
|
||||||
@ -93,8 +93,8 @@ class CuraContainerStack(ContainerStack):
|
|||||||
## Set the quality container.
|
## Set the quality container.
|
||||||
#
|
#
|
||||||
# \param new_quality The new quality container. It is expected to have a "type" metadata entry with the value "quality".
|
# \param new_quality The new quality container. It is expected to have a "type" metadata entry with the value "quality".
|
||||||
def setQuality(self, new_quality: InstanceContainer) -> None:
|
def setQuality(self, new_quality: InstanceContainer, postpone_emit = False) -> None:
|
||||||
self.replaceContainer(_ContainerIndexes.Quality, new_quality)
|
self.replaceContainer(_ContainerIndexes.Quality, new_quality, postpone_emit = postpone_emit)
|
||||||
|
|
||||||
## Set the quality container by an ID.
|
## Set the quality container by an ID.
|
||||||
#
|
#
|
||||||
@ -131,8 +131,8 @@ class CuraContainerStack(ContainerStack):
|
|||||||
## Set the material container.
|
## Set the material container.
|
||||||
#
|
#
|
||||||
# \param new_quality_changes The new material container. It is expected to have a "type" metadata entry with the value "quality_changes".
|
# \param new_quality_changes The new material container. It is expected to have a "type" metadata entry with the value "quality_changes".
|
||||||
def setMaterial(self, new_material: InstanceContainer) -> None:
|
def setMaterial(self, new_material: InstanceContainer, postpone_emit = False) -> None:
|
||||||
self.replaceContainer(_ContainerIndexes.Material, new_material)
|
self.replaceContainer(_ContainerIndexes.Material, new_material, postpone_emit = postpone_emit)
|
||||||
|
|
||||||
## Set the material container by an ID.
|
## Set the material container by an ID.
|
||||||
#
|
#
|
||||||
|
@ -51,6 +51,11 @@ class MachineManager(QObject):
|
|||||||
self._error_check_timer.setSingleShot(True)
|
self._error_check_timer.setSingleShot(True)
|
||||||
self._error_check_timer.timeout.connect(self._updateStacksHaveErrors)
|
self._error_check_timer.timeout.connect(self._updateStacksHaveErrors)
|
||||||
|
|
||||||
|
self._instance_container_timer = QTimer()
|
||||||
|
self._instance_container_timer.setInterval(250)
|
||||||
|
self._instance_container_timer.setSingleShot(True)
|
||||||
|
self._instance_container_timer.timeout.connect(self.__onInstanceContainersChanged)
|
||||||
|
|
||||||
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
|
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
|
||||||
## 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)
|
||||||
@ -317,23 +322,15 @@ class MachineManager(QObject):
|
|||||||
# on _active_container_stack. If it changes, then the properties change.
|
# on _active_container_stack. If it changes, then the properties change.
|
||||||
self.activeQualityChanged.emit()
|
self.activeQualityChanged.emit()
|
||||||
|
|
||||||
def _onInstanceContainersChanged(self, container):
|
def __onInstanceContainersChanged(self):
|
||||||
container_type = container.getMetaDataEntry("type")
|
self.activeQualityChanged.emit()
|
||||||
|
self.activeVariantChanged.emit()
|
||||||
if container_type == "quality":
|
self.activeMaterialChanged.emit()
|
||||||
self.activeQualityChanged.emit()
|
|
||||||
elif container_type == "variant":
|
|
||||||
self.activeVariantChanged.emit()
|
|
||||||
elif container_type == "material":
|
|
||||||
self.activeMaterialChanged.emit()
|
|
||||||
else:
|
|
||||||
# We don't know which one it is, send all the signals
|
|
||||||
self.activeQualityChanged.emit()
|
|
||||||
self.activeVariantChanged.emit()
|
|
||||||
self.activeMaterialChanged.emit()
|
|
||||||
|
|
||||||
self._error_check_timer.start()
|
self._error_check_timer.start()
|
||||||
|
|
||||||
|
def _onInstanceContainersChanged(self, container):
|
||||||
|
self._instance_container_timer.start()
|
||||||
|
|
||||||
def _onPropertyChanged(self, key, property_name):
|
def _onPropertyChanged(self, key, property_name):
|
||||||
if property_name == "value":
|
if property_name == "value":
|
||||||
# Notify UI items, such as the "changed" star in profile pull down menu.
|
# Notify UI items, such as the "changed" star in profile pull down menu.
|
||||||
@ -811,13 +808,13 @@ class MachineManager(QObject):
|
|||||||
# Quality profile come in two flavours: type=quality and type=quality_changes
|
# Quality profile come in two flavours: type=quality and type=quality_changes
|
||||||
# If we found a quality_changes profile then look up its parent quality profile.
|
# If we found a quality_changes profile then look up its parent quality profile.
|
||||||
container_type = containers[0].getMetaDataEntry("type")
|
container_type = containers[0].getMetaDataEntry("type")
|
||||||
|
quality_name = containers[0].getName()
|
||||||
|
quality_type = containers[0].getMetaDataEntry("quality_type")
|
||||||
|
|
||||||
# Get quality container and optionally the quality_changes container.
|
# Get quality container and optionally the quality_changes container.
|
||||||
if container_type == "quality":
|
if container_type == "quality":
|
||||||
quality_type = containers[0].getMetaDataEntry("quality_type")
|
|
||||||
new_quality_settings_list = self.determineQualityAndQualityChangesForQualityType(quality_type)
|
new_quality_settings_list = self.determineQualityAndQualityChangesForQualityType(quality_type)
|
||||||
elif container_type == "quality_changes":
|
elif container_type == "quality_changes":
|
||||||
quality_name = containers[0].getName()
|
|
||||||
new_quality_settings_list = self._determineQualityAndQualityChangesForQualityChanges(quality_name)
|
new_quality_settings_list = self._determineQualityAndQualityChangesForQualityChanges(quality_name)
|
||||||
else:
|
else:
|
||||||
Logger.log("e", "Tried to set quality to a container that is not of the right type")
|
Logger.log("e", "Tried to set quality to a container that is not of the right type")
|
||||||
@ -835,8 +832,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)
|
self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit=True)
|
||||||
self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes)
|
self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit=True)
|
||||||
|
|
||||||
# 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.
|
||||||
@ -954,18 +951,14 @@ class MachineManager(QObject):
|
|||||||
# Disconnect the signal handling from the old container.
|
# Disconnect the signal handling from the old container.
|
||||||
container_type = container.getMetaDataEntry("type")
|
container_type = container.getMetaDataEntry("type")
|
||||||
if container_type == "quality":
|
if container_type == "quality":
|
||||||
if stack.quality == container:
|
|
||||||
return # Nothing to do
|
|
||||||
stack.quality.nameChanged.disconnect(self._onQualityNameChanged)
|
stack.quality.nameChanged.disconnect(self._onQualityNameChanged)
|
||||||
stack.setQuality(container)
|
stack.setQuality(container, postpone_emit = postpone_emit)
|
||||||
stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged)
|
stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged)
|
||||||
elif container_type == "quality_changes" or container_type is None:
|
elif container_type == "quality_changes" or container_type is None:
|
||||||
# If the container is an empty container, we need to change the quality_changes.
|
# If the container is an empty container, we need to change the quality_changes.
|
||||||
# Quality can never be set to empty.
|
# Quality can never be set to empty.
|
||||||
if stack.qualityChanges == container:
|
|
||||||
return # Nothing to do
|
|
||||||
stack.qualityChanges.nameChanged.disconnect(self._onQualityNameChanged)
|
stack.qualityChanges.nameChanged.disconnect(self._onQualityNameChanged)
|
||||||
stack.setQualityChanges(container)
|
stack.setQualityChanges(container, postpone_emit = postpone_emit)
|
||||||
stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged)
|
stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged)
|
||||||
self._onQualityNameChanged()
|
self._onQualityNameChanged()
|
||||||
|
|
||||||
|
@ -42,12 +42,6 @@
|
|||||||
"machine_nozzle_gantry_distance": {
|
"machine_nozzle_gantry_distance": {
|
||||||
"default_value": 55
|
"default_value": 55
|
||||||
},
|
},
|
||||||
"machine_nozzle_offset_x_1": {
|
|
||||||
"default_value": 18
|
|
||||||
},
|
|
||||||
"machine_nozzle_offset_y_1": {
|
|
||||||
"default_value": 0
|
|
||||||
},
|
|
||||||
"machine_gcode_flavor": {
|
"machine_gcode_flavor": {
|
||||||
"default_value": "RepRap"
|
"default_value": "RepRap"
|
||||||
},
|
},
|
||||||
|
@ -44,12 +44,6 @@
|
|||||||
"gantry_height": {
|
"gantry_height": {
|
||||||
"default_value": 82.3
|
"default_value": 82.3
|
||||||
},
|
},
|
||||||
"machine_nozzle_offset_x": {
|
|
||||||
"default_value": 0
|
|
||||||
},
|
|
||||||
"machine_nozzle_offset_y": {
|
|
||||||
"default_value": 15
|
|
||||||
},
|
|
||||||
"machine_gcode_flavor": {
|
"machine_gcode_flavor": {
|
||||||
"default_value": "RepRap (Marlin/Sprinter)"
|
"default_value": "RepRap (Marlin/Sprinter)"
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user