1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-13 09:12:08 -04:00

launcher: implement memory for selected tab

fixes #1806
This commit is contained in:
bbedward
2026-02-23 10:19:11 -05:00
parent de54ef871d
commit 9f17ced6de
5 changed files with 210 additions and 164 deletions

View File

@@ -126,6 +126,10 @@ Singleton {
property var hiddenOutputDeviceNames: [] property var hiddenOutputDeviceNames: []
property var hiddenInputDeviceNames: [] property var hiddenInputDeviceNames: []
property string launcherLastMode: "all"
property string appDrawerLastMode: "apps"
property string niriOverviewLastMode: "apps"
Component.onCompleted: { Component.onCompleted: {
if (!isGreeterMode) { if (!isGreeterMode) {
loadSettings(); loadSettings();
@@ -1100,6 +1104,21 @@ Singleton {
saveSettings(); saveSettings();
} }
function setLauncherLastMode(mode) {
launcherLastMode = mode;
saveSettings();
}
function setAppDrawerLastMode(mode) {
appDrawerLastMode = mode;
saveSettings();
}
function setNiriOverviewLastMode(mode) {
niriOverviewLastMode = mode;
saveSettings();
}
function syncWallpaperForCurrentMode() { function syncWallpaperForCurrentMode() {
if (!perModeWallpaper) if (!perModeWallpaper)
return; return;

View File

@@ -77,7 +77,11 @@ var SPEC = {
deviceMaxVolumes: { def: {} }, deviceMaxVolumes: { def: {} },
hiddenOutputDeviceNames: { def: [] }, hiddenOutputDeviceNames: { def: [] },
hiddenInputDeviceNames: { def: [] } hiddenInputDeviceNames: { def: [] },
launcherLastMode: { def: "all" },
appDrawerLastMode: { def: "apps" },
niriOverviewLastMode: { def: "apps" }
}; };
function getValidKeys() { function getValidKeys() {

View File

@@ -102,7 +102,7 @@ Item {
spotlightContent.searchField.text = query; spotlightContent.searchField.text = query;
} }
if (spotlightContent.controller) { if (spotlightContent.controller) {
var targetMode = mode || "all"; var targetMode = mode || SessionData.launcherLastMode || "all";
spotlightContent.controller.searchMode = targetMode; spotlightContent.controller.searchMode = targetMode;
spotlightContent.controller.activePluginId = ""; spotlightContent.controller.activePluginId = "";
spotlightContent.controller.activePluginName = ""; spotlightContent.controller.activePluginName = "";
@@ -230,6 +230,15 @@ Item {
} }
} }
Connections {
target: spotlightContent?.controller ?? null
function onModeChanged(mode) {
if (spotlightContent.controller.autoSwitchedToFiles)
return;
SessionData.setLauncherLastMode(mode);
}
}
HyprlandFocusGrab { HyprlandFocusGrab {
id: focusGrab id: focusGrab
windows: [launcherWindow] windows: [launcherWindow]

View File

@@ -61,7 +61,7 @@ DankPopout {
return; return;
const query = _pendingQuery; const query = _pendingQuery;
const mode = _pendingMode || "apps"; const mode = _pendingMode || SessionData.appDrawerLastMode || "apps";
_pendingMode = ""; _pendingMode = "";
_pendingQuery = ""; _pendingQuery = "";
@@ -83,6 +83,15 @@ DankPopout {
lc.actionPanel?.hide(); lc.actionPanel?.hide();
} }
Connections {
target: contentLoader.item?.launcherContent?.controller ?? null
function onModeChanged(mode) {
if (contentLoader.item.launcherContent.controller.autoSwitchedToFiles)
return;
SessionData.setAppDrawerLastMode(mode);
}
}
content: Component { content: Component {
Rectangle { Rectangle {
id: contentContainer id: contentContainer

View File

@@ -127,7 +127,7 @@ Scope {
onShouldShowSpotlightChanged: { onShouldShowSpotlightChanged: {
if (shouldShowSpotlight) { if (shouldShowSpotlight) {
if (launcherContent?.controller) { if (launcherContent?.controller) {
launcherContent.controller.searchMode = "apps"; launcherContent.controller.searchMode = SessionData.niriOverviewLastMode || "apps";
launcherContent.controller.performSearch(); launcherContent.controller.performSearch();
} }
return; return;
@@ -308,6 +308,11 @@ Scope {
function onItemExecuted() { function onItemExecuted() {
niriOverviewScope.releaseKeyboard = true; niriOverviewScope.releaseKeyboard = true;
} }
function onModeChanged(mode) {
if (launcherContent.controller.autoSwitchedToFiles)
return;
SessionData.setNiriOverviewLastMode(mode);
}
} }
} }
} }