mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2024-08-15 00:43:43 +00:00
153 lines
4.1 KiB
QML
153 lines
4.1 KiB
QML
|
/*
|
||
|
SPDX-FileCopyrightText: 2013 Marco Martin <mart@kde.org>
|
||
|
SPDX-FileCopyrightText: 2014 Ivan Cukic <ivan.cukic@kde.org>
|
||
|
|
||
|
SPDX-License-Identifier: LGPL-2.0-or-later
|
||
|
*/
|
||
|
|
||
|
import QtQuick 2.0
|
||
|
|
||
|
import org.kde.plasma.components 3.0 as PlasmaComponents
|
||
|
import org.kde.kirigami 2.20 as Kirigami
|
||
|
import org.kde.config as KConfig // KAuthorized
|
||
|
import org.kde.kcmutils // KCMLauncher
|
||
|
|
||
|
|
||
|
FocusScope {
|
||
|
id: root
|
||
|
signal closed()
|
||
|
|
||
|
function parentClosed() {
|
||
|
activityBrowser.parentClosed();
|
||
|
}
|
||
|
|
||
|
//this is used to perfectly align the filter field and delegates
|
||
|
property int cellWidth: Kirigami.Units.iconSizes.sizeForLabels * 30
|
||
|
property int spacing: 2 * Kirigami.Units.smallSpacing
|
||
|
|
||
|
property bool showSwitcherOnly: false
|
||
|
|
||
|
width: Kirigami.Units.gridUnit * 16
|
||
|
|
||
|
Item {
|
||
|
id: activityBrowser
|
||
|
|
||
|
property int spacing: 2 * Kirigami.Units.smallSpacing
|
||
|
|
||
|
signal closeRequested()
|
||
|
|
||
|
Keys.onPressed: {
|
||
|
if (event.key === Qt.Key_Escape) {
|
||
|
if (heading.searchString.length > 0) {
|
||
|
heading.searchString = "";
|
||
|
} else {
|
||
|
activityBrowser.closeRequested();
|
||
|
}
|
||
|
|
||
|
} else if (event.key === Qt.Key_Up) {
|
||
|
activityList.selectPrevious();
|
||
|
|
||
|
} else if (event.key === Qt.Key_Down) {
|
||
|
activityList.selectNext();
|
||
|
|
||
|
} else if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||
|
activityList.openSelected();
|
||
|
|
||
|
} else if (event.key === Qt.Key_Tab) {
|
||
|
// console.log("TAB KEY");
|
||
|
|
||
|
} else {
|
||
|
// console.log("OTHER KEY");
|
||
|
// event.accepted = false;
|
||
|
// heading.forceActiveFocus();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Rectangle {
|
||
|
// anchors.fill : parent
|
||
|
// opacity : .4
|
||
|
// color : "white"
|
||
|
// }
|
||
|
|
||
|
Heading {
|
||
|
id: heading
|
||
|
|
||
|
anchors {
|
||
|
top: parent.top
|
||
|
left: parent.left
|
||
|
right: parent.right
|
||
|
|
||
|
leftMargin: Kirigami.Units.smallSpacing
|
||
|
rightMargin: Kirigami.Units.smallSpacing
|
||
|
}
|
||
|
|
||
|
visible: !root.showSwitcherOnly
|
||
|
|
||
|
onCloseRequested: activityBrowser.closeRequested()
|
||
|
}
|
||
|
|
||
|
PlasmaComponents.ScrollView {
|
||
|
anchors {
|
||
|
top: heading.visible ? heading.bottom : parent.top
|
||
|
bottom: bottomPanel.visible ? bottomPanel.top : parent.bottom
|
||
|
left: parent.left
|
||
|
right: parent.right
|
||
|
topMargin: activityBrowser.spacing
|
||
|
}
|
||
|
|
||
|
ActivityList {
|
||
|
id: activityList
|
||
|
showSwitcherOnly: root.showSwitcherOnly
|
||
|
filterString: heading.searchString.toLowerCase()
|
||
|
itemsWidth: root.width - Kirigami.Units.smallSpacing
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Item {
|
||
|
id: bottomPanel
|
||
|
|
||
|
height: newActivityButton.height + Kirigami.Units.gridUnit
|
||
|
|
||
|
visible: !root.showSwitcherOnly
|
||
|
|
||
|
anchors {
|
||
|
bottom: parent.bottom
|
||
|
left: parent.left
|
||
|
right: parent.right
|
||
|
}
|
||
|
|
||
|
PlasmaComponents.ToolButton {
|
||
|
id: newActivityButton
|
||
|
|
||
|
text: i18nd("plasma_shell_org.kde.plasma.desktop", "Create activity…")
|
||
|
icon.name: "list-add"
|
||
|
|
||
|
width: parent.width
|
||
|
|
||
|
onClicked: KCMLauncher.openSystemSettings("kcm_activities", "newActivity")
|
||
|
|
||
|
visible: KConfig.KAuthorized.authorize("plasma-desktop/add_activities")
|
||
|
opacity: newActivityDialog.status == Loader.Ready ?
|
||
|
1 - newActivityDialog.item.opacity : 1
|
||
|
}
|
||
|
|
||
|
Loader {
|
||
|
id: newActivityDialog
|
||
|
|
||
|
z: 100
|
||
|
|
||
|
anchors.bottom: newActivityButton.bottom
|
||
|
anchors.left: newActivityButton.left
|
||
|
anchors.right: newActivityButton.right
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
onCloseRequested: root.closed()
|
||
|
|
||
|
anchors.fill: parent
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|