From ee89111bfb3bea8efd43a230154ef34110c888ac Mon Sep 17 00:00:00 2001 From: zadam Date: Sun, 16 Jun 2019 18:07:22 +0200 Subject: [PATCH] fix clipboard operation for single nodes --- src/public/javascripts/services/tree.js | 10 ++++++++++ .../javascripts/services/tree_context_menu.js | 12 +++--------- .../javascripts/services/tree_keybindings.js | 16 +++++----------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index 4b1c383fc..4a3a236e7 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -303,6 +303,15 @@ function getSelectedNodes(stopOnParents = false) { return getTree().getSelectedNodes(stopOnParents); } +function getSelectedOrActiveNodes(node) { + let notes = getSelectedNodes(true); + + if (notes.length === 0) { + notes.push(node); + } + return notes; +} + function clearSelectedNodes() { for (const selectedNode of getSelectedNodes()) { selectedNode.setSelected(false); @@ -805,6 +814,7 @@ export default { createNote, createNoteInto, getSelectedNodes, + getSelectedOrActiveNodes, clearSelectedNodes, sortAlphabetically, showTree, diff --git a/src/public/javascripts/services/tree_context_menu.js b/src/public/javascripts/services/tree_context_menu.js index d6a4cb373..e96795cee 100644 --- a/src/public/javascripts/services/tree_context_menu.js +++ b/src/public/javascripts/services/tree_context_menu.js @@ -111,10 +111,10 @@ class TreeContextMenu { protectedSessionService.protectSubtree(this.node.data.noteId, false); } else if (cmd === "copy") { - clipboard.copy(treeService.getSelectedNodes()); + clipboard.copy(treeService.getSelectedOrActiveNodes(this.node)); } else if (cmd === "cut") { - clipboard.cut(treeService.getSelectedNodes()); + clipboard.cut(treeService.getSelectedOrActiveNodes(this.node)); } else if (cmd === "pasteAfter") { clipboard.pasteAfter(this.node); @@ -123,13 +123,7 @@ class TreeContextMenu { clipboard.pasteInto(this.node); } else if (cmd === "delete") { - let notesToDelete = treeService.getSelectedNodes(true); - - if (notesToDelete.length === 0) { - notesToDelete.push(this.node); - } - - treeChangesService.deleteNodes(notesToDelete); + treeChangesService.deleteNodes(treeService.getSelectedOrActiveNodes(this.node)); } else if (cmd === "export") { exportDialog.showDialog("subtree"); diff --git a/src/public/javascripts/services/tree_keybindings.js b/src/public/javascripts/services/tree_keybindings.js index 755d9153d..ab42274e4 100644 --- a/src/public/javascripts/services/tree_keybindings.js +++ b/src/public/javascripts/services/tree_keybindings.js @@ -7,13 +7,7 @@ import clipboard from "./clipboard.js"; const keyBindings = { "del": node => { - let notesToDelete = treeService.getSelectedNodes(true); - - if (notesToDelete.length === 0) { - notesToDelete.push(node); - } - - treeChangesService.deleteNodes(notesToDelete); + treeChangesService.deleteNodes(treeService.getSelectedOrActiveNodes(node)); }, "ctrl+up": node => { const beforeNode = node.getPrevSibling(); @@ -110,13 +104,13 @@ const keyBindings = { return false; }, - "ctrl+c": () => { - clipboard.copy(treeService.getSelectedNodes()); + "ctrl+c": node => { + clipboard.copy(treeService.getSelectedOrActiveNodes(node)); return false; }, - "ctrl+x": () => { - clipboard.cut(treeService.getSelectedNodes()); + "ctrl+x": node => { + clipboard.cut(treeService.getSelectedOrActiveNodes(node)); return false; },