Files
DeltaruneQuickshell/Shell/ShellStateManager.qml
2026-01-23 23:45:38 +02:00

53 lines
1.2 KiB
QML

pragma Singleton
import QtQuick
QtObject {
id: manager
property bool shellOpen: false
property var windowRequests: ({})
property var globals: ({})
signal shellOpened
signal shellClosed
signal windowRequested(string name, var payload)
function openShell() {
if (!shellOpen) {
console.log("ShellStateManager: openShell");
shellOpen = true;
shellOpened();
}
}
function closeShell() {
if (shellOpen) {
console.log("ShellStateManager: closeShell");
shellOpen = false;
shellClosed();
}
}
function toggleShell() {
console.log("ShellStateManager: toggleShell (isOpen " + shellOpen + ")");
shellOpen ? closeShell() : openShell();
}
function requestWindow(name, payload) {
console.log("ShellStateManager: requestWindow", name, payload);
windowRequests[name] = {
payload: payload,
timestamp: Date.now()
};
windowRequested(name, payload);
}
function setGlobal(key, value) {
globals[key] = value;
}
function global(key, defaultValue) {
return globals.hasOwnProperty(key) ? globals[key] : defaultValue;
}
}