fix clipboard operation for single nodes

This commit is contained in:
zadam 2019-06-16 18:07:22 +02:00
parent 288b3077b2
commit ee89111bfb
3 changed files with 18 additions and 20 deletions

View File

@ -303,6 +303,15 @@ function getSelectedNodes(stopOnParents = false) {
return getTree().getSelectedNodes(stopOnParents); return getTree().getSelectedNodes(stopOnParents);
} }
function getSelectedOrActiveNodes(node) {
let notes = getSelectedNodes(true);
if (notes.length === 0) {
notes.push(node);
}
return notes;
}
function clearSelectedNodes() { function clearSelectedNodes() {
for (const selectedNode of getSelectedNodes()) { for (const selectedNode of getSelectedNodes()) {
selectedNode.setSelected(false); selectedNode.setSelected(false);
@ -805,6 +814,7 @@ export default {
createNote, createNote,
createNoteInto, createNoteInto,
getSelectedNodes, getSelectedNodes,
getSelectedOrActiveNodes,
clearSelectedNodes, clearSelectedNodes,
sortAlphabetically, sortAlphabetically,
showTree, showTree,

View File

@ -111,10 +111,10 @@ class TreeContextMenu {
protectedSessionService.protectSubtree(this.node.data.noteId, false); protectedSessionService.protectSubtree(this.node.data.noteId, false);
} }
else if (cmd === "copy") { else if (cmd === "copy") {
clipboard.copy(treeService.getSelectedNodes()); clipboard.copy(treeService.getSelectedOrActiveNodes(this.node));
} }
else if (cmd === "cut") { else if (cmd === "cut") {
clipboard.cut(treeService.getSelectedNodes()); clipboard.cut(treeService.getSelectedOrActiveNodes(this.node));
} }
else if (cmd === "pasteAfter") { else if (cmd === "pasteAfter") {
clipboard.pasteAfter(this.node); clipboard.pasteAfter(this.node);
@ -123,13 +123,7 @@ class TreeContextMenu {
clipboard.pasteInto(this.node); clipboard.pasteInto(this.node);
} }
else if (cmd === "delete") { else if (cmd === "delete") {
let notesToDelete = treeService.getSelectedNodes(true); treeChangesService.deleteNodes(treeService.getSelectedOrActiveNodes(this.node));
if (notesToDelete.length === 0) {
notesToDelete.push(this.node);
}
treeChangesService.deleteNodes(notesToDelete);
} }
else if (cmd === "export") { else if (cmd === "export") {
exportDialog.showDialog("subtree"); exportDialog.showDialog("subtree");

View File

@ -7,13 +7,7 @@ import clipboard from "./clipboard.js";
const keyBindings = { const keyBindings = {
"del": node => { "del": node => {
let notesToDelete = treeService.getSelectedNodes(true); treeChangesService.deleteNodes(treeService.getSelectedOrActiveNodes(node));
if (notesToDelete.length === 0) {
notesToDelete.push(node);
}
treeChangesService.deleteNodes(notesToDelete);
}, },
"ctrl+up": node => { "ctrl+up": node => {
const beforeNode = node.getPrevSibling(); const beforeNode = node.getPrevSibling();
@ -110,13 +104,13 @@ const keyBindings = {
return false; return false;
}, },
"ctrl+c": () => { "ctrl+c": node => {
clipboard.copy(treeService.getSelectedNodes()); clipboard.copy(treeService.getSelectedOrActiveNodes(node));
return false; return false;
}, },
"ctrl+x": () => { "ctrl+x": node => {
clipboard.cut(treeService.getSelectedNodes()); clipboard.cut(treeService.getSelectedOrActiveNodes(node));
return false; return false;
}, },