Build the Panama Hyprland desktop
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// 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))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user