mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 11:17:49 -06:00
CURA-4606 fixed Create profile
This commit is contained in:
parent
8efe13a55a
commit
7a78f9821f
6 changed files with 42 additions and 17 deletions
|
@ -27,7 +27,7 @@ class QualityManagementModel(ListModel):
|
|||
self._quality_manager = CuraApplication.getInstance()._quality_manager
|
||||
|
||||
self._machine_manager.globalContainerChanged.connect(self._update)
|
||||
#self._quality_manager.materialsUpdated.connect(self._update) # TODO
|
||||
self._quality_manager.qualitiesUpdated.connect(self._update)
|
||||
|
||||
self._update()
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ class QualityProfilesModel(ListModel):
|
|||
Application.getInstance().getMachineManager().activeQualityGroupChanged.connect(self._update)
|
||||
|
||||
self._quality_manager = Application.getInstance()._quality_manager
|
||||
self._quality_manager.qualitiesUpdated.connect(self._update)
|
||||
|
||||
self._layer_height_unit = "" # This is cached
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
|
|||
|
||||
self._container_registry = ContainerRegistry.getInstance()
|
||||
self._application = Application.getInstance()
|
||||
self._quality_manager = self._application._quality_manager
|
||||
|
||||
self._extruder_position = ""
|
||||
self._quality = None
|
||||
|
@ -42,6 +43,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
|
|||
self._empty_quality = self._container_registry.findInstanceContainers(id = "empty_quality")[0]
|
||||
|
||||
self._update()
|
||||
self._quality_manager.qualitiesUpdated.connect(self._update)
|
||||
|
||||
def setExtruderPosition(self, extruder_position):
|
||||
if extruder_position != self._extruder_position:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from typing import Optional
|
||||
|
||||
from PyQt5.Qt import pyqtSignal
|
||||
from PyQt5.QtCore import QObject, QTimer
|
||||
|
||||
from UM.Application import Application
|
||||
|
@ -111,6 +112,8 @@ class QualityNode(ContainerNode):
|
|||
|
||||
class QualityManager(QObject):
|
||||
|
||||
qualitiesUpdated = pyqtSignal()
|
||||
|
||||
def __init__(self, container_registry, parent = None):
|
||||
super().__init__(parent)
|
||||
self._application = Application.getInstance()
|
||||
|
@ -213,6 +216,9 @@ class QualityManager(QObject):
|
|||
machine_node = self._machine_quality_type_to_quality_changes_dict[machine_definition_id]
|
||||
machine_node.addQualityChangesMetadata(quality_type, metadata)
|
||||
|
||||
Logger.log("d", "Lookup tables updated.")
|
||||
self.qualitiesUpdated.emit()
|
||||
|
||||
def _updateMaps(self):
|
||||
self.initialize()
|
||||
|
||||
|
|
|
@ -398,16 +398,16 @@ class ContainerManager(QObject):
|
|||
# stack and clear the user settings.
|
||||
#
|
||||
# \return \type{bool} True if the operation was successfully, False if not.
|
||||
@pyqtSlot(str, result = bool)
|
||||
@pyqtSlot(str)
|
||||
def createQualityChanges(self, base_name):
|
||||
global_stack = Application.getInstance().getGlobalContainerStack()
|
||||
if not global_stack:
|
||||
return False
|
||||
return
|
||||
|
||||
active_quality_name = self._machine_manager.activeQualityName
|
||||
if active_quality_name == "":
|
||||
Logger.log("w", "No quality container found in stack %s, cannot create profile", global_stack.getId())
|
||||
return False
|
||||
return
|
||||
|
||||
self._machine_manager.blurSettings.emit()
|
||||
if base_name is None or base_name == "":
|
||||
|
@ -416,7 +416,7 @@ class ContainerManager(QObject):
|
|||
|
||||
# Go through the active stacks and create quality_changes containers from the user containers.
|
||||
for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks():
|
||||
user_container = stack.getTop()
|
||||
user_container = stack.userChanges
|
||||
quality_container = stack.quality
|
||||
quality_changes_container = stack.qualityChanges
|
||||
if not quality_container or not quality_changes_container:
|
||||
|
@ -431,10 +431,12 @@ class ContainerManager(QObject):
|
|||
self._performMerge(new_changes, user_container)
|
||||
|
||||
self._container_registry.addContainer(new_changes)
|
||||
stack.replaceContainer(stack.getContainerIndex(quality_changes_container), new_changes)
|
||||
#stack.replaceContainer(stack.getContainerIndex(quality_changes_container), new_changes)
|
||||
|
||||
self._machine_manager.activeQualityChanged.emit()
|
||||
return True
|
||||
#self._machine_manager.activeQualityChanged.emit()
|
||||
|
||||
#self._machine_manager.activeQualityGroupChanged.emit()
|
||||
#self._machine_manager.activeQualityChangesGroupChanged.emit()
|
||||
|
||||
## Remove all quality changes containers matching a specified name.
|
||||
#
|
||||
|
|
|
@ -50,6 +50,10 @@ Item
|
|||
return base.currentItem.name == Cura.MachineManager.activeQualityOrQualityChangesName;
|
||||
}
|
||||
|
||||
property var canCreateProfile: {
|
||||
return isCurrentItemActivated && Cura.MachineManager.hasUserSettings;
|
||||
}
|
||||
|
||||
Row // Button Row
|
||||
{
|
||||
id: buttonRow
|
||||
|
@ -80,13 +84,13 @@ Item
|
|||
{
|
||||
text: catalog.i18nc("@label", "Create")
|
||||
iconName: "list-add"
|
||||
//enabled: base.canCreateProfile() && !Cura.MachineManager.stacksHaveErrors
|
||||
enabled: true // TODO
|
||||
//visible: base.canCreateProfile()
|
||||
visible: true // TODO
|
||||
enabled: base.canCreateProfile && !Cura.MachineManager.stacksHaveErrors
|
||||
visible: base.canCreateProfile
|
||||
|
||||
onClicked: {
|
||||
// TODO
|
||||
newNameDialog.object = base.currentItem != null ? Cura.ContainerManager.makeUniqueName(Cura.MachineManager.activeQualityOrQualityChangesName) : "";
|
||||
newNameDialog.open();
|
||||
newNameDialog.selectText();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,10 +99,8 @@ Item
|
|||
{
|
||||
text: catalog.i18nc("@label", "Duplicate")
|
||||
iconName: "list-add"
|
||||
//enabled: ! base.canCreateProfile()
|
||||
enabled: true // TODO
|
||||
//visible: ! base.canCreateProfile()
|
||||
visible: true // TODO
|
||||
enabled: !base.canCreateProfile
|
||||
visible: !base.canCreateProfile
|
||||
|
||||
onClicked: {
|
||||
// TODO
|
||||
|
@ -153,6 +155,18 @@ Item
|
|||
}
|
||||
|
||||
|
||||
// Dialog to request a name when creating a new profile
|
||||
UM.RenameDialog
|
||||
{
|
||||
title: catalog.i18nc("@title:window", "Create Profile")
|
||||
id: newNameDialog;
|
||||
object: "<new name>";
|
||||
onAccepted:
|
||||
{
|
||||
var selectedContainer = Cura.ContainerManager.createQualityChanges(newName);
|
||||
objectList.currentIndex = -1 //Reset selection.
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: contentsItem
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue