9import QtQuick.Controls as QQC2
10import org.kde.kirigami as Kirigami
44 readonly property int margins: 6
52 property bool framedView: true
59 property bool extraFooterTopPadding: false
61 property bool sidebarMode: false
63 function __itemVisible(item: Item): bool {
64 return item !== null && item.visible && item.implicitHeight > 0;
67 function __headerContentVisible(): bool {
68 return __itemVisible(headerParent.contentItem);
70 function __footerContentVisible(): bool {
71 return __itemVisible(footerParent.contentItem);
78 function __headerSeparatorVisible(): bool {
79 return !framedView && __headerContentVisible();
81 function __footerSeparatorVisible(): bool {
82 return !framedView && extraFooterTopPadding;
85 title: (typeof kcm !==
"undefined") ? kcm.name :
""
95 topPadding: framedView && !__headerContentVisible() ? margins : 0
96 leftPadding: undefined
97 rightPadding: undefined
98 bottomPadding: framedView && !__footerContentVisible() ? margins : 0
99 verticalPadding: undefined
100 horizontalPadding: framedView ? margins : 0
105 height: root.__headerContentVisible()
107 : (root.__headerSeparatorVisible()
108 ? headerSeparator.implicitHeight
111 padding: root.margins
112 bottomPadding: root.__headerSeparatorVisible()
113 ? verticalPadding + headerSeparator.implicitHeight
123 bottom: parent.bottom
125 visible: root.__headerSeparatorVisible()
132 visible: !root.framedView
135 color:
Kirigami.Theme.backgroundColor
141 height: root.__footerContentVisible()
143 : (root.__footerSeparatorVisible()
144 ? footerSeparator.implicitHeight
147 padding: root.margins
148 topPadding: root.__footerSeparatorVisible()
149 ? verticalPadding + footerSeparator.implicitHeight
161 visible: root.__footerSeparatorVisible()
165 function __swapContentIntoContainer(property: string, container:
Item) {
166 const content =
this[property];
168 if (content && content !== container) {
171 content.anchors.top = undefined;
173 this[property] = container;
174 container.contentItem = content;
175 container.visible =
true;
179 Component.onCompleted: {
180 __swapContentIntoContainer(
"header", headerParent);
181 __swapContentIntoContainer(
"footer", footerParent);
184 for (
const obj of contentItem.data) {
185 if (obj instanceof
Kirigami.OverlaySheet) {
QTextStream & left(QTextStream &stream)
QTextStream & right(QTextStream &stream)