Switch to the new quality profile when it is created

This commit is contained in:
Lipu Fei 2018-02-22 16:52:54 +01:00
parent a8bd57a9eb
commit d2ffd59431
3 changed files with 44 additions and 15 deletions

View file

@ -240,8 +240,7 @@ class CuraApplication(QtApplication):
if kwargs["parsed_command_line"].get("trigger_early_crash", False):
assert not "This crash is triggered by the trigger_early_crash command line argument."
# new stuff
self._variant_manager = VariantManager(ContainerRegistry.getInstance())
self._variant_manager = None
self.default_theme = "cura-light"
@ -723,9 +722,6 @@ class CuraApplication(QtApplication):
return False
return True
def getVariantManager(self):
return self._variant_manager
def preRun(self):
# Last check for unknown commandline arguments
parser = self.getCommandlineParser()
@ -743,14 +739,15 @@ class CuraApplication(QtApplication):
self.preRun()
container_registry = ContainerRegistry.getInstance()
self._variant_manager = VariantManager(container_registry)
self._variant_manager.initialize()
from cura.Machines.MaterialManager import MaterialManager
self._material_manager = MaterialManager(container_registry)
self._material_manager = MaterialManager(container_registry, parent = self)
self._material_manager.initialize()
from cura.Machines.QualityManager import QualityManager
self._quality_manager = QualityManager(container_registry)
self._quality_manager = QualityManager(container_registry, parent = self)
self._quality_manager.initialize()
self.getMachineManager() # ensure creation of machine manager
@ -856,6 +853,16 @@ class CuraApplication(QtApplication):
self._extruder_manager = ExtruderManager.createExtruderManager()
return self._extruder_manager
def getVariantManager(self, *args):
return self._variant_manager
def getMaterialManager(self, *args):
return self._material_manager
@pyqtSlot(result = QObject)
def getQualityManager(self, *args):
return self._quality_manager
def getObjectsModel(self, *args):
if self._object_manager is None:
self._object_manager = ObjectsModel.createObjectsModel()

View file

@ -333,7 +333,7 @@ class ContainerManager(QObject):
self._performMerge(quality_changes, stack.getTop())
self._machine_manager.activeQualityChanged.emit()
self._machine_manager.activeQualityChangesGroupChanged.emit()
return True
@ -394,12 +394,6 @@ class ContainerManager(QObject):
self._performMerge(new_changes, user_container)
self._container_registry.addContainer(new_changes)
#stack.replaceContainer(stack.getContainerIndex(quality_changes_container), new_changes)
#self._machine_manager.activeQualityChanged.emit()
#self._machine_manager.activeQualityGroupChanged.emit()
#self._machine_manager.activeQualityChangesGroupChanged.emit()
#
# Remove the given quality changes group

View file

@ -171,8 +171,36 @@ Item
object: "<new name>"
onAccepted:
{
base.newQualityChangesNameToSwitchTo = newName; // We want to switch to the new profile once it's created
Cura.ContainerManager.createQualityChanges(newName);
qualityListView.currentIndex = -1; // TODO: Reset selection.
}
}
property string newQualityChangesNameToSwitchTo: ""
// This connection makes sure that we will switch to the new
Connections
{
target: qualitiesModel
onItemsChanged: {
var currentItemName = base.currentItem == null ? "" : base.currentItem.name;
for (var idx = 0; idx < qualitiesModel.rowCount(); ++idx) {
var item = qualitiesModel.getItem(idx);
if (base.newQualityChangesNameToSwitchTo != "") {
if (item.name == base.newQualityChangesNameToSwitchTo) {
// Switch to the newly created profile if needed
qualityListView.currentIndex = idx;
if (item.is_read_only) {
Cura.MachineManager.setQualityGroup(item.quality_group);
} else {
Cura.MachineManager.setQualityChangesGroup(item.quality_changes_group);
}
base.newQualityChangesNameToSwitchTo = "";
}
break;
}
}
}
}