2020
2121import QtQuick
2222import QtMultimedia
23+ import org.kde.plasma.core as PlasmaCore
2324import org.kde.plasma.plasma5support as P5Support
2425import org.kde.plasma.plasmoid
2526import Qt5Compat.GraphicalEffects
2627import org.kde.plasma.extras as PlasmaExtras
2728import org.kde.kirigami as Kirigami
2829import "code/utils.js" as Utils
30+ import "code/enum.js" as Enum
2931
3032WallpaperItem {
3133 anchors .fill : parent
@@ -40,6 +42,13 @@ WallpaperItem {
4042 if (lockScreenMode) {
4143 return true
4244 }
45+
46+ if (playbackOverride === Enum .PlaybackOverride .Play ) {
47+ return true
48+ } else if (playbackOverride === Enum .PlaybackOverride .Pause ) {
49+ return false
50+ }
51+
4352 let play = false
4453 switch (main .configuration .PauseMode ) {
4554 case 0 :
@@ -56,7 +65,9 @@ WallpaperItem {
5665 }
5766 return play
5867 }
59- property bool playing: (shouldPlay && ! batteryPausesVideo && ! screenLocked && ! screenIsOff && ! effectPauseVideo) || effectPlayVideo
68+ property bool playing: {
69+ return (shouldPlay && ! batteryPausesVideo && ! screenLocked && ! screenIsOff && ! effectPauseVideo) || effectPlayVideo
70+ }
6071 property bool shouldBlur: {
6172 let blur = false
6273 switch (main .configuration .BlurMode ) {
@@ -116,6 +127,13 @@ WallpaperItem {
116127 property int lastVideoPosition: main .configuration .LastVideoPosition
117128 property bool restoreLastPosition: true
118129 property bool muteAudio: {
130+
131+ if (muteOverride === Enum .MuteOverride .Mute ) {
132+ return true
133+ } else if (muteOverride === Enum .MuteOverride .Unmute ) {
134+ return false
135+ }
136+
119137 let mute = false
120138 switch (main .configuration .MuteMode ) {
121139 case 0 :
@@ -479,4 +497,48 @@ WallpaperItem {
479497 main .lockScreenMode = " source" in window && window .source .toString ().endsWith (" LockScreen.qml" )
480498 }
481499 }
500+
501+ property int playbackOverride: Enum .PlaybackOverride .Default
502+ property int muteOverride: Enum .MuteOverride .Default
503+
504+ contextualActions: [
505+ PlasmaCore .Action {
506+ text: i18n (" Next Video" )
507+ icon .name : " media-skip-forward"
508+ onTriggered: {
509+ nextVideo ()
510+ tick = true
511+ player2 .pause ()
512+ videoOutput .opacity = 1
513+ player1 .source = currentSource
514+ player1 .play ()
515+ }
516+ },
517+ PlasmaCore .Action {
518+ text: {
519+ if (main .playbackOverride === Enum .PlaybackOverride .Play ) {
520+ return i18n (" Pause" )
521+ } else if (main .playbackOverride === Enum .PlaybackOverride .Pause ) {
522+ return i18n (" Default" )
523+ } else {
524+ return i18n (" Play" )
525+ }
526+ }
527+ icon .name : main .playing ? " media-playback-start" : " media-playback-pause"
528+ onTriggered: main .playbackOverride = (main .playbackOverride + 1 ) % 3
529+ },
530+ PlasmaCore .Action {
531+ text: {
532+ if (main .muteOverride === Enum .MuteOverride .Mute ) {
533+ return i18n (" Unmute" )
534+ } else if (main .muteOverride === Enum .MuteOverride .Unmute ) {
535+ return i18n (" Default" )
536+ } else {
537+ return i18n (" Mute" )
538+ }
539+ }
540+ icon .name : main .muteAudio ? " audio-volume-muted" : " audio-volume-high"
541+ onTriggered: main .muteOverride = (main .muteOverride + 1 ) % 3
542+ }
543+ ]
482544}
0 commit comments