mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-24 15:13:56 -06:00
Fix scrollbar for object selector
This commit is contained in:
parent
549eb21a5a
commit
cc65bc8213
2 changed files with 27 additions and 39 deletions
|
@ -78,7 +78,7 @@ Item
|
|||
id: contents
|
||||
width: parent.width
|
||||
visible: objectSelector.opened
|
||||
height: visible ? scroll.height : 0
|
||||
height: visible ? listView.height : 0
|
||||
color: UM.Theme.getColor("main_background")
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: UM.Theme.getColor("lining")
|
||||
|
@ -87,50 +87,39 @@ Item
|
|||
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
ScrollView
|
||||
ListView
|
||||
{
|
||||
id: scroll
|
||||
width: parent.width
|
||||
id: listView
|
||||
clip: true
|
||||
padding: UM.Theme.getSize("default_lining").width
|
||||
|
||||
contentItem: ListView
|
||||
anchors
|
||||
{
|
||||
id: listView
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
margins: UM.Theme.getSize("default_lining").width
|
||||
}
|
||||
|
||||
// Can't use parent.width since the parent is the flickable component and not the ScrollView
|
||||
width: scroll.width - scroll.leftPadding - scroll.rightPadding
|
||||
property real maximumHeight: UM.Theme.getSize("objects_menu_size").height
|
||||
ScrollBar.vertical: ScrollBar
|
||||
{
|
||||
hoverEnabled: true
|
||||
}
|
||||
|
||||
// We use an extra property here, since we only want to to be informed about the content size changes.
|
||||
onContentHeightChanged:
|
||||
property real maximumHeight: UM.Theme.getSize("objects_menu_size").height
|
||||
|
||||
height: Math.min(contentHeight, maximumHeight)
|
||||
|
||||
model: Cura.ObjectsModel {}
|
||||
|
||||
delegate: ObjectItemButton
|
||||
{
|
||||
id: modelButton
|
||||
Binding
|
||||
{
|
||||
// It can sometimes happen that (due to animations / updates) the contentHeight is -1.
|
||||
// This can cause a bunch of updates to trigger oneother, leading to a weird loop.
|
||||
if(contentHeight >= 0)
|
||||
{
|
||||
scroll.height = Math.min(contentHeight, maximumHeight) + scroll.topPadding + scroll.bottomPadding
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
scroll.height = Math.min(contentHeight, maximumHeight) + scroll.topPadding + scroll.bottomPadding
|
||||
}
|
||||
model: Cura.ObjectsModel {}
|
||||
|
||||
delegate: ObjectItemButton
|
||||
{
|
||||
id: modelButton
|
||||
Binding
|
||||
{
|
||||
target: modelButton
|
||||
property: "checked"
|
||||
value: model.selected
|
||||
}
|
||||
text: model.name
|
||||
width: listView.width
|
||||
target: modelButton
|
||||
property: "checked"
|
||||
value: model.selected
|
||||
}
|
||||
text: model.name
|
||||
width: listView.width
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue