Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml
Ghostkeeper a03e1be601
Simplify sectionHeading element
No need to define that component in a higher location, just define it where you need it. Also, no need to use a Rectangle for this if it has no colour, just use an Item, but the Item itself is also not necessary if you just need the padding.

Contributes to issue CURA-5876.
2018-11-26 17:19:32 +01:00

85 lines
2.4 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 1.4
import QtQuick.Controls.Styles 1.4
import UM 1.2 as UM
import Cura 1.0 as Cura
Column
{
id: base
property var outputDevice: null
height: childrenRect.height + 2 * padding
spacing: Math.round(UM.Theme.getSize("default_margin").height / 2)
function forceModelUpdate()
{
// FIXME For now the model should be removed and then created again, otherwise changes in the printer don't automatically update the UI
configurationList.model = []
if(outputDevice)
{
configurationList.model = outputDevice.uniqueConfigurations
}
}
ScrollView
{
id: container
width: parent.width - parent.padding
height: Math.min(configurationList.contentHeight, 350 * screenScaleFactor)
style: UM.Theme.styles.scrollview
__wheelAreaScrollSpeed: 75 // Scroll three lines in one scroll event
ListView
{
id: configurationList
spacing: Math.round(UM.Theme.getSize("default_margin").height / 2)
width: container.width
contentHeight: childrenRect.height
section.property: "modelData.printerType"
section.criteria: ViewSection.FullString
section.delegate: Label
{
text: section
font: UM.Theme.getFont("default_bold")
color: UM.Theme.getColor("configuration_item_text")
bottomPadding: UM.Theme.getSize("default_margin").height
}
model: (outputDevice != null) ? outputDevice.uniqueConfigurations : []
delegate: ConfigurationItem
{
width: parent.width - UM.Theme.getSize("default_margin").width
configuration: modelData
onActivateConfiguration:
{
switchPopupState()
Cura.MachineManager.applyRemoteConfiguration(configuration)
}
}
}
}
Connections
{
target: outputDevice
onUniqueConfigurationsChanged:
{
forceModelUpdate()
}
}
Connections
{
target: Cura.MachineManager
onOutputDevicesChanged:
{
forceModelUpdate()
}
}
}