1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-04 04:42:05 -04:00
Files
DankMaterialShell/quickshell/Modules/AppDrawer/AppDrawerPopout.qml

92 lines
2.3 KiB
QML

import QtQuick
import qs.Common
import qs.Modals.DankLauncherV2
import qs.Widgets
DankPopout {
id: appDrawerPopout
layerNamespace: "dms:app-launcher"
function show() {
open();
}
popupWidth: 560
popupHeight: 640
triggerWidth: 40
positioning: ""
contentHandlesKeys: contentLoader.item?.launcherContent?.editMode ?? false
onBackgroundClicked: {
if (contentLoader.item?.launcherContent?.editMode) {
contentLoader.item.launcherContent.closeEditMode();
return;
}
close();
}
onOpened: {
var lc = contentLoader.item?.launcherContent;
if (!lc)
return;
if (lc.searchField) {
lc.searchField.text = "";
lc.searchField.forceActiveFocus();
}
if (lc.controller) {
lc.controller.searchMode = "apps";
lc.controller.pluginFilter = "";
lc.controller.searchQuery = "";
lc.controller.performSearch();
}
lc.resetScroll?.();
lc.actionPanel?.hide();
}
content: Component {
Rectangle {
id: contentContainer
LayoutMirroring.enabled: I18n.isRtl
LayoutMirroring.childrenInherit: true
property alias launcherContent: launcherContent
color: "transparent"
QtObject {
id: modalAdapter
property bool spotlightOpen: appDrawerPopout.shouldBeVisible
property bool isClosing: false
function hide() {
appDrawerPopout.close();
}
}
FocusScope {
anchors.fill: parent
focus: true
LauncherContent {
id: launcherContent
anchors.fill: parent
parentModal: modalAdapter
viewModeContext: "appDrawer"
}
Keys.onEscapePressed: event => {
if (launcherContent.editMode) {
launcherContent.closeEditMode();
event.accepted = true;
return;
}
appDrawerPopout.close();
event.accepted = true;
}
}
}
}
}