9import QtQuick.Templates as T
10import org.kde.ksvg as KSvg
12import org.kde.plasma.core as PlasmaCore
13import org.kde.kirigami as Kirigami
18 implicitWidth: Math.max(background ? background.implicitWidth : 0,
19 contentItem.implicitWidth + leftPadding + rightPadding + (arrow ? arrow.implicitWidth : 0))
20 implicitHeight: Math.max(background ? background.implicitHeight : 0,
21 Math.max(contentItem.implicitHeight,
22 indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding)
23 baselineOffset: contentItem.y + contentItem.baselineOffset
25 leftPadding: highlight.margins.left
26 topPadding: highlight.margins.top
27 rightPadding: highlight.margins.right
28 bottomPadding: highlight.margins.bottom
29 spacing: Kirigami.Units.smallSpacing
32 Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
33 Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.MenuItem
34 Kirigami.MnemonicData.label: controlRoot.text
37 enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
38 sequence: controlRoot.Kirigami.MnemonicData.sequence
40 if (controlRoot.checkable) {
43 controlRoot.clicked();
48 contentItem: RowLayout {
50 Layout.preferredWidth: (controlRoot.ListView.view && controlRoot.ListView.view.hasCheckables) || controlRoot.checkable ? controlRoot.indicator.width :
Kirigami.
Units.smallSpacing
53 Layout.alignment:
Qt.AlignVCenter
54 visible: (controlRoot.ListView.view && controlRoot.ListView.view.hasIcons) || (controlRoot.icon != undefined && (controlRoot.icon.name.length > 0 || controlRoot.icon.source.length > 0))
55 source: controlRoot.icon ? (controlRoot.icon.name || controlRoot.icon.source) :
""
56 Layout.preferredHeight: Math.max(label.height,
Kirigami.
Units.iconSizes.small)
57 Layout.preferredWidth: Layout.preferredHeight
61 Layout.alignment:
Qt.AlignVCenter
62 Layout.fillWidth: true
64 text: controlRoot.
Kirigami.MnemonicData.richTextLabel
65 font: controlRoot.font
66 elide: Text.ElideRight
67 visible: controlRoot.text
68 horizontalAlignment: Text.AlignLeft
69 verticalAlignment: Text.AlignVCenter
74 x: controlRoot.mirrored ? controlRoot.padding : controlRoot.width - width - controlRoot.padding
75 y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
76 source: controlRoot.mirrored ?
"go-next-symbolic-rtl" :
"go-next-symbolic"
79 visible: controlRoot.subMenu
83 x: controlRoot.mirrored ? controlRoot.width - width - controlRoot.rightPadding : controlRoot.leftPadding
84 y: controlRoot.topPadding + Math.round((controlRoot.availableHeight - height) / 2)
86 visible: controlRoot.checkable
87 sourceComponent: controlRoot.autoExclusive ? radioComponent : checkComponent
108 imagePath:
"widgets/viewitem"
112 if (controlRoot.highlighted || controlRoot.hovered || controlRoot.down) {
118 Behavior on opacity {
119 enabled:
Kirigami.Units.shortDuration > 0
121 duration:
Kirigami.Units.shortDuration