// A column that grows to fit its contents up to `maxHeight`, then scrolls. // Used by every detail list in the panel so they all overflow the same way. import QtQuick import qs.config Item { id: root property int maxHeight: 300 property alias spacing: column.spacing default property alias content: column.data implicitHeight: Math.min(column.implicitHeight, root.maxHeight) Flickable { id: flick anchors.fill: parent contentHeight: column.implicitHeight clip: true boundsBehavior: Flickable.StopAtBounds Column { id: column width: flick.width spacing: 2 } } // Static indicator — no fade timers, nothing repainting while idle. It is // only there so a clipped list doesn't look like the whole list. Rectangle { anchors.right: parent.right width: 3 radius: 1.5 border.width: 0 color: Theme.alpha(Theme.fg, 0.25) visible: flick.contentHeight > flick.height + 1 height: Math.max(24, flick.height * (flick.height / Math.max(1, flick.contentHeight))) y: (flick.height - height) * (flick.contentY / Math.max(1, flick.contentHeight - flick.height)) } }