no file delete on desktop

This commit is contained in:
vcoppe committed 2026-10-17 18:57:40 +02:00
1 parent 67a47cf065
commit 9f49119eec
2 files changed
+20 -1

No files matched your search

+6 -1
View File
@@ -354,12 +354,17 @@
<Shortcut key="V" ctrl={true} /> <Shortcut key="V" ctrl={true} />
</Menubar.Item> </Menubar.Item>
{/if} {/if}
{#if !desktop}
<Menubar.Separator /> <Menubar.Separator />
<Menubar.Item onclick={() => engine.delete()} disabled={selectionCount == 0}> <Menubar.Item
onclick={() => engine.delete()}
disabled={selectionCount == 0}
>
<Trash2 size="16" /> <Trash2 size="16" />
{i18n._('menu.delete')} {i18n._('menu.delete')}
<Shortcut key="⌫" ctrl={true} /> <Shortcut key="⌫" ctrl={true} />
</Menubar.Item> </Menubar.Item>
{/if}
</Menubar.Content> </Menubar.Content>
</Menubar.Menu> </Menubar.Menu>
<Menubar.Menu> <Menubar.Menu>
@@ -17,6 +17,7 @@
Maximize, Maximize,
Scissors, Scissors,
FileStack, FileStack,
FileX,
} from '@lucide/svelte'; } from '@lucide/svelte';
import { getContext } from 'svelte'; import { getContext } from 'svelte';
import { i18n } from '$lib/i18n/i18n.svelte'; import { i18n } from '$lib/i18n/i18n.svelte';
@@ -34,10 +35,12 @@
isInClipboard, isInClipboard,
isSelected, isSelected,
selectedElementIds, selectedElementIds,
selectedFileIds,
selectionSize, selectionSize,
type FileTreeNode, type FileTreeNode,
} from '$lib/engine/selection-helpers'; } from '$lib/engine/selection-helpers';
import { boundsManager } from '$lib/state/bounds'; import { boundsManager } from '$lib/state/bounds';
import { closeFiles } from '$lib/actions/file-actions';
import { waypointPopup } from '$lib/components/map/gpx-layer/gpx-layer-popup'; import { waypointPopup } from '$lib/components/map/gpx-layer/gpx-layer-popup';
let { let {
@@ -92,6 +95,9 @@
selectedElementIds($selection)[0]?.ids[0] === elementId(node) selectedElementIds($selection)[0]?.ids[0] === elementId(node)
); );
// the desktop app: the files are linked to the file system, they are closed rather than deleted
let desktop = $derived($workspace !== undefined);
// the file is not the one on the disk (the desktop app) // the file is not the one on the disk (the desktop app)
let unsaved = $derived(node.type === 'file' && $workspace?.files[node.fileId]?.dirty === true); let unsaved = $derived(node.type === 'file' && $workspace?.files[node.fileId]?.dirty === true);
let hidden = $derived(isHidden(fileState, elementId(node))); let hidden = $derived(isHidden(fileState, elementId(node)));
@@ -296,10 +302,18 @@
</ContextMenu.Item> </ContextMenu.Item>
{/if} {/if}
<ContextMenu.Separator /> <ContextMenu.Separator />
{#if desktop && node.type === 'file'}
<ContextMenu.Item onclick={() => closeFiles(selectedFileIds($selection))}>
<FileX size="16" />
{i18n._('menu.close')}
<Shortcut key="W" ctrl={true} />
</ContextMenu.Item>
{:else}
<ContextMenu.Item onclick={() => engine.delete()}> <ContextMenu.Item onclick={() => engine.delete()}>
<Trash2 size="16" /> <Trash2 size="16" />
{i18n._('menu.delete')} {i18n._('menu.delete')}
<Shortcut key="⌫" ctrl={true} /> <Shortcut key="⌫" ctrl={true} />
</ContextMenu.Item> </ContextMenu.Item>
{/if}
</ContextMenu.Content> </ContextMenu.Content>
</ContextMenu.Root> </ContextMenu.Root>