Warning, /system/mycroft-gui/documentation/skill-example/ui/exampleMenu.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick.Layouts 1.4
0002 import QtQuick 2.4
0003 import QtQuick.Controls 2.0
0004 import org.kde.kirigami 2.5 as Kirigami
0005 import org.kde.plasma.core 2.0 as PlasmaCore
0006 import Mycroft 1.0 as Mycroft
0007 
0008 Mycroft.Delegate {
0009     id: exampleMenuView
0010     property var exampleModel: sessionData.menuBlob.menuItems
0011     
0012     Component.onCompleted: {
0013         console.log(sessionData.menuBlob)
0014     }
0015     
0016     Item {
0017         id: topArea
0018         anchors.left: parent.left
0019         anchors.right: parent.right
0020         anchors.top: parent.top
0021         height: Kirigami.Units.gridUnit * 2
0022         
0023         Kirigami.Heading {
0024             id: examplePageTextHeading
0025             level: 1
0026             wrapMode: Text.WordWrap
0027             anchors.centerIn: parent
0028             font.bold: true
0029             text: "GUI Examples"
0030             color: Kirigami.Theme.linkColor
0031         }
0032     }
0033 
0034     Item {
0035         anchors.top: topArea.bottom
0036         anchors.topMargin: Kirigami.Units.largeSpacing
0037         anchors.left: parent.left
0038         anchors.right: parent.right
0039         anchors.bottom: areaSep.top
0040         anchors.bottomMargin: Kirigami.Units.largeSpacing
0041         
0042         ListView {
0043             anchors.fill: parent
0044             clip: true
0045             model: exampleModel
0046             boundsBehavior: Flickable.StopAtBounds
0047             delegate: Kirigami.AbstractListItem {
0048                 contentItem: Item {
0049                 implicitWidth: delegateLayout.implicitWidth;
0050                 implicitHeight: delegateLayout.implicitHeight;
0051         
0052                     ColumnLayout {
0053                         id: delegateLayout
0054                         anchors {
0055                             left: parent.left;
0056                             top: parent.top;
0057                             right: parent.right;
0058                         }
0059                     
0060                         RowLayout {
0061                             Layout.fillWidth: true
0062                             spacing: Math.round(units.gridUnit / 2)
0063                 
0064                             Kirigami.Icon {
0065                                 id: exampleMenuItemIcon
0066                                 Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
0067                                 Layout.preferredHeight: units.iconSizes.medium
0068                                 Layout.preferredWidth: units.iconSizes.medium
0069                                 source: modelData.exampleIcon
0070                             }
0071 
0072                             
0073                             Kirigami.Heading {
0074                                 id: exampleMenuItemLabel
0075                                 Layout.fillWidth: true
0076                                 Layout.alignment: Qt.AlignHCenter
0077                                 height: paintedHeight
0078                                 elide: Text.ElideRight
0079                                 font.weight: Font.DemiBold
0080                                 text: modelData.exampleLabel
0081                                 textFormat: Text.PlainText
0082                                 level: 2
0083                             }
0084                         }
0085                     }
0086                 }
0087                 
0088                 onClicked: {
0089                         triggerEvent(modelData.exampleEvent, {})
0090                 }
0091             }
0092         }
0093     }
0094     
0095     Kirigami.Separator {
0096         id: areaSep
0097         anchors.bottom: bottomArea.top
0098         anchors.left: parent.left
0099         anchors.right: parent.right
0100         height: 1
0101     }
0102     
0103     Item {
0104         id: bottomArea
0105         anchors.left: parent.left
0106         anchors.right: parent.right
0107         anchors.bottom: parent.bottom
0108         anchors.bottomMargin: Kirigami.Units.largeSpacing * 1.15
0109         height: backIcon.implicitHeight + Kirigami.Units.largeSpacing * 1.15
0110 
0111         RowLayout {
0112             anchors.fill: parent
0113             
0114             Kirigami.Icon {
0115                 id: backIcon
0116                 source: "go-previous"
0117                 Layout.preferredHeight: Kirigami.Units.iconSizes.medium
0118                 Layout.preferredWidth: Kirigami.Units.iconSizes.medium
0119             }
0120             
0121             Kirigami.Heading {
0122                 level: 2
0123                 wrapMode: Text.WordWrap
0124                 font.bold: true
0125                 text: "Home"
0126                 Layout.fillWidth: true
0127                 Layout.preferredHeight: Kirigami.Units.gridUnit * 2
0128             }
0129         }
0130         
0131         MouseArea {
0132             anchors.fill: parent
0133             onClicked: {
0134                 triggerEvent("mycroft.device.show.idle", {})
0135             }
0136         }
0137     }
0138 }