mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-03 09:14:24 +08:00
180 lines
5.5 KiB
QML
180 lines
5.5 KiB
QML
import QtQuick 2.2
|
|
import QtQuick.Controls 1.1
|
|
import QtQuick.Controls.Styles 1.1
|
|
import QtQuick.Layouts 1.1
|
|
|
|
import UM 1.0 as UM
|
|
|
|
Rectangle {
|
|
id: base;
|
|
|
|
height: childrenRect.height;
|
|
|
|
property real expandedHeight: 500;
|
|
|
|
property bool collapsed: true;
|
|
|
|
MouseArea {
|
|
anchors.left: parent.left;
|
|
anchors.right: parent.right;
|
|
height: contents.height;
|
|
|
|
acceptedButtons: Qt.AllButtons;
|
|
|
|
onWheel: {
|
|
wheel.accepted = true;
|
|
}
|
|
}
|
|
|
|
Column {
|
|
id: contents;
|
|
spacing: UM.Theme.defaultMargin;
|
|
|
|
anchors {
|
|
left: parent.left;
|
|
leftMargin: UM.Theme.defaultMargin;
|
|
right: parent.right;
|
|
rightMargin: UM.Theme.defaultMargin;
|
|
}
|
|
|
|
Label { text: "Print Settings"; width: parent.width; font.capitalization: Font.AllUppercase; font.pointSize: UM.Theme.smallTextSize; }
|
|
|
|
Item {
|
|
width: parent.width;
|
|
height: 24;
|
|
|
|
Row {
|
|
anchors.fill: parent;
|
|
spacing: UM.Theme.defaultMargin;
|
|
|
|
Label { text: "Material"; horizontalAlignment: Text.AlignRight; width: base.width * 0.5; }
|
|
ComboBox {
|
|
width: parent.width * 0.35;
|
|
model: ListModel {
|
|
ListElement { text: "PLA"; }
|
|
ListElement { text: "ABS"; }
|
|
}
|
|
style: ComboBoxStyle { }
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
width: parent.width;
|
|
height: 24;
|
|
|
|
Row {
|
|
anchors.fill: parent;
|
|
spacing: UM.Theme.defaultMargin;
|
|
Label { text: "Time"; width: base.width * 0.5; horizontalAlignment: Text.AlignRight; }
|
|
Label { text: Qt.formatTime(new Date(timeSlider.value * 60000)); width: base.width * 0.35; horizontalAlignment: Text.AlignLeft; }
|
|
}
|
|
}
|
|
|
|
Rectangle { color: "black"; height: 1; width: parent.width; }
|
|
|
|
Item {
|
|
id: speedSlider;
|
|
|
|
width: parent.width;
|
|
height: 60;
|
|
|
|
Slider {
|
|
id: timeSlider;
|
|
anchors.left: parent.left;
|
|
anchors.right: parent.right;
|
|
height: 20;
|
|
|
|
minimumValue: 60;
|
|
maximumValue: 600;
|
|
stepSize: 10;
|
|
|
|
style: SliderStyle {
|
|
groove: Rectangle {
|
|
height: 1;
|
|
color: "black";
|
|
|
|
Rectangle {
|
|
anchors.left: parent.left;
|
|
anchors.verticalCenter: parent.verticalCenter;
|
|
width: 1;
|
|
height: control.height;
|
|
color: "black";
|
|
}
|
|
Rectangle {
|
|
anchors.right: parent.right;
|
|
anchors.verticalCenter: parent.verticalCenter;
|
|
width: 1;
|
|
height: control.height;
|
|
color: "black";
|
|
}
|
|
}
|
|
handle: Rectangle { width: 5; height: control.height; color: UM.Theme.primaryColor; }
|
|
}
|
|
}
|
|
|
|
Column {
|
|
anchors.left: parent.left;
|
|
anchors.bottom: parent.bottom;
|
|
|
|
Label { text: Qt.formatTime(new Date(timeSlider.minimumValue * 60000)); }
|
|
Label { text: "Low Quality"; }
|
|
}
|
|
|
|
Column {
|
|
anchors.right: parent.right;
|
|
anchors.bottom: parent.bottom;
|
|
|
|
Label { text: Qt.formatTime(new Date(timeSlider.maximumValue * 60000)); anchors.right: parent.right; }
|
|
Label { text: "High Quality"; }
|
|
}
|
|
}
|
|
|
|
UM.SettingsView { id: settingsView; width: parent.width; height: 0; opacity: 0; visible: false; verticalScrollBarPolicy: Qt.ScrollBarAlwaysOff }
|
|
|
|
Rectangle { color: "black"; height: 1; width: parent.width; }
|
|
|
|
Item {
|
|
Layout.columnSpan: 2;
|
|
height: childrenRect.height;
|
|
width: parent.width;
|
|
|
|
ToolButton {
|
|
anchors.horizontalCenter: parent.horizontalCenter;
|
|
iconSource: UM.Resources.getIcon('expand.png');
|
|
onClicked: base.collapsed = !base.collapsed
|
|
}
|
|
}
|
|
}
|
|
|
|
states: [
|
|
State {
|
|
name: 'expanded';
|
|
when: !base.collapsed;
|
|
|
|
PropertyChanges { target: speedSlider; opacity: 0; height: 0; visible: false; }
|
|
PropertyChanges {
|
|
target: settingsView;
|
|
opacity: 1;
|
|
height: Math.min(settingsView.listHeight, base.expandedHeight * 0.6);
|
|
visible: true;
|
|
verticalScrollBarPolicy: Qt.ScrollBarAsNeeded;
|
|
}
|
|
}
|
|
]
|
|
|
|
transitions: [
|
|
Transition {
|
|
to: 'expanded';
|
|
reversible: true;
|
|
SequentialAnimation {
|
|
NumberAnimation { target: speedSlider; property: 'opacity'; duration: 100; }
|
|
PropertyAction { target: settingsView; property: 'visible'; }
|
|
NumberAnimation { property: 'height'; duration: 200; }
|
|
PropertyAction { target: speedSlider; property: 'visible'; }
|
|
NumberAnimation { target: settingsView; property: 'opacity'; duration: 100; }
|
|
}
|
|
}
|
|
]
|
|
}
|