add scrolling to standard MyComboBox to prevent Mistral clipping

Signed-off-by: Jared Van Bortel <jared@nomic.ai>
This commit is contained in:
Jared Van Bortel 2025-02-24 14:00:03 -05:00
parent d41a08c627
commit d73abb493e

View File

@ -60,27 +60,28 @@ ComboBox {
highlighted: comboBox.highlightedIndex === index highlighted: comboBox.highlightedIndex === index
} }
popup: Popup { popup: Popup {
// FIXME This should be made much nicer to take into account lists that are very long so
// that it is scrollable and also sized optimally taking into account the x,y and the content
// width and height as well as the window width and height
y: comboBox.height - 1 y: comboBox.height - 1
width: comboBox.width width: comboBox.width
implicitHeight: contentItem.implicitHeight + 20 implicitHeight: Math.min(window.height - y, contentItem.implicitHeight + 20)
padding: 0 padding: 0
contentItem: Rectangle { contentItem: Rectangle {
implicitWidth: myListView.contentWidth implicitWidth: comboBox.width
implicitHeight: myListView.contentHeight implicitHeight: myListView.contentHeight
color: "transparent" color: "transparent"
ListView { radius: 10
id: myListView ScrollView {
anchors.fill: parent anchors.fill: parent
anchors.margins: 10 anchors.margins: 10
clip: true clip: true
implicitHeight: contentHeight ScrollBar.vertical.policy: ScrollBar.AsNeeded
model: comboBox.popup.visible ? comboBox.delegateModel : null ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
currentIndex: comboBox.highlightedIndex ListView {
ScrollIndicator.vertical: ScrollIndicator { } id: myListView
implicitHeight: contentHeight
model: comboBox.popup.visible ? comboBox.delegateModel : null
currentIndex: comboBox.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
}
} }
} }