Added activeMaterial property

CURA-1278
This commit is contained in:
Jaime van Kessel 2016-05-12 17:01:47 +02:00
parent 44f5559db3
commit 89c0644e4b
2 changed files with 29 additions and 2 deletions

View File

@ -3,13 +3,18 @@ from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
from UM.Application import Application
from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Settings.ContainerStack import ContainerStack
from UM.Settings.InstanceContainer import InstanceContainer
class MachineManagerModel(QObject):
def __init__(self, parent = None):
super().__init__(parent)
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
## When the global container is changed, active material probably needs to be updated.
self.globalContainerChanged.connect(self.activeMaterialChanged)
globalContainerChanged = pyqtSignal()
activeMaterialChanged = pyqtSignal()
def _onGlobalContainerChanged(self):
self.globalContainerChanged.emit()
@ -27,8 +32,19 @@ class MachineManagerModel(QObject):
new_global_stack = ContainerStack(name)
new_global_stack.addMetaDataEntry("type", "machine")
ContainerRegistry.getInstance().addContainer(new_global_stack)
variant_instance_container = InstanceContainer(name + "_variant")
material_instance_container = InstanceContainer("test_material")
material_instance_container.addMetaDataEntry("type", "material")
material_instance_container.setDefinition(definitions[0])
#material_instance_container.setMetaData({"type","material"})
quality_instance_container = InstanceContainer(name + "_quality")
current_settings_instance_container = InstanceContainer(name + "_current_settings")
ContainerRegistry.getInstance().addContainer(material_instance_container)
# If a definition is found, its a list. Should only have one item.
new_global_stack.addContainer(definitions[0])
new_global_stack.addContainer(material_instance_container)
Application.getInstance().setGlobalContainerStack(new_global_stack)
@pyqtProperty(str, notify = globalContainerChanged)
@ -39,6 +55,12 @@ class MachineManagerModel(QObject):
def activeMachineId(self):
return Application.getInstance().getGlobalContainerStack().getId()
@pyqtProperty(str, notify = activeMaterialChanged)
def activeMaterialName(self):
material = Application.getInstance().getGlobalContainerStack().findContainer({"type":"material"})
if material:
return material.getName()
@pyqtSlot(str, str)
def renameMachine(self, machine_id, new_name):
containers = ContainerRegistry.getInstance().findContainerStacks(id = machine_id)

View File

@ -172,8 +172,8 @@ Item
ToolButton {
id: materialSelection
text: UM.MachineManager.activeMaterial
tooltip: UM.MachineManager.activeMaterial
text: Cura.MachineManager.activeMaterialName
tooltip: Cura.MachineManager.activeMaterialName
visible: UM.MachineManager.hasMaterials
height: UM.Theme.getSize("setting_control").height
@ -187,6 +187,11 @@ Item
Instantiator
{
id: materialSelectionInstantiator
model: UM.InstanceContainersModel
{
filter: {"type": "material"}
}
//model: UM.InstancesModel {filter: {"type":"material"}}
// model: UM.MachineMaterialsModel { id: machineMaterialsModel }
MenuItem
{