mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-04-12 08:42:13 -04:00
feat(lockscreen): enable use of videos as screensaver in the lock screen (#1819)
* feat(lockscreen): enable use of videos as screensaver in the lock screen * reducing debug logs * feature becomes available only when QtMultimedia is available
This commit is contained in:
committed by
GitHub
parent
5d09acca4c
commit
bd6ad53875
@@ -2,8 +2,9 @@ pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import Quickshell.Wayland
|
||||
import qs.Common
|
||||
|
||||
Rectangle {
|
||||
FocusScope {
|
||||
id: root
|
||||
|
||||
required property WlSessionLock lock
|
||||
@@ -14,7 +15,17 @@ Rectangle {
|
||||
signal passwordChanged(string newPassword)
|
||||
signal unlockRequested
|
||||
|
||||
color: "transparent"
|
||||
Keys.onPressed: event => {
|
||||
if (videoScreensaver.active && videoScreensaver.inputEnabled) {
|
||||
videoScreensaver.dismiss();
|
||||
event.accepted = true;
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
LockScreenContent {
|
||||
id: lockContent
|
||||
@@ -23,17 +34,38 @@ Rectangle {
|
||||
demoMode: false
|
||||
passwordBuffer: root.sharedPasswordBuffer
|
||||
screenName: root.screenName
|
||||
enabled: !videoScreensaver.active
|
||||
focus: !videoScreensaver.active
|
||||
opacity: videoScreensaver.active ? 0 : 1
|
||||
onUnlockRequested: root.unlockRequested()
|
||||
onPasswordBufferChanged: {
|
||||
if (root.sharedPasswordBuffer !== passwordBuffer) {
|
||||
root.passwordChanged(passwordBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
Behavior on opacity {
|
||||
NumberAnimation {
|
||||
duration: 200
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VideoScreensaver {
|
||||
id: videoScreensaver
|
||||
anchors.fill: parent
|
||||
screenName: root.screenName
|
||||
}
|
||||
|
||||
Component.onCompleted: forceActiveFocus()
|
||||
|
||||
onIsLockedChanged: {
|
||||
if (isLocked) {
|
||||
forceActiveFocus();
|
||||
lockContent.resetLockState();
|
||||
if (SettingsData.lockScreenVideoEnabled) {
|
||||
videoScreensaver.start();
|
||||
}
|
||||
return;
|
||||
}
|
||||
lockContent.unlocking = false;
|
||||
|
||||
Reference in New Issue
Block a user