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

View file

@ -333,7 +333,7 @@ class ContainerManager(QObject):
self._performMerge(quality_changes, stack.getTop()) self._performMerge(quality_changes, stack.getTop())
self._machine_manager.activeQualityChanged.emit() self._machine_manager.activeQualityChangesGroupChanged.emit()
return True return True
@ -394,12 +394,6 @@ class ContainerManager(QObject):
self._performMerge(new_changes, user_container) self._performMerge(new_changes, user_container)
self._container_registry.addContainer(new_changes) 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 # Remove the given quality changes group

View file

@ -171,8 +171,36 @@ Item
object: "<new name>" object: "<new name>"
onAccepted: onAccepted:
{ {
base.newQualityChangesNameToSwitchTo = newName; // We want to switch to the new profile once it's created
Cura.ContainerManager.createQualityChanges(newName); 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;
}
}
} }
} }