From 685cdeddc34a66ad52ff7a8c017e48dc5d40fba6 Mon Sep 17 00:00:00 2001 From: joshuaboud Date: Wed, 22 Jun 2022 13:49:44 -0300 Subject: [PATCH] clean up keyHandler function --- navigator/src/components/DirectoryView.vue | 78 ++++++++++++++++------ 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/navigator/src/components/DirectoryView.vue b/navigator/src/components/DirectoryView.vue index a581934..43811eb 100644 --- a/navigator/src/components/DirectoryView.vue +++ b/navigator/src/components/DirectoryView.vue @@ -359,7 +359,29 @@ export default { const keyHandler = (event) => { const unCutEntries = () => gatherEntries([], false).map(entry => entry.cut = false); const keypress = event.key.toLowerCase(); - if (event.ctrlKey) { + const handleExact = (keypress) => { + switch (keypress) { + case 'delete': + emit('browserAction', 'delete', getSelected()); + break; + case 'escape': + if (getSelected().length === 0) { + if (clipboard.content.length) { + unCutEntries(); + clipboard.content = []; + notifications.value.constructNotification('Clipboard', 'Cleared clipboard.', 'info', 2000); + } + } else { + deselectAll(); + } + break; + default: + return; + } + event.preventDefault(); + event.stopPropagation(); + } + const handleCtrl = (keypress) => { switch (keypress) { case 'a': selectAll(); @@ -413,27 +435,43 @@ export default { default: return; } + event.preventDefault(); + event.stopPropagation(); } - switch (keypress) { - case 'delete': - emit('browserAction', 'delete', getSelected()); - break; - case 'escape': - if (getSelected().length === 0) { - if (clipboard.content.length) { - unCutEntries(); - clipboard.content = []; - notifications.value.constructNotification('Clipboard', 'Cleared clipboard.', 'info', 2000); - } - } else { - deselectAll(); - } - break; - default: - return; + const handleShift = (keypress) => { + switch(keypress) { + default: + return; + } + event.preventDefault(); + event.stopPropagation(); } - event.preventDefault(); - event.stopPropagation(); + const handleCtrlShift = (keypress) => { + switch(keypress) { + default: + return; + } + event.preventDefault(); + event.stopPropagation(); + } + const handleAny = (keypress) => { + switch(keypress) { + default: + return; + } + event.preventDefault(); + event.stopPropagation(); + } + if (event.ctrlKey && event.shiftKey) { + handleCtrlShift(keypress); + } else if (event.ctrlKey && !event.shiftKey) { + handleCtrl(keypress); + } else if (!event.ctrlKey && event.shiftKey) { + handleShift(keypress); + } else { + handleExact(keypress); + } + handleAny(keypress); } const scrollHandler = (event) => {