mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-15 02:06:01 +08:00
Merge branch 'feature_quality_changes' into cura-2008
This commit is contained in:
commit
30898f9642
@ -362,7 +362,7 @@ class ContainerManager(QObject):
|
||||
UM.Logger.log("e", "Could not update quality of a nonexistant or read only quality profile")
|
||||
return False
|
||||
|
||||
cura.Settings.MachineManager.getInstance().blurSettings.emit()
|
||||
UM.Application.getInstance().getMachineManager().blurSettings.emit()
|
||||
|
||||
containers_to_merge.append((global_quality_changes, global_stack.getTop()))
|
||||
|
||||
@ -377,11 +377,15 @@ class ContainerManager(QObject):
|
||||
for merge_into, merge in containers_to_merge:
|
||||
self._performMerge(merge_into, merge)
|
||||
|
||||
UM.Application.getInstance().getMachineManager().activeQualityChanged.emit()
|
||||
|
||||
return True
|
||||
|
||||
@pyqtSlot()
|
||||
def clearUserContainers(self):
|
||||
global_stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||
|
||||
cura.Settings.MachineManager.getInstance().blurSettings.emit()
|
||||
UM.Application.getInstance().getMachineManager().blurSettings.emit()
|
||||
|
||||
for extruder in cura.Settings.ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()):
|
||||
extruder.getTop().clear()
|
||||
@ -399,7 +403,7 @@ class ContainerManager(QObject):
|
||||
UM.Logger.log("w", "No quality container found in stack %s, cannot create profile", global_stack.getId())
|
||||
return False
|
||||
|
||||
cura.Settings.MachineManager.getInstance().blurSettings.emit()
|
||||
UM.Application.getInstance().getMachineManager().blurSettings.emit()
|
||||
|
||||
unique_name = UM.Settings.ContainerRegistry.getInstance().uniqueName(quality_container.getName())
|
||||
unique_id = unique_name.lower()
|
||||
@ -432,6 +436,7 @@ class ContainerManager(QObject):
|
||||
stack.replaceContainer(stack.getContainerIndex(quality_changes_container), new_quality_changes)
|
||||
stack.getTop().clear()
|
||||
|
||||
UM.Application.getInstance().getMachineManager().activeQualityChanged.emit()
|
||||
return True
|
||||
|
||||
# Factory function, used by QML
|
||||
|
@ -211,6 +211,7 @@ class MachineManager(QObject):
|
||||
if self._global_container_stack:
|
||||
self._global_container_stack.nameChanged.disconnect(self._onMachineNameChanged)
|
||||
self._global_container_stack.containersChanged.disconnect(self._onInstanceContainersChanged)
|
||||
self._global_container_stack.propertyChanged.disconnect(self._onPropertyChanged)
|
||||
|
||||
material = self._global_container_stack.findContainer({"type": "material"})
|
||||
material.nameChanged.disconnect(self._onMaterialNameChanged)
|
||||
@ -227,6 +228,7 @@ class MachineManager(QObject):
|
||||
Preferences.getInstance().setValue("cura/active_machine", self._global_container_stack.getId())
|
||||
self._global_container_stack.nameChanged.connect(self._onMachineNameChanged)
|
||||
self._global_container_stack.containersChanged.connect(self._onInstanceContainersChanged)
|
||||
self._global_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
||||
material = self._global_container_stack.findContainer({"type": "material"})
|
||||
material.nameChanged.connect(self._onMaterialNameChanged)
|
||||
|
||||
@ -237,9 +239,11 @@ class MachineManager(QObject):
|
||||
self.blurSettings.emit() # Ensure no-one has focus.
|
||||
if self._active_container_stack and self._active_container_stack != self._global_container_stack:
|
||||
self._active_container_stack.containersChanged.disconnect(self._onInstanceContainersChanged)
|
||||
self._active_container_stack.propertyChanged.disconnect(self._onPropertyChanged)
|
||||
self._active_container_stack = ExtruderManager.getInstance().getActiveExtruderStack()
|
||||
if self._active_container_stack:
|
||||
self._active_container_stack.containersChanged.connect(self._onInstanceContainersChanged)
|
||||
self._active_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
||||
else:
|
||||
self._active_container_stack = self._global_container_stack
|
||||
self._active_stack_valid = not self._checkStackForErrors(self._active_container_stack)
|
||||
@ -248,8 +252,6 @@ class MachineManager(QObject):
|
||||
def _onInstanceContainersChanged(self, container):
|
||||
container_type = container.getMetaDataEntry("type")
|
||||
|
||||
|
||||
|
||||
if container_type == "material":
|
||||
self.activeMaterialChanged.emit()
|
||||
elif container_type == "variant":
|
||||
@ -257,6 +259,9 @@ class MachineManager(QObject):
|
||||
elif container_type == "quality":
|
||||
self.activeQualityChanged.emit()
|
||||
|
||||
def _onPropertyChanged(self, key, property_name):
|
||||
self.activeStackChanged.emit()
|
||||
|
||||
@pyqtSlot(str)
|
||||
def setActiveMachine(self, stack_id):
|
||||
containers = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = stack_id)
|
||||
@ -333,11 +338,17 @@ class MachineManager(QObject):
|
||||
## Check if the global_container has instances in the user container
|
||||
@pyqtProperty(bool, notify = activeStackChanged)
|
||||
def hasUserSettings(self):
|
||||
if not self._active_container_stack:
|
||||
if not self._global_container_stack:
|
||||
return False
|
||||
|
||||
user_settings = self._active_container_stack.getTop().findInstances(**{})
|
||||
return len(user_settings) != 0
|
||||
if self._global_container_stack.getTop().findInstances():
|
||||
return True
|
||||
|
||||
for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()):
|
||||
if stack.getTop().findInstances():
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
## Check if the global profile does not contain error states
|
||||
# Note that the _active_stack_valid is cached due to performance issues
|
||||
@ -605,6 +616,8 @@ class MachineManager(QObject):
|
||||
catalog.i18nc("@label", "If you transfer your settings they will override settings in the profile."), details,
|
||||
buttons = QMessageBox.Yes + QMessageBox.No, icon = QMessageBox.Question, callback = self._keepUserSettingsDialogCallback)
|
||||
|
||||
self.activeQualityChanged.emit()
|
||||
|
||||
def _keepUserSettingsDialogCallback(self, button):
|
||||
if button == QMessageBox.Yes:
|
||||
# Yes, keep the settings in the user profile with this profile
|
||||
|
Loading…
x
Reference in New Issue
Block a user