8 import QtQuick.Window 2.15
9 import QtQuick.Controls @QQC2_VERSION@
10 import QtQuick.Templates @QQC2_VERSION@ as T
11 import org.kde.plasma.core 2.0 as PlasmaCore
12 import org.kde.kirigami 2.5 as
Kirigami
18 implicitWidth: Math.max(background ? background.implicitWidth : 0,
19 contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0)
20 implicitHeight: Math.max(background ? background.implicitHeight : 0,
21 contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding
23 delegate:
MenuItem { width: parent.width; onImplicitWidthChanged: control.contentItem.contentItem.childrenChanged() }
26 leftPadding: background.margins.left
27 topPadding: background.margins.top
28 rightPadding: background.margins.right
29 bottomPadding: background.margins.bottom
31 contentItem: ListView {
32 implicitHeight: contentHeight
33 property bool hasCheckables:
false
34 property bool hasIcons:
false
35 model: control.contentModel
39 for (var i = 0; i < contentItem.children.length; ++i) {
40 maxWidth = Math.max(maxWidth, contentItem.children[i].implicitWidth);
45 interactive:
Window.window ? contentHeight + control.topPadding + control.bottomPadding >
Window.window.height :
false
47 currentIndex: control.currentIndex || 0
48 keyNavigationEnabled:
true
49 keyNavigationWraps:
true
55 target: control.contentItem.contentItem
57 function onChildrenChanged() {
58 for (var i in control.contentItem.contentItem.children) {
59 var child = control.contentItem.contentItem.children[i];
60 if (child.checkable) {
61 control.contentItem.hasCheckables =
true;
63 if (child.icon && child.icon.hasOwnProperty(
"name") && (child.icon.name.length > 0 || child.icon.source.length > 0)) {
64 control.contentItem.hasIcons =
true;
75 easing.type: Easing.InOutQuad
76 duration: PlasmaCore.Units.shortDuration
85 easing.type: Easing.InOutQuad
86 duration: PlasmaCore.Units.shortDuration
90 background: PlasmaCore.FrameSvgItem {
91 imagePath:
"widgets/background"
92 implicitWidth: PlasmaCore.Units.gridUnit * 8
93 implicitHeight: PlasmaCore.Units.gridUnit * 2