Fix removing custom (quality) profiles

CURA-1585
This commit is contained in:
fieldOfView 2016-06-06 15:09:21 +02:00
parent a139809b75
commit a2db4740b9
2 changed files with 25 additions and 5 deletions

View file

@ -301,7 +301,7 @@ class MachineManagerModel(QObject):
new_quality_container._id = name new_quality_container._id = name
UM.Settings.ContainerRegistry.getInstance().addContainer(new_quality_container) UM.Settings.ContainerRegistry.getInstance().addContainer(new_quality_container)
self.clearUserSettings() # As all users settings are noq a quality, remove them. self.clearUserSettings() # As all users settings are now transfered to the new quality profile, remove them.
self.setActiveQuality(name) self.setActiveQuality(name)
return name return name
@ -325,6 +325,26 @@ class MachineManagerModel(QObject):
return "" return ""
@pyqtSlot(str)
def removeQualityContainer(self, container_id):
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = container_id)
if not containers or not self._global_container_stack:
return
# If the container that is being removed is the currently active container, set another machine as the active container
activate_new_container = container_id == self.activeQualityId
UM.Settings.ContainerRegistry.getInstance().removeContainer(container_id)
if activate_new_container:
old_container = self._global_container_stack.findInstanceContainers({"type": "quality"})
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(type = container_type)
if containers and old_container:
container_index = self._global_container_stack.getContainerIndex(old_container)
self._global_container_stack.replaceContainer(container_index, containers[0])
@pyqtSlot() @pyqtSlot()
def updateUserContainerToQuality(self): def updateUserContainerToQuality(self):
if not self._global_container_stack: if not self._global_container_stack:

View file

@ -66,8 +66,8 @@ UM.ManagementPage
activateEnabled: currentItem != null ? currentItem.id != Cura.MachineManager.activeQualityId : false; activateEnabled: currentItem != null ? currentItem.id != Cura.MachineManager.activeQualityId : false;
addEnabled: currentItem != null; addEnabled: currentItem != null;
removeEnabled: currentItem != null ? !currentItem.readOnly : false; removeEnabled: currentItem != null ? !currentItem.metadata.read_only : false;
renameEnabled: currentItem != null ? !currentItem.readOnly : false; renameEnabled: currentItem != null ? !currentItem.metadata.read_only : false;
scrollviewCaption: catalog.i18nc("@label %1 is printer name","Printer: %1").arg(Cura.MachineManager.activeMachineName) scrollviewCaption: catalog.i18nc("@label %1 is printer name","Printer: %1").arg(Cura.MachineManager.activeMachineName)
@ -137,7 +137,7 @@ UM.ManagementPage
Label { Label {
text: base.currentItem == null ? "" : text: base.currentItem == null ? "" :
base.currentItem.id == -1 ? Cura.MachineManager.activeQualityName: base.currentItem.id == -1 ? Cura.MachineManager.activeQualityName:
base.currentItem.readOnly ? catalog.i18nc("@label", "Protected profile") : catalog.i18nc("@label", "Custom profile") base.currentItem.metadata.read_only ? catalog.i18nc("@label", "Protected profile") : catalog.i18nc("@label", "Custom profile")
} }
Column { Column {
@ -186,7 +186,7 @@ UM.ManagementPage
{ {
id: confirmDialog; id: confirmDialog;
object: base.currentItem != null ? base.currentItem.name : ""; object: base.currentItem != null ? base.currentItem.name : "";
onYes: base.model.removeProfile(base.currentItem.name); onYes: Cura.MachineManager.removeQualityContainer(base.currentItem.id);
} }
UM.RenameDialog UM.RenameDialog
{ {