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",