Added rudimentary display of settings again

CURA-1278
This commit is contained in:
Jaime van Kessel 2016-05-20 15:08:17 +02:00
parent bcff683fb0
commit e9380ba83d
3 changed files with 97 additions and 108 deletions

View file

@ -0,0 +1,29 @@
// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.1 as UM
import ".."
Button {
id: base;
style: UM.Theme.styles.sidebar_category;
signal showTooltip(string text);
signal hideTooltip();
signal contextMenuRequested()
text: definition.label
iconSource: UM.Theme.getIcon(definition.icon)
checkable: true
checked: definition.expanded
onClicked: definition.expanded ? settingDefinitionsModel.collapse(definition.key) : settingDefinitionsModel.expandAll(definition.key)
}

View file

@ -0,0 +1,29 @@
// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the AGPLv3 or higher.
import QtQuick 2.1
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import UM 1.2 as UM
UM.TooltipArea
{
x: model.depth * UM.Theme.getSize("default_margin").width;
text: model.description;
width: childrenRect.width;
height: childrenRect.height;
Button
{
id: check
text: definition.label
//onClicked: delegateItem.settingsModel.setSettingVisible(model.key, checked);
}
}

View file

@ -6,7 +6,10 @@ import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Window 2.2
import UM 1.1 as UM
import UM 1.2 as UM
import Cura 1.0 as Cura
import ".."
Item {
id: base;
@ -133,6 +136,7 @@ Item {
id: settingPickDialog
title: catalog.i18nc("@title:window", "Pick a Setting to Customize")
property string labelFilter: ""
TextField {
id: filter;
@ -145,123 +149,50 @@ Item {
placeholderText: catalog.i18nc("@label:textbox", "Filter...");
onTextChanged: settingCategoriesModel.filter(text);
onTextChanged: settingPickDialog.labelFilter = text;
}
ScrollView {
id: view;
anchors {
ScrollView
{
id: scrollView
anchors
{
top: filter.bottom;
left: parent.left;
right: parent.right;
bottom: parent.bottom;
}
Column {
width: view.width - UM.Theme.getSize("default_margin").width * 2;
height: childrenRect.height;
Repeater {
id: settingList;
model: UM.SettingCategoriesModel { id: settingCategoriesModel; }
delegate: Item {
id: delegateItem;
width: parent.width;
height: childrenRect.height;
visible: model.visible && settingsColumn.childrenHeight != 0 //If all children are hidden, the height is 0, and then the category header must also be hidden.
ToolButton {
id: categoryHeader;
text: model.name;
checkable: true;
width: parent.width;
onCheckedChanged: settingsColumn.state != "" ? settingsColumn.state = "" : settingsColumn.state = "collapsed";
style: ButtonStyle {
background: Rectangle
ListView
{
width: control.width;
height: control.height;
color: control.hovered ? palette.highlight : "transparent";
}
label: Row
model: UM.SettingDefinitionsModel
{
spacing: UM.Theme.getSize("default_margin").width;
Image
id: definitionsModel;
containerId: Cura.MachineManager.activeDefinitionId
filter:
{
anchors.verticalCenter: parent.verticalCenter;
source: control.checked ? UM.Theme.getIcon("arrow_right") : UM.Theme.getIcon("arrow_bottom");
"global_only": "False"
}
Label
}
delegate:Loader
{
text: control.text;
font.bold: true;
color: control.hovered ? palette.highlightedText : palette.text;
}
}
}
}
id: loader
property variant settingsModel: model.settings;
width: parent.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0;
Column {
id: settingsColumn;
property var definition: model
property var settingDefinitionsModel: definitionsModel
anchors.top: categoryHeader.bottom;
property real childrenHeight:
asynchronous: true
source:
{
var h = 0.0;
for(var i in children)
switch(model.type)
{
var item = children[i];
h += children[i].height;
if(item.settingVisible)
{
if(i > 0)
{
h += spacing;
}
}
}
return h;
}
width: childrenRect.width;
height: childrenHeight;
Repeater {
model: delegateItem.settingsModel;
delegate: ToolButton {
id: button;
x: model.visible_depth * UM.Theme.getSize("default_margin").width;
text: model.name;
tooltip: model.description;
visible: !model.global_only
height: model.global_only ? 0 : undefined
onClicked: {
var object_id = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).id;
UM.ActiveTool.properties.getValue("Model").addSettingOverride(object_id, model.key);
settingPickDialog.visible = false;
}
states: State {
name: "filtered"
when: model.filtered || !model.visible || !model.enabled
PropertyChanges { target: button; height: 0; opacity: 0; }
}
}
}
states: State {
name: "collapsed";
PropertyChanges { target: settingsColumn; opacity: 0; height: 0; }
}
case "category":
return "PerObjectCategory.qml"
default:
return "PerObjectItem.qml"
}
}
}