widgets/mediacontrols: Add ability to activate source app on tap

This commit is contained in:
Devin Lin 2022-10-12 18:10:08 -04:00
parent 5a9099bd84
commit f3a4913147
4 changed files with 102 additions and 85 deletions

View file

@ -11,7 +11,9 @@ import org.kde.plasma.core 2.0 as PlasmaCore
Item { Item {
id: root id: root
property string imageSource property string imageSource
property bool darken: false
// clip corners so that the image has rounded corners // clip corners so that the image has rounded corners
layer.enabled: true layer.enabled: true
@ -39,7 +41,7 @@ Item {
// ensure text is readable // ensure text is readable
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: Qt.rgba(0, 0, 0, 0.6) color: Qt.rgba(0, 0, 0, root.darken ? 0.8 : 0.6)
} }
// apply lighten, saturate and blur effect // apply lighten, saturate and blur effect

View file

@ -94,6 +94,7 @@ PlasmaCore.DataSource {
model.push({ model.push({
'application': playerData["Identity"], 'application': playerData["Identity"],
'source': source, 'source': source,
'desktopEntry': playerData["DesktopEntry"]
}); });
} }

View file

@ -11,6 +11,7 @@ import QtQuick.Controls 2.15 as QQC2
import org.kde.kirigami 2.12 as Kirigami import org.kde.kirigami 2.12 as Kirigami
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents3 import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.extras 2.0 as PlasmaExtras import org.kde.plasma.extras 2.0 as PlasmaExtras
@ -67,8 +68,19 @@ Item {
asynchronous: true asynchronous: true
sourceComponent: Components.BaseItem { sourceComponent: MouseArea {
id: mouseArea
implicitHeight: playerItem.implicitHeight
implicitWidth: playerItem.implicitWidth
onClicked: {
MobileShell.ShellUtil.launchApp(modelData.desktopEntry + ".desktop");
MobileShell.TopPanelControls.closeActionDrawer();
}
Components.BaseItem {
id: playerItem id: playerItem
anchors.fill: parent
property string source: modelData.source property string source: modelData.source
@ -77,6 +89,7 @@ Item {
implicitWidth: root.width implicitWidth: root.width
background: BlurredBackground { background: BlurredBackground {
darken: mouseArea.pressed
imageSource: mpris2Source.albumArt(playerItem.source) imageSource: mpris2Source.albumArt(playerItem.source)
} }
@ -171,4 +184,5 @@ Item {
} }
} }
} }
}
} }

View file

@ -65,7 +65,7 @@ ContainmentLayoutManager.ItemContainer {
} }
HomeScreenLib.DesktopModel.setMinimizedDelegate(index, delegate); HomeScreenLib.DesktopModel.setMinimizedDelegate(index, delegate);
HomeScreenLib.DesktopModel.runApplication(modelData.applicationStorageId); MobileShell.ShellUtil.launchApp(modelData.applicationStorageId);
} }
readonly property bool applicationRunning: model.applicationRunning readonly property bool applicationRunning: model.applicationRunning