mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-01 08:14:22 +08:00
63 lines
1.9 KiB
QML
63 lines
1.9 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 2.0
|
|
import QtQuick.Controls.Styles 1.4
|
|
|
|
import UM 1.2 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
Item
|
|
{
|
|
id: configurationSelector
|
|
property var panelWidth: control.width
|
|
property var panelVisible: false
|
|
|
|
SyncButton {
|
|
onClicked: configurationSelector.state == "open" ? configurationSelector.state = "closed" : configurationSelector.state = "open"
|
|
}
|
|
|
|
Popup {
|
|
id: popup
|
|
clip: true
|
|
y: configurationSelector.height - UM.Theme.getSize("default_lining").height
|
|
x: configurationSelector.width - width
|
|
width: panelWidth
|
|
visible: panelVisible
|
|
padding: UM.Theme.getSize("default_lining").width
|
|
contentItem: ConfigurationListView {
|
|
id: configList
|
|
width: panelWidth - 2 * popup.padding
|
|
}
|
|
background: Rectangle {
|
|
color: UM.Theme.getColor("setting_control")
|
|
border.color: UM.Theme.getColor("setting_control_border")
|
|
}
|
|
}
|
|
|
|
states: [
|
|
// This adds a second state to the container where the rectangle is farther to the right
|
|
State {
|
|
name: "open"
|
|
PropertyChanges {
|
|
target: popup
|
|
height: configList.computedHeight
|
|
}
|
|
},
|
|
State {
|
|
name: "closed"
|
|
PropertyChanges {
|
|
target: popup
|
|
height: 0
|
|
}
|
|
}
|
|
]
|
|
transitions: [
|
|
// This adds a transition that defaults to applying to all state changes
|
|
Transition {
|
|
// This applies a default NumberAnimation to any changes a state change makes to x or y properties
|
|
NumberAnimation { properties: "height"; duration: 200; easing.type: Easing.InOutQuad; }
|
|
}
|
|
]
|
|
} |