Warning, /plasma-mobile/plasma-settings/src/qml/Sidebar.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright 2021 Devin Lin <devin@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Layouts 1.3 0009 import QtQuick.Controls 2.15 as QQC2 0010 import org.kde.kirigami 2.11 as Kirigami 0011 0012 import org.kde.plasma.settings 0.1 0013 0014 Kirigami.OverlayDrawer { 0015 id: drawer 0016 modal: false 0017 height: applicationWindow().height 0018 width: 300 0019 handleVisible: false 0020 0021 edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge 0022 parent: QQC2.Overlay.overlay 0023 x: 0 0024 0025 property alias model: listView.model 0026 0027 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0028 Kirigami.Theme.inherit: false 0029 0030 leftPadding: 0 0031 rightPadding: 0 0032 topPadding: 0 0033 bottomPadding: 0 0034 0035 contentItem: ColumnLayout { 0036 spacing: 0 0037 0038 QQC2.ToolBar { 0039 Layout.fillWidth: true 0040 implicitHeight: applicationWindow().pageStack.globalToolBar.preferredHeight 0041 visible: drawer.visible 0042 0043 Item { 0044 anchors.fill: parent 0045 0046 Kirigami.Heading { 0047 level: 1 0048 text: i18n("Settings") 0049 anchors.left: parent.left 0050 anchors.leftMargin: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing 0051 anchors.verticalCenter: parent.verticalCenter 0052 } 0053 0054 QQC2.ToolButton { 0055 id: searchButton 0056 anchors.right: parent.right 0057 anchors.verticalCenter: parent.verticalCenter 0058 0059 text: i18n("Search") 0060 icon.name: "search" 0061 checkable: true 0062 0063 onCheckedChanged: { 0064 if (!checked) { 0065 drawer.model.filterString = ""; 0066 } 0067 } 0068 } 0069 0070 } 0071 } 0072 0073 HeaderSearchBar { 0074 Layout.fillWidth: true 0075 0076 model: drawer.model 0077 show: searchButton.checked 0078 } 0079 0080 QQC2.ScrollView { 0081 id: scrollView 0082 Layout.fillHeight: true 0083 Layout.fillWidth: true 0084 z: -1 0085 0086 property real scrollBarWidth: QQC2.ScrollBar.vertical.width 0087 QQC2.ScrollBar.horizontal.visible: false 0088 0089 ListView { 0090 id: listView 0091 spacing: Kirigami.Units.smallSpacing 0092 topMargin: Kirigami.Units.smallSpacing 0093 bottomMargin: Kirigami.Units.smallSpacing 0094 0095 delegate: SidebarButton { 0096 width: listView.width - Kirigami.Units.smallSpacing * 2 0097 height: Kirigami.Units.gridUnit * 2 0098 x: Kirigami.Units.smallSpacing 0099 0100 property bool pageInView: model.id === applicationWindow().currentModuleName 0101 0102 text: model.name 0103 icon.name: model.iconName 0104 checked: pageInView 0105 0106 onClicked: { 0107 if (!pageInView) { 0108 applicationWindow().openModule(model.id); 0109 } 0110 checked = Qt.binding(function() { return pageInView; }); 0111 } 0112 } 0113 } 0114 } 0115 } 0116 }