mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
Reintroduce StatusNotifierModel-based system tray icons, gated on
convergenceModeEnabled. Desktop apps (KDE Connect, nm-applet, etc.)
expose tray icons that were removed in 1914e9be as unusable on
phone screens.
The status bar wrapper is raised above the ActionDrawerOpenSurface
so tray icon MouseAreas receive click events while non-interactive
areas still fall through to the swipe handler.
TaskWidget.qml supports left-click (Activate), right-click
(ContextMenu), hover tooltip, and hides Passive/ApplicationStatus
items. The lockscreen SIGABRT guard (disableSystemTray) is restored
on the action drawer's StatusBar instance.
170 lines
6.1 KiB
CMake
170 lines
6.1 KiB
CMake
# SPDX-FileCopyrightText: 2021 Devin Lin <devin@kde.org>
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
ecm_add_qml_module(mobileshellplugin URI org.kde.plasma.private.mobileshell GENERATE_PLUGIN_SOURCE DEPENDENCIES QtQuick)
|
|
|
|
set(mobileshellplugin_SRCS
|
|
shellutil.cpp
|
|
components/direction.cpp
|
|
components/direction.h
|
|
components/swipearea.cpp
|
|
notifications/notificationthumbnailer.cpp
|
|
notifications/notificationfilemenu.cpp
|
|
notifications/notificationfileinfo.cpp
|
|
masklayer/masklayer.cpp
|
|
masklayer/maskmanager.cpp
|
|
)
|
|
target_include_directories(mobileshellplugin PRIVATE components)
|
|
target_include_directories(mobileshellplugin PRIVATE notifications)
|
|
target_include_directories(mobileshellplugin PRIVATE masklayer)
|
|
target_sources(mobileshellplugin PRIVATE ${mobileshellplugin_SRCS})
|
|
|
|
# Singleton declarations
|
|
set_source_files_properties(
|
|
qml/components/AppLaunch.qml
|
|
qml/components/Constants.qml
|
|
qml/dataproviders/AudioInfo.qml
|
|
qml/dataproviders/BatteryInfo.qml
|
|
qml/dataproviders/BluetoothInfo.qml
|
|
qml/dataproviders/NetworkInfo.qml
|
|
qml/dataproviders/SignalStrengthInfo.qml
|
|
qml/popups/PopupProviderLoader.qml
|
|
PROPERTIES
|
|
QT_QML_SINGLETON_TYPE TRUE
|
|
)
|
|
|
|
# QML files meant to be used publicly
|
|
# TODO: move files gradually out of main namespace into sub namespaces
|
|
ecm_target_qml_sources(mobileshellplugin SOURCES
|
|
qml/actiondrawer/ActionDrawer.qml
|
|
qml/actiondrawer/ActionDrawerOpenSurface.qml
|
|
qml/actiondrawer/ActionDrawerWindow.qml
|
|
|
|
qml/components/AppLaunch.qml
|
|
qml/components/BaseItem.qml
|
|
qml/components/Constants.qml
|
|
qml/components/Flickable.qml
|
|
qml/components/FlickableOpacityGradient.qml
|
|
qml/components/GridView.qml
|
|
qml/components/HapticsEffect.qml
|
|
qml/components/ListView.qml
|
|
qml/components/MarqueeLabel.qml
|
|
qml/components/PanelBackground.qml
|
|
qml/components/ScreenEdgeDragEffect.qml
|
|
qml/components/StartupFeedbackPanelFill.qml
|
|
qml/components/StartupFeedbackWindows.qml
|
|
qml/components/TextDropShadow.qml
|
|
qml/components/VelocityCalculator.qml
|
|
|
|
qml/dataproviders/AudioInfo.qml
|
|
qml/dataproviders/BatteryInfo.qml
|
|
qml/dataproviders/BluetoothInfo.qml
|
|
qml/dataproviders/NetworkInfo.qml
|
|
qml/dataproviders/SignalStrengthInfo.qml
|
|
|
|
qml/homescreen/BlurEffect.qml
|
|
qml/homescreen/DeviceLock.qml
|
|
qml/homescreen/HomeScreen.qml
|
|
qml/homescreen/WallpaperSelector.qml
|
|
|
|
qml/navigationpanel/GesturePanel.qml
|
|
qml/navigationpanel/NavigationPanel.qml
|
|
qml/navigationpanel/NavigationPanelAction.qml
|
|
qml/navigationpanel/NavigationPanelButton.qml
|
|
|
|
qml/popups/actionbuttons/ActionButton.qml
|
|
qml/popups/actionbuttons/ActionButtonsProvider.qml
|
|
qml/popups/actionbuttons/RotationButton.qml
|
|
|
|
qml/popups/notifications/NotificationPopup.qml
|
|
qml/popups/notifications/NotificationPopupManager.qml
|
|
qml/popups/notifications/NotificationPopupProvider.qml
|
|
qml/popups/notifications/PulseAudio.qml
|
|
|
|
qml/popups/kscreenosd/KScreenOSDProvider.qml
|
|
|
|
qml/popups/volumeosd/AudioApplet.qml
|
|
qml/popups/volumeosd/DeviceListItem.qml
|
|
qml/popups/volumeosd/icon.js
|
|
qml/popups/volumeosd/ListItemBase.qml
|
|
qml/popups/volumeosd/PopupCard.qml
|
|
qml/popups/volumeosd/StreamListItem.qml
|
|
qml/popups/volumeosd/VolumeChangedPopup.qml
|
|
qml/popups/volumeosd/VolumeOSD.qml
|
|
qml/popups/volumeosd/VolumeOSDProvider.qml
|
|
qml/popups/volumeosd/VolumeSlider.qml
|
|
qml/popups/PopupProviderLoader.qml
|
|
|
|
qml/statusbar/indicators/BatteryIndicator.qml
|
|
qml/statusbar/indicators/BluetoothIndicator.qml
|
|
qml/statusbar/indicators/InternetIndicator.qml
|
|
qml/statusbar/indicators/SignalStrengthIndicator.qml
|
|
qml/statusbar/indicators/VolumeIndicator.qml
|
|
qml/statusbar/ClockText.qml
|
|
qml/statusbar/StatusBar.qml
|
|
qml/statusbar/TaskWidget.qml
|
|
|
|
qml/widgets/krunner/KRunnerScreen.qml
|
|
qml/widgets/mediacontrols/BlurredBackground.qml
|
|
qml/widgets/mediacontrols/MediaControlsSource.qml
|
|
qml/widgets/mediacontrols/MediaControlsWidget.qml
|
|
qml/widgets/notifications/BaseNotificationItem.qml
|
|
qml/widgets/notifications/NotificationBodyLabel.qml
|
|
qml/widgets/notifications/NotificationCard.qml
|
|
qml/widgets/notifications/NotificationEditContextMenu.qml
|
|
qml/widgets/notifications/NotificationFooterActions.qml
|
|
qml/widgets/notifications/NotificationGroupHeader.qml
|
|
qml/widgets/notifications/NotificationItem.qml
|
|
qml/widgets/notifications/NotificationJobDetails.qml
|
|
qml/widgets/notifications/NotificationJobItem.qml
|
|
qml/widgets/notifications/NotificationPopupItem.qml
|
|
qml/widgets/notifications/NotificationReplyField.qml
|
|
qml/widgets/notifications/NotificationsModelType.qml
|
|
qml/widgets/notifications/NotificationsUtils.js
|
|
qml/widgets/notifications/NotificationsWidget.qml
|
|
qml/widgets/notifications/NotificationTimeText.qml
|
|
qml/widgets/notifications/ThumbnailStrip.qml
|
|
)
|
|
|
|
# Other supporting QML files
|
|
ecm_target_qml_sources(mobileshellplugin SOURCES
|
|
qml/actiondrawer/private/BrightnessItem.qml
|
|
qml/actiondrawer/private/Handle.qml
|
|
qml/actiondrawer/private/QuickSettings.qml
|
|
qml/actiondrawer/private/QuickSettingsDelegate.qml
|
|
qml/actiondrawer/private/QuickSettingsDrawer.qml
|
|
qml/actiondrawer/private/QuickSettingsFullDelegate.qml
|
|
qml/actiondrawer/private/QuickSettingsMinimizedDelegate.qml
|
|
qml/actiondrawer/private/QuickSettingsPanel.qml
|
|
qml/actiondrawer/private/ContentContainer.qml
|
|
qml/actiondrawer/private/LandscapeContentContainer.qml
|
|
qml/actiondrawer/private/NotificationDrawer.qml
|
|
qml/actiondrawer/private/PortraitContentContainer.qml
|
|
PATH actiondrawer/private
|
|
)
|
|
|
|
|
|
target_link_libraries(mobileshellplugin
|
|
PUBLIC
|
|
Qt::Core
|
|
PRIVATE
|
|
Qt::DBus
|
|
Qt::Qml
|
|
Qt::Gui
|
|
Qt::Quick
|
|
Qt::WaylandClientPrivate
|
|
KF6::KIOGui
|
|
Plasma::Plasma
|
|
KF6::I18n
|
|
KF6::Notifications
|
|
Plasma::PlasmaQuick
|
|
KF6::KIOGui
|
|
KF6::KIOWidgets # for PreviewJob
|
|
KF6::Service
|
|
KF6::Package
|
|
KF6::ConfigGui
|
|
KF6::ItemModels
|
|
LayerShellQt::Interface
|
|
)
|
|
|
|
ecm_finalize_qml_module(mobileshellplugin)
|