feat: function key mapping

This commit is contained in:
kodi
2026-03-11 14:21:58 +01:00
parent b93cb01879
commit 6a1a575383
6 changed files with 385 additions and 7 deletions
+71
View File
@@ -662,6 +662,72 @@ function shouldHandleShortcut(target) {
return false;
}
function actionButton(id) {
return document.getElementById(id);
}
function triggerActionButton(id) {
const button = actionButton(id);
if (!button || button.disabled) {
return false;
}
button.click();
return true;
}
function actionShortcutHandled(event) {
const altOnly = event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
const noModifiers = !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
if (noModifiers) {
if (event.key === "F3") {
return triggerActionButton("view-btn");
}
if (event.key === "F4") {
return triggerActionButton("edit-btn");
}
if (event.key === "F5") {
return triggerActionButton("copy-btn");
}
if (event.key === "F6") {
return triggerActionButton("move-btn");
}
if (event.key === "F7") {
return triggerActionButton("mkdir-btn");
}
if (event.key === "F8") {
return triggerActionButton("delete-btn");
}
}
if (altOnly) {
const key = event.key.toLowerCase();
if (key === "3") {
return triggerActionButton("view-btn");
}
if (key === "4") {
return triggerActionButton("edit-btn");
}
if (key === "5") {
return triggerActionButton("copy-btn");
}
if (key === "6") {
return triggerActionButton("move-btn");
}
if (key === "7") {
return triggerActionButton("mkdir-btn");
}
if (key === "8") {
return triggerActionButton("delete-btn");
}
if (key === "r") {
return triggerActionButton("rename-btn");
}
}
return false;
}
function wildcardPopupElements() {
return {
overlay: document.getElementById("wildcard-popup"),
@@ -958,6 +1024,11 @@ function handleKeyboardShortcuts(event) {
return;
}
if (actionShortcutHandled(event)) {
event.preventDefault();
return;
}
if (event.shiftKey && event.key === "+") {
event.preventDefault();
openWildcardPopup("select");