1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-30 17:42:06 -04:00

logger: add a dedicated QML logging Singleton

- adds log.info/error/debug/warn/fatal
- adds ability to write logs to any file
- add CLI options in addition to env to set log levels
This commit is contained in:
bbedward
2026-04-29 15:40:44 -04:00
parent 3b96c6ab22
commit f76724f7cd
84 changed files with 1764 additions and 1297 deletions

View File

@@ -1,9 +1,11 @@
pragma ComponentBehavior: Bound
import QtQuick
import qs.Services
Item {
id: keyboard_controller
readonly property var log: Log.scoped("KeyboardController")
// reference on the TextInput
property Item target
@@ -14,21 +16,20 @@ Item {
function show() {
if (!isKeyboardActive && keyboard === null) {
keyboard = keyboardComponent.createObject(
keyboard_controller.rootObject)
keyboard.target = keyboard_controller.target
keyboard.dismissed.connect(hide)
isKeyboardActive = true
keyboard = keyboardComponent.createObject(keyboard_controller.rootObject);
keyboard.target = keyboard_controller.target;
keyboard.dismissed.connect(hide);
isKeyboardActive = true;
} else
console.log("The keyboard is already shown")
log.debug("The keyboard is already shown");
}
function hide() {
if (isKeyboardActive && keyboard !== null) {
keyboard.destroy()
isKeyboardActive = false
keyboard.destroy();
isKeyboardActive = false;
} else
console.log("The keyboard is already hidden")
log.debug("The keyboard is already hidden");
}
// private

View File

@@ -14,6 +14,7 @@ import qs.Widgets
Item {
id: root
readonly property var log: Log.scoped("LockScreenContent")
function encodeFileUrl(path) {
if (!path)
@@ -95,9 +96,9 @@ Item {
if (SessionService.loginctlAvailable && DMSService.apiVersion >= 2) {
DMSService.sendRequest("loginctl.lockerReady", null, resp => {
if (resp?.error)
console.warn("lockerReady failed:", resp.error);
log.warn("lockerReady failed:", resp.error);
else
console.log("lockerReady sent (afterAnimating/afterRendering)");
log.debug("lockerReady sent (afterAnimating/afterRendering)");
});
}
}
@@ -803,7 +804,7 @@ Item {
}
if (pam.passwd.active) {
console.log("PAM is active, ignoring input");
log.debug("PAM is active, ignoring input");
event.accepted = true;
return;
}
@@ -1622,7 +1623,7 @@ Item {
buttonSize: 40
onClicked: {
if (demoMode) {
console.log("Demo: Power Menu");
log.debug("Demo: Power Menu");
} else {
powerMenu.show();
}

View File

@@ -3,9 +3,11 @@ pragma ComponentBehavior: Bound
import QtQuick
import Quickshell
import Quickshell.Wayland
import qs.Services
PanelWindow {
id: root
readonly property var log: Log.scoped("LockScreenDemo")
property bool demoActive: false
@@ -25,12 +27,12 @@ PanelWindow {
color: "transparent"
function showDemo(): void {
console.log("Showing lock screen demo");
log.debug("Showing lock screen demo");
demoActive = true;
}
function hideDemo(): void {
console.log("Hiding lock screen demo");
log.debug("Hiding lock screen demo");
demoActive = false;
}

View File

@@ -7,6 +7,7 @@ import qs.Services
Item {
id: root
readonly property var log: Log.scoped("VideoScreensaver")
required property string screenName
property bool active: false
@@ -53,7 +54,7 @@ Item {
onExited: exitCode => {
if (exitCode !== 0 || !videoPicker.result) {
console.warn("VideoScreensaver: no video found in folder");
log.warn("no video found in folder");
ToastService.showError(I18n.tr("Video Screensaver"), I18n.tr("No video found in folder"));
root.dismiss();
}
@@ -98,14 +99,14 @@ Item {
`, background, "VideoScreensaver.VideoPlayer");
videoPlayer.errorOccurred.connect((error, errorString) => {
console.warn("VideoScreensaver: playback error:", errorString);
log.warn("playback error:", errorString);
ToastService.showError(I18n.tr("Video Screensaver"), I18n.tr("Playback error: ") + errorString);
root.dismiss();
});
return true;
} catch (e) {
console.warn("VideoScreensaver: Failed to create video player:", e);
log.warn("Failed to create video player:", e);
return false;
}
}