feat: input mgr
This commit is contained in:
@@ -1,20 +1,26 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell.Hyprland
|
||||
|
||||
QtObject {
|
||||
id: manager
|
||||
|
||||
property bool shellOpen: false
|
||||
property bool quickSettingsOpen: false
|
||||
property var windowRequests: ({})
|
||||
property var quickSettingsPayload: ({})
|
||||
property var globals: ({})
|
||||
|
||||
signal shellOpened
|
||||
signal shellClosed
|
||||
signal quickSettingsOpened
|
||||
signal quickSettingsClosed
|
||||
signal windowRequested(string name, var payload)
|
||||
|
||||
function openShell() {
|
||||
if (!shellOpen) {
|
||||
console.log("ShellStateManager: openShell");
|
||||
Hyprland.dispatch("submap deltarune");
|
||||
shellOpen = true;
|
||||
shellOpened();
|
||||
}
|
||||
@@ -23,13 +29,16 @@ QtObject {
|
||||
function closeShell() {
|
||||
if (shellOpen) {
|
||||
console.log("ShellStateManager: closeShell");
|
||||
Hyprland.dispatch("submap reset");
|
||||
if (quickSettingsOpen) {
|
||||
closeQuickSettings();
|
||||
}
|
||||
shellOpen = false;
|
||||
shellClosed();
|
||||
}
|
||||
}
|
||||
|
||||
function toggleShell() {
|
||||
console.log("ShellStateManager: toggleShell (isOpen " + shellOpen + ")");
|
||||
shellOpen ? closeShell() : openShell();
|
||||
}
|
||||
|
||||
@@ -42,6 +51,29 @@ QtObject {
|
||||
windowRequested(name, payload);
|
||||
}
|
||||
|
||||
function openQuickSettings(payload) {
|
||||
var normalizedPayload = payload || ({});
|
||||
quickSettingsPayload = normalizedPayload;
|
||||
console.log("ShellStateManager: openQuickSettings", normalizedPayload);
|
||||
if (!quickSettingsOpen) {
|
||||
quickSettingsOpen = true;
|
||||
quickSettingsOpened();
|
||||
}
|
||||
requestWindow("quickSettings", normalizedPayload);
|
||||
}
|
||||
|
||||
function closeQuickSettings() {
|
||||
if (quickSettingsOpen) {
|
||||
console.log("ShellStateManager: closeQuickSettings");
|
||||
quickSettingsOpen = false;
|
||||
quickSettingsClosed();
|
||||
}
|
||||
}
|
||||
|
||||
function toggleQuickSettings(payload) {
|
||||
quickSettingsOpen ? closeQuickSettings() : openQuickSettings(payload);
|
||||
}
|
||||
|
||||
function setGlobal(key, value) {
|
||||
globals[key] = value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user