Rearrange nozzle/material selection into one line

In preparation for CURA-330, where we will need multiple instances of the nozzle/material combo.
This commit is contained in:
fieldOfView 2016-04-27 20:29:21 +02:00
parent d34c28543b
commit d7aa8e71bf

View File

@ -97,127 +97,117 @@ Item
Rectangle { Rectangle {
id: variantRow id: variantRow
anchors.top: machineSelectionRow.bottom anchors.top: machineSelectionRow.bottom
anchors.topMargin: UM.MachineManager.hasVariants ? UM.Theme.getSize("default_margin").height : 0 anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
width: base.width width: base.width
height: UM.MachineManager.hasVariants ? UM.Theme.getSize("sidebar_setup").height : 0 height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
visible: UM.MachineManager.hasVariants visible: UM.MachineManager.hasVariants || UM.MachineManager.hasMaterials
Label{ Label{
id: variantLabel id: variantLabel
text: catalog.i18nc("@label","Nozzle:"); text: (UM.MachineManager.hasVariants && UM.MachineManager.hasMaterials) ? catalog.i18nc("@label","Nozzle & Material:"):
UM.MachineManager.hasVariants ? catalog.i18nc("@label","Nozzle:") : catalog.i18nc("@label","Material:");
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width; anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
width: parent.width/100*45 width: parent.width/100*45
font: UM.Theme.getFont("default"); font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text"); color: UM.Theme.getColor("text");
} }
ToolButton { Rectangle {
id: variantSelection
text: UM.MachineManager.activeMachineVariant
width: parent.width/100*55
height: UM.Theme.getSize("setting_control").height
tooltip: UM.MachineManager.activeMachineVariant;
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
style: UM.Theme.styles.sidebar_header_button
menu: Menu width: parent.width/100*55
{ height: UM.Theme.getSize("setting_control").height
id: variantsSelectionMenu
Instantiator ToolButton {
id: variantSelection
text: UM.MachineManager.activeMachineVariant
tooltip: UM.MachineManager.activeMachineVariant;
visible: UM.MachineManager.hasVariants
height: UM.Theme.getSize("setting_control").height
width: materialSelection.visible ? (parent.width - UM.Theme.getSize("default_margin").width) / 2 : parent.width
anchors.left: parent.left
style: UM.Theme.styles.sidebar_header_button
menu: Menu
{ {
id: variantSelectionInstantiator id: variantsSelectionMenu
model: UM.MachineVariantsModel { id: variantsModel } Instantiator
MenuItem
{ {
text: model.name; id: variantSelectionInstantiator
checkable: true; model: UM.MachineVariantsModel { id: variantsModel }
checked: model.active; MenuItem
exclusiveGroup: variantSelectionMenuGroup;
onTriggered:
{ {
UM.MachineManager.setActiveMachineVariant(variantsModel.getItem(index).name); text: model.name;
if (typeof(model) !== "undefined" && !model.active) { checkable: true;
//Selecting a variant was canceled; undo menu selection checked: model.active;
variantSelectionInstantiator.model.setProperty(index, "active", false); exclusiveGroup: variantSelectionMenuGroup;
var activeMachineVariantName = UM.MachineManager.activeMachineVariant; onTriggered:
var activeMachineVariantIndex = variantSelectionInstantiator.model.find("name", activeMachineVariantName); {
variantSelectionInstantiator.model.setProperty(activeMachineVariantIndex, "active", true); UM.MachineManager.setActiveMachineVariant(variantsModel.getItem(index).name);
if (typeof(model) !== "undefined" && !model.active) {
//Selecting a variant was canceled; undo menu selection
variantSelectionInstantiator.model.setProperty(index, "active", false);
var activeMachineVariantName = UM.MachineManager.activeMachineVariant;
var activeMachineVariantIndex = variantSelectionInstantiator.model.find("name", activeMachineVariantName);
variantSelectionInstantiator.model.setProperty(activeMachineVariantIndex, "active", true);
}
} }
} }
onObjectAdded: variantsSelectionMenu.insertItem(index, object)
onObjectRemoved: variantsSelectionMenu.removeItem(object)
} }
onObjectAdded: variantsSelectionMenu.insertItem(index, object)
onObjectRemoved: variantsSelectionMenu.removeItem(object)
}
ExclusiveGroup { id: variantSelectionMenuGroup; } ExclusiveGroup { id: variantSelectionMenuGroup; }
}
} }
}
}
Rectangle { ToolButton {
id: materialSelectionRow id: materialSelection
anchors.top: variantRow.bottom text: UM.MachineManager.activeMaterial
anchors.topMargin: UM.MachineManager.hasMaterials ? UM.Theme.getSize("default_margin").height : 0 tooltip: UM.MachineManager.activeMaterial
width: base.width visible: UM.MachineManager.hasMaterials
height: UM.MachineManager.hasMaterials ? UM.Theme.getSize("sidebar_setup").height : 0
visible: UM.MachineManager.hasMaterials
Label{ height: UM.Theme.getSize("setting_control").height
id: materialSelectionLabel width: variantSelection.visible ? (parent.width - UM.Theme.getSize("default_margin").width) / 2 : parent.width
text: catalog.i18nc("@label","Material:"); anchors.right: parent.right
anchors.left: parent.left style: UM.Theme.styles.sidebar_header_button
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
anchors.verticalCenter: parent.verticalCenter
width: parent.width/100*45
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
}
ToolButton { menu: Menu
id: materialSelection
text: UM.MachineManager.activeMaterial
width: parent.width/100*55
height: UM.Theme.getSize("setting_control").height
tooltip: UM.MachineManager.activeMaterial;
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: parent.verticalCenter
style: UM.Theme.styles.sidebar_header_button
menu: Menu
{
id: materialSelectionMenu
Instantiator
{ {
id: materialSelectionInstantiator id: materialSelectionMenu
model: UM.MachineMaterialsModel { id: machineMaterialsModel } Instantiator
MenuItem
{ {
text: model.name; id: materialSelectionInstantiator
checkable: true; model: UM.MachineMaterialsModel { id: machineMaterialsModel }
checked: model.active; MenuItem
exclusiveGroup: materialSelectionMenuGroup;
onTriggered:
{ {
UM.MachineManager.setActiveMaterial(machineMaterialsModel.getItem(index).name); text: model.name;
if (typeof(model) !== "undefined" && !model.active) { checkable: true;
//Selecting a material was canceled; undo menu selection checked: model.active;
materialSelectionInstantiator.model.setProperty(index, "active", false); exclusiveGroup: materialSelectionMenuGroup;
var activeMaterialName = UM.MachineManager.activeMaterial; onTriggered:
var activeMaterialIndex = materialSelectionInstantiator.model.find("name", activeMaterialName); {
materialSelectionInstantiator.model.setProperty(activeMaterialIndex, "active", true); UM.MachineManager.setActiveMaterial(machineMaterialsModel.getItem(index).name);
if (typeof(model) !== "undefined" && !model.active) {
//Selecting a material was canceled; undo menu selection
materialSelectionInstantiator.model.setProperty(index, "active", false);
var activeMaterialName = UM.MachineManager.activeMaterial;
var activeMaterialIndex = materialSelectionInstantiator.model.find("name", activeMaterialName);
materialSelectionInstantiator.model.setProperty(activeMaterialIndex, "active", true);
}
} }
} }
onObjectAdded: materialSelectionMenu.insertItem(index, object)
onObjectRemoved: materialSelectionMenu.removeItem(object)
} }
onObjectAdded: materialSelectionMenu.insertItem(index, object)
onObjectRemoved: materialSelectionMenu.removeItem(object)
}
ExclusiveGroup { id: materialSelectionMenuGroup; } ExclusiveGroup { id: materialSelectionMenuGroup; }
}
} }
} }
} }