Warning, /plasma/plasma-mobile/containments/panel/package/contents/ui/main.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2021-2023 Devin Lin <devin@kde.org> 0002 // SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org> 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 import QtQuick 0006 import QtQuick.Layouts 0007 import QtQuick.Window 0008 import QtQml.Models 0009 0010 import org.kde.kirigami as Kirigami 0011 0012 import org.kde.plasma.plasmoid 0013 import org.kde.plasma.core as PlasmaCore 0014 import org.kde.plasma.components 3.0 as PlasmaComponents 0015 0016 import org.kde.plasma.private.mobileshell as MobileShell 0017 import org.kde.plasma.private.mobileshell.state as MobileShellState 0018 import org.kde.plasma.private.mobileshell.windowplugin as WindowPlugin 0019 0020 import org.kde.taskmanager as TaskManager 0021 import org.kde.notificationmanager as NotificationManager 0022 0023 ContainmentItem { 0024 id: root 0025 Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground 0026 Plasmoid.status: PlasmaCore.Types.PassiveStatus // ensure that the panel never takes focus away from the running app 0027 0028 // filled in by the shell (Panel.qml) with the plasma-workspace PanelView 0029 property var panel: null 0030 onPanelChanged: { 0031 if (panel) { 0032 panel.floating = false; 0033 } 0034 } 0035 0036 // only opaque if there are no maximized windows on this screen 0037 readonly property bool showingApp: WindowPlugin.WindowMaximizedTracker.showingWindow 0038 readonly property color backgroundColor: topPanel.colorScopeColor 0039 0040 // enforce thickness 0041 Binding { 0042 target: panel // assumed to be plasma-workspace "PanelView" component 0043 property: "thickness" 0044 value: MobileShell.Constants.topPanelHeight 0045 } 0046 0047 //BEGIN API implementation 0048 0049 Connections { 0050 target: MobileShellState.ShellDBusClient 0051 0052 function onOpenActionDrawerRequested() { 0053 drawer.actionDrawer.open(); 0054 } 0055 0056 function onCloseActionDrawerRequested() { 0057 drawer.actionDrawer.close(); 0058 } 0059 0060 function onDoNotDisturbChanged() { 0061 if (drawer.actionDrawer.notificationsWidget.doNotDisturbModeEnabled !== MobileShellState.ShellDBusClient.doNotDisturb) { 0062 drawer.actionDrawer.notificationsWidget.toggleDoNotDisturbMode(); 0063 } 0064 } 0065 } 0066 0067 Binding { 0068 target: MobileShellState.ShellDBusClient 0069 property: "isActionDrawerOpen" 0070 value: drawer.visible 0071 } 0072 0073 //END API implementation 0074 0075 Component.onCompleted: { 0076 // register dbus 0077 MobileShellState.ShellDBusObject.registerObject(); 0078 0079 // HACK: we need to initialize the DBus server somewhere, it might as well be here... 0080 // initialize the volume osd, and volume keys 0081 MobileShell.VolumeOSDProviderLoader.load(); 0082 } 0083 0084 // top panel component 0085 MobileShell.StatusBar { 0086 id: topPanel 0087 anchors.fill: parent 0088 0089 Kirigami.Theme.colorSet: root.showingApp ? Kirigami.Theme.Header : Kirigami.Theme.Complementary 0090 Kirigami.Theme.inherit: false 0091 0092 showDropShadow: !root.showingApp 0093 backgroundColor: !root.showingApp ? "transparent" : root.backgroundColor 0094 } 0095 0096 // swiping area for swipe-down drawer 0097 MobileShell.ActionDrawerOpenSurface { 0098 id: swipeArea 0099 actionDrawer: drawer.actionDrawer 0100 anchors.fill: parent 0101 } 0102 0103 // swipe-down drawer component 0104 MobileShell.ActionDrawerWindow { 0105 id: drawer 0106 0107 actionDrawer.notificationSettings: NotificationManager.Settings {} 0108 actionDrawer.notificationModel: NotificationManager.Notifications { 0109 showExpired: true 0110 showDismissed: true 0111 showJobs: drawer.actionDrawer.notificationSettings.jobsInNotifications 0112 sortMode: NotificationManager.Notifications.SortByTypeAndUrgency 0113 groupMode: NotificationManager.Notifications.GroupApplicationsFlat 0114 groupLimit: 2 0115 expandUnread: true 0116 blacklistedDesktopEntries: drawer.actionDrawer.notificationSettings.historyBlacklistedApplications 0117 blacklistedNotifyRcNames: drawer.actionDrawer.notificationSettings.historyBlacklistedServices 0118 urgencies: { 0119 var urgencies = NotificationManager.Notifications.CriticalUrgency 0120 | NotificationManager.Notifications.NormalUrgency; 0121 if (drawer.actionDrawer.notificationSettings.lowPriorityHistory) { 0122 urgencies |= NotificationManager.Notifications.LowUrgency; 0123 } 0124 return urgencies; 0125 } 0126 } 0127 } 0128 }