diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte index 5c8766b5..b2c70028 100644 --- a/website/src/lib/components/Menu.svelte +++ b/website/src/lib/components/Menu.svelte @@ -10,7 +10,6 @@ Undo2, Redo2, Trash2, - Upload, Heart, Map, Layers2, @@ -38,7 +37,10 @@ ClipboardCopy, Scissors, ClipboardPaste, - PaintBucket + PaintBucket, + FolderOpen, + FileStack, + FileX } from 'lucide-svelte'; import { @@ -149,8 +151,8 @@ - - {$_('menu.load_desktop')} + + {$_('menu.open')} @@ -160,6 +162,17 @@ + + + {$_('menu.close')} + + + + + {$_('menu.close_all')} + + + ($exportState = ExportState.SELECTION)} disabled={$selection.size == 0} @@ -236,7 +249,7 @@ - + {$_('menu.select_all')} @@ -270,15 +283,6 @@ {$_('menu.delete')} - - - {$_('menu.delete_all')} - - @@ -459,7 +463,6 @@ { - console.log(e); let targetInput = e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || diff --git a/website/src/lib/components/file-list/FileListNodeLabel.svelte b/website/src/lib/components/file-list/FileListNodeLabel.svelte index fc02506d..4a92380b 100644 --- a/website/src/lib/components/file-list/FileListNodeLabel.svelte +++ b/website/src/lib/components/file-list/FileListNodeLabel.svelte @@ -15,7 +15,9 @@ EyeOff, ClipboardCopy, ClipboardPaste, - Scissors + Scissors, + FileStack, + FileX } from 'lucide-svelte'; import { ListFileItem, @@ -30,6 +32,7 @@ copySelection, cutSelection, pasteSelection, + selectAll, selectItem, selection } from './Selection'; @@ -261,6 +264,14 @@ {/if} {/if} + {#if item.level !== ListLevel.WAYPOINTS} + + + {$_('menu.select_all')} + + + + {/if} {#if $verticalFileView} @@ -292,8 +303,13 @@ {/if} - - {$_('menu.delete')} + {#if item instanceof ListFileItem} + + {$_('menu.close')} + {:else} + + {$_('menu.delete')} + {/if} diff --git a/website/src/lib/db.ts b/website/src/lib/db.ts index 87de34c8..18b5832e 100644 --- a/website/src/lib/db.ts +++ b/website/src/lib/db.ts @@ -908,6 +908,16 @@ export const dbUtils = { }); }); }, + deleteSelectedFiles: () => { + if (get(selection).size === 0) { + return; + } + applyGlobal((draft) => { + applyToOrderedSelectedItemsFromFile((fileId, level, items) => { + draft.delete(fileId); + }); + }); + }, deleteAllFiles: () => { applyGlobal((draft) => { draft.clear(); diff --git a/website/src/locales/en.json b/website/src/locales/en.json index 4019c832..d0c400f6 100644 --- a/website/src/locales/en.json +++ b/website/src/locales/en.json @@ -9,8 +9,10 @@ "new_file": "New file", "new_track": "New track", "new_segment": "New segment", - "load_desktop": "Load...", + "open": "Open...", "duplicate": "Duplicate", + "close": "Close", + "close_all": "Close all", "copy": "Copy", "paste": "Paste", "cut": "Cut", @@ -24,7 +26,6 @@ "undo": "Undo", "redo": "Redo", "delete": "Delete", - "delete_all": "Delete all", "select_all": "Select all", "view": "View", "elevation_profile": "Elevation profile",