core: shell state manager

This commit is contained in:
2026-01-23 23:45:38 +02:00
parent edb941fe90
commit 31ea8d7616
2 changed files with 58 additions and 4 deletions

View File

@@ -0,0 +1,52 @@
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;
}
}