Warning, /multimedia/kasts/src/qml/KastsGlobalDrawer.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2020 Tobias Fella <tobias.fella@kde.org>
0002 // SPDX-FileCopyrightText: 2021-2022 Bart De Vries <bart@mogwai.be>
0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004
0005 import QtQuick
0006 import QtQuick.Controls as QQC2
0007 import QtQuick.Layouts
0008
0009 import org.kde.kirigami as Kirigami
0010
0011 import org.kde.kasts
0012
0013 Kirigami.OverlayDrawer {
0014 id: root
0015 modal: false
0016 closePolicy: QQC2.Popup.NoAutoClose
0017 edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge
0018
0019 readonly property real pinnedWidth: Kirigami.Units.gridUnit * 3
0020 readonly property real widescreenBigWidth: Kirigami.Units.gridUnit * 10
0021 readonly property int buttonDisplayMode: kastsMainWindow.isWidescreen ? Kirigami.NavigationTabButton.TextBesideIcon : Kirigami.NavigationTabButton.IconOnly
0022
0023 width: showGlobalDrawer ? (kastsMainWindow.isWidescreen ? widescreenBigWidth : pinnedWidth) : 0
0024
0025 Kirigami.Theme.colorSet: Kirigami.Theme.Window
0026 Kirigami.Theme.inherit: false
0027
0028 leftPadding: 0
0029 rightPadding: 0
0030 topPadding: 0
0031 bottomPadding: 0
0032
0033 contentItem: Loader {
0034 id: sidebarColumn
0035 active: showGlobalDrawer
0036
0037 sourceComponent: ColumnLayout {
0038 spacing: 0
0039
0040 QQC2.ToolBar {
0041 Layout.fillWidth: true
0042 Layout.preferredHeight: pageStack.globalToolBar.preferredHeight
0043
0044 leftPadding: Kirigami.Units.smallSpacing
0045 rightPadding: Kirigami.Units.smallSpacing
0046 topPadding: Kirigami.Units.smallSpacing
0047 bottomPadding: Kirigami.Units.smallSpacing
0048
0049 contentItem: GlobalSearchField {}
0050 }
0051
0052 QQC2.ScrollView {
0053 id: scrollView
0054 Layout.fillWidth: true
0055 Layout.fillHeight: true
0056
0057 QQC2.ScrollBar.vertical.policy: QQC2.ScrollBar.AlwaysOff
0058 QQC2.ScrollBar.horizontal.policy: QQC2.ScrollBar.AlwaysOff
0059 contentWidth: -1 // disable horizontal scroll
0060
0061 ColumnLayout {
0062 id: column
0063 width: scrollView.width
0064 spacing: 0
0065
0066 Kirigami.NavigationTabButton {
0067 Layout.fillWidth: true
0068 display: root.buttonDisplayMode
0069 text: i18n("Queue")
0070 icon.name: "source-playlist"
0071 checked: currentPage == "QueuePage"
0072 onClicked: {
0073 pushPage("QueuePage")
0074 }
0075 }
0076 Kirigami.NavigationTabButton {
0077 Layout.fillWidth: true
0078 display: root.buttonDisplayMode
0079 text: i18n("Discover")
0080 icon.name: "search"
0081 checked: currentPage == "DiscoverPage"
0082 onClicked: {
0083 pushPage("DiscoverPage")
0084 }
0085 }
0086 Kirigami.NavigationTabButton {
0087 Layout.fillWidth: true
0088 display: root.buttonDisplayMode
0089 text: i18n("Subscriptions")
0090 icon.name: "bookmarks"
0091 checked: currentPage == "FeedListPage"
0092 onClicked: {
0093 pushPage("FeedListPage")
0094 }
0095 }
0096 Kirigami.NavigationTabButton {
0097 Layout.fillWidth: true
0098 display: root.buttonDisplayMode
0099 text: i18n("Episodes")
0100 icon.name: "rss"
0101 checked: currentPage == "EpisodeListPage"
0102 onClicked: {
0103 pushPage("EpisodeListPage")
0104 }
0105 }
0106 Kirigami.NavigationTabButton {
0107 Layout.fillWidth: true
0108 display: root.buttonDisplayMode
0109 text: i18n("Downloads")
0110 icon.name: "download"
0111 checked: currentPage == "DownloadListPage"
0112 onClicked: {
0113 pushPage("DownloadListPage")
0114 }
0115 }
0116 }
0117 }
0118
0119 Kirigami.Separator {
0120 Layout.fillWidth: true
0121 Layout.rightMargin: Kirigami.Units.smallSpacing
0122 Layout.leftMargin: Kirigami.Units.smallSpacing
0123 }
0124
0125 Kirigami.NavigationTabButton {
0126 Layout.fillWidth: true
0127 display: root.buttonDisplayMode
0128
0129 text: i18n("Settings")
0130 icon.name: "settings-configure"
0131 checked: currentPage == "SettingsPage"
0132 onClicked: {
0133 checked = false;
0134 pushPage("SettingsPage")
0135 }
0136 }
0137 }
0138 }
0139 }