CURA-4870 Modify the dropdown look and feel

This commit is contained in:
Diego Prado Gesto 2018-03-02 13:26:04 +01:00
parent 6952e3f5c1
commit 135208bfee
7 changed files with 176 additions and 148 deletions

View file

@ -0,0 +1,72 @@
// 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 UM 1.2 as UM
import Cura 1.0 as Cura
Rectangle
{
id: configurationItem
property var printer: null
signal configurationSelected()
height: childrenRect.height
border.width: UM.Theme.getSize("default_lining").width
border.color: "black"
Column
{
id: contentColumn
padding: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").height
Label
{
text: printer.name
}
Row
{
id: extruderRow
width: parent.width
height: childrenRect.height
spacing: UM.Theme.getSize("default_margin").width
Repeater
{
height: childrenRect.height
model: printer.extruders
delegate: PrintCoreConfiguration
{
printCoreConfiguration: modelData
}
}
}
// Rectangle
// {
// id: buildplateInformation
//
// Label
// {
// text: printer.name + "-" + printer.type
// }
// }
}
MouseArea
{
id: mouse
anchors.fill: parent
onClicked: configurationSelected()
hoverEnabled: true
onEntered: parent.border.color = UM.Theme.getColor("primary_hover")
onExited: parent.border.color = "black"
}
}

View file

@ -0,0 +1,66 @@
// 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 UM 1.2 as UM
import Cura 1.0 as Cura
Column
{
id: base
property var outputDevice: Cura.MachineManager.printerOutputDevices[0]
height: childrenRect.height + 2 * padding
padding: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").height
Label {
text: catalog.i18nc("@label:header configurations", "Available configurations")
font: UM.Theme.getFont("large")
width: parent.width - 2 * parent.padding
}
Item
{
id: container
width: parent.width - 2 * parent.padding
height: childrenRect.height
Repeater {
height: childrenRect.height
model: outputDevice != null ? outputDevice.connectedPrintersTypeCount : null
delegate: Rectangle
{
height: childrenRect.height
Label
{
id: printerTypeHeader
text: modelData.machine_type
font: UM.Theme.getFont("default_bold")
}
ListView
{
id: grid
anchors.top: printerTypeHeader.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
width: container.width
height: childrenRect.height
model: outputDevice.printers
delegate: ConfigurationItem
{
height: parent.height
width: parent.width
printer: modelData
onConfigurationSelected:
{
print("SELECCIONANDO IMPRESORA", printer.name)
outputDevice.setActivePrinter(printer)
}
}
}
}
}
}
}

View file

@ -0,0 +1,99 @@
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls 2.3 as QQC2
import QtQuick.Layouts 1.1
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
Button
{
text: "Matched"
width: parent.width
height: parent.height
style: ButtonStyle
{
background: Rectangle
{
color:
{
if(control.pressed)
{
return UM.Theme.getColor("sidebar_header_active");
}
else if(control.hovered)
{
return UM.Theme.getColor("sidebar_header_hover");
}
else
{
return UM.Theme.getColor("sidebar_header_bar");
}
}
Behavior on color { ColorAnimation { duration: 50; } }
UM.RecolorImage
{
id: downArrow
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("standard_arrow").width
height: UM.Theme.getSize("standard_arrow").height
sourceSize.width: width
sourceSize.height: width
color: UM.Theme.getColor("text_emphasis")
source: UM.Theme.getIcon("arrow_bottom")
}
Label
{
id: sidebarComboBoxLabel
color: UM.Theme.getColor("sidebar_header_text_active")
text: control.text
elide: Text.ElideRight
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width * 2
anchors.right: downArrow.left
anchors.rightMargin: control.rightMargin
anchors.verticalCenter: parent.verticalCenter;
font: UM.Theme.getFont("large")
}
}
label: Label {}
}
onClicked:
{
panelVisible = !panelVisible
}
}
QQC2.Popup
{
id: popup
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 {
width: panelWidth - 2 * popup.padding
}
background: Rectangle {
color: UM.Theme.getColor("setting_control")
border.color: UM.Theme.getColor("setting_control_border")
}
}
}

View file

@ -0,0 +1,35 @@
// 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 UM 1.2 as UM
Item
{
id: extruderInfo
property var printCoreConfiguration
height: childrenRect.height
Label
{
id: materialLabel
text: printCoreConfiguration.activeMaterial != null ? printCoreConfiguration.activeMaterial.name : ""
elide: Text.ElideRight
width: parent.width
font: UM.Theme.getFont("very_small")
}
Label
{
id: printCoreLabel
text: printCoreConfiguration.hotendID
anchors.top: materialLabel.bottom
elide: Text.ElideRight
width: parent.width
font: UM.Theme.getFont("very_small")
opacity: 0.5
}
}