Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:epopov:branches:openSUSE:Factory
kf6-kirigami
2000-listsectionheader.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2000-listsectionheader.patch of Package kf6-kirigami
diff --git a/src/controls/ListSectionHeader.qml b/src/controls/ListSectionHeader.qml index eaa2d42fe469aa4a57a996c45d0668cc804f3e26..67254b01a5e59ee98c0f7346ccccb6b583e154fd 100644 --- a/src/controls/ListSectionHeader.qml +++ b/src/controls/ListSectionHeader.qml @@ -48,7 +48,7 @@ QQC2.ItemDelegate { @Deprecated { reason: "Use base type's AbstractButton::text property directly" } property alias label: listSection.text - default property alias _contents: rowLayout.data + default property alias _contents: trailingContent.data hoverEnabled: false @@ -59,13 +59,29 @@ QQC2.ItemDelegate { topPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing + implicitWidth: { + let implicitWidth = Kirigami.Units.gridUnit * 12; + if (contentItem) { + implicitWidth = leftPadding + rightPadding; + if (contentItem === rowLayout) { + implicitWidth += Math.ceil(heading.implicitWidth); + if (trailingContent.visible) { + implicitWidth += rowLayout.spacing + trailingContent.implicitWidth; + } + } else { + implicitWidth += contentItem.implicitWidth; + } + } + return implicitWidth; + } + contentItem: RowLayout { id: rowLayout spacing: Kirigami.Units.largeSpacing Kirigami.Heading { - Layout.maximumWidth: rowLayout.width - Layout.alignment: Qt.AlignVCenter + id: heading + Layout.fillWidth: !separator.visible opacity: 0.7 level: 5 @@ -80,9 +96,22 @@ QQC2.ItemDelegate { } Kirigami.Separator { + id: separator + Layout.minimumWidth: Kirigami.Units.gridUnit Layout.fillWidth: true - Layout.alignment: Qt.AlignVCenter Accessible.ignored: true + visible: { + let availableHeadingWidth = rowLayout.width - separator.Layout.minimumWidth - rowLayout.spacing; + if (trailingContent.visible) { + availableHeadingWidth -= trailingContent.width + rowLayout.spacing; + } + return availableHeadingWidth >= heading.implicitWidth; + } + } + + RowLayout { + id: trailingContent + visible: visibleChildren.length > 0 } } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor