mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-17 03:37:48 -06:00
CURA-4870 Make the configuration pop-up open and close with one click.
Before it was the case in which sometimes the user needs two clicks for that. Also collapse the dropdown when the configuration is applied.
This commit is contained in:
parent
ff676c98a6
commit
61ce0c3154
3 changed files with 32 additions and 36 deletions
|
@ -66,6 +66,7 @@ Column
|
||||||
configuration: modelData
|
configuration: modelData
|
||||||
onActivateConfiguration:
|
onActivateConfiguration:
|
||||||
{
|
{
|
||||||
|
switchPopupState()
|
||||||
Cura.MachineManager.applyRemoteConfiguration(configuration)
|
Cura.MachineManager.applyRemoteConfiguration(configuration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,54 +13,54 @@ Item
|
||||||
id: configurationSelector
|
id: configurationSelector
|
||||||
property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
|
property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
|
||||||
property var panelWidth: control.width
|
property var panelWidth: control.width
|
||||||
property var panelVisible: false
|
|
||||||
|
|
||||||
SyncButton {
|
function switchPopupState()
|
||||||
onClicked: configurationSelector.state == "open" ? configurationSelector.state = "closed" : configurationSelector.state = "open"
|
{
|
||||||
|
popup.opened ? popup.close() : popup.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
SyncButton
|
||||||
|
{
|
||||||
|
id: syncButton
|
||||||
|
onClicked: switchPopupState()
|
||||||
outputDevice: connectedDevice
|
outputDevice: connectedDevice
|
||||||
}
|
}
|
||||||
|
|
||||||
Popup {
|
Popup
|
||||||
|
{
|
||||||
|
// TODO Change once updating to Qt5.10 - This property is already in 5.10 but is manually implemented until upgrade
|
||||||
|
property bool opened: false
|
||||||
id: popup
|
id: popup
|
||||||
clip: true
|
clip: true
|
||||||
|
closePolicy: Popup.CloseOnPressOutsideParent
|
||||||
y: configurationSelector.height - UM.Theme.getSize("default_lining").height
|
y: configurationSelector.height - UM.Theme.getSize("default_lining").height
|
||||||
x: configurationSelector.width - width
|
x: configurationSelector.width - width
|
||||||
width: panelWidth
|
width: panelWidth
|
||||||
visible: panelVisible && connectedDevice != null
|
visible: opened
|
||||||
padding: UM.Theme.getSize("default_lining").width
|
padding: UM.Theme.getSize("default_lining").width
|
||||||
contentItem: ConfigurationListView {
|
transformOrigin: Popup.Top
|
||||||
|
contentItem: ConfigurationListView
|
||||||
|
{
|
||||||
id: configList
|
id: configList
|
||||||
width: panelWidth - 2 * popup.padding
|
width: panelWidth - 2 * popup.padding
|
||||||
outputDevice: connectedDevice
|
outputDevice: connectedDevice
|
||||||
}
|
}
|
||||||
background: Rectangle {
|
background: Rectangle
|
||||||
|
{
|
||||||
color: UM.Theme.getColor("setting_control")
|
color: UM.Theme.getColor("setting_control")
|
||||||
border.color: UM.Theme.getColor("setting_control_border")
|
border.color: UM.Theme.getColor("setting_control_border")
|
||||||
}
|
}
|
||||||
}
|
exit: Transition
|
||||||
|
{
|
||||||
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
|
// 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; }
|
NumberAnimation { property: "visible"; duration: 75; }
|
||||||
}
|
}
|
||||||
]
|
enter: Transition
|
||||||
|
{
|
||||||
|
// This applies a default NumberAnimation to any changes a state change makes to x or y properties
|
||||||
|
NumberAnimation { property: "visible"; duration: 75; }
|
||||||
|
}
|
||||||
|
onClosed: opened = false
|
||||||
|
onOpened: opened = true
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -86,11 +86,6 @@ Button
|
||||||
label: Label {}
|
label: Label {}
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
panelVisible = !panelVisible
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: outputDevice
|
target: outputDevice
|
||||||
onUniqueConfigurationsChanged: {
|
onUniqueConfigurationsChanged: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue