mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
See also: https://pointieststick.com/2023/06/14/call-to-action-easy-porting-opportunity-in-plasma/
80 lines
2.2 KiB
QML
80 lines
2.2 KiB
QML
/*
|
|
* SPDX-FileCopyrightText: 2019 Marco Martin <mart@kde.org>
|
|
* SPDX-FileCopyrightText: 2021 Devin Lin <devin@kde.org>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.0-or-later
|
|
*/
|
|
|
|
import QtQuick 2.12
|
|
import QtQuick.Window 2.12
|
|
import QtQuick.Layouts 1.1
|
|
|
|
import org.kde.kirigami 2.20 as Kirigami
|
|
|
|
import org.kde.plasma.plasmoid 2.0
|
|
import org.kde.plasma.components 3.0 as PlasmaComponents
|
|
|
|
Loader {
|
|
id: root
|
|
|
|
required property var homeScreenState
|
|
|
|
property real topPadding: 0
|
|
property real bottomPadding: 0
|
|
property real leftPadding: 0
|
|
property real rightPadding: 0
|
|
|
|
property string appDrawerType: "gridview" // gridview/listview
|
|
|
|
readonly property real headerHeight: Math.round(Kirigami.Units.gridUnit * 3)
|
|
|
|
sourceComponent: appDrawerType === "gridview" ? gridViewDrawer : listViewDrawer
|
|
|
|
Component {
|
|
id: headerComponent
|
|
|
|
AppDrawerHeader {
|
|
onSwitchToListRequested: {
|
|
if (root.appDrawerType !== "listview") {
|
|
root.appDrawerType = "listview";
|
|
}
|
|
}
|
|
|
|
onSwitchToGridRequested: {
|
|
if (root.appDrawerType !== "gridview") {
|
|
root.appDrawerType = "gridview";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: listViewDrawer
|
|
ListViewAppDrawer {
|
|
anchors.fill: parent
|
|
topPadding: root.topPadding
|
|
bottomPadding: root.bottomPadding
|
|
leftPadding: root.leftPadding
|
|
rightPadding: root.rightPadding
|
|
|
|
homeScreenState: root.homeScreenState
|
|
headerItem: Loader { sourceComponent: headerComponent }
|
|
headerHeight: root.headerHeight
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: gridViewDrawer
|
|
GridViewAppDrawer {
|
|
anchors.fill: parent
|
|
topPadding: root.topPadding
|
|
bottomPadding: root.bottomPadding
|
|
leftPadding: root.leftPadding
|
|
rightPadding: root.rightPadding
|
|
|
|
homeScreenState: root.homeScreenState
|
|
headerItem: Loader { sourceComponent: headerComponent }
|
|
headerHeight: root.headerHeight
|
|
}
|
|
}
|
|
}
|