create new file

This commit is contained in:
vcoppe
2024-04-27 12:18:40 +02:00
parent 0eb9c7b57e
commit ccc26f79e7
7 changed files with 67 additions and 20 deletions

View File

@@ -14,7 +14,8 @@
removeSelectedFiles,
triggerFileInput,
selectFiles,
settings
settings,
createFile
} from '$lib/stores';
import { mode, resetMode, setMode } from 'mode-watcher';
@@ -51,7 +52,7 @@
<Menubar.Menu>
<Menubar.Trigger>{$_('menu.file')}</Menubar.Trigger>
<Menubar.Content class="border-none">
<Menubar.Item>
<Menubar.Item on:click={createFile}>
<Plus size="16" class="mr-1" />
{$_('menu.new')}
<Menubar.Shortcut>⌘N</Menubar.Shortcut>
@@ -183,7 +184,10 @@
<svelte:window
on:keydown={(e) => {
e.stopImmediatePropagation();
if (e.key === 'o' && (e.metaKey || e.ctrlKey)) {
if (e.key === 'n' && (e.metaKey || e.ctrlKey)) {
createFile();
e.preventDefault();
} else if (e.key === 'o' && (e.metaKey || e.ctrlKey)) {
triggerFileInput();
e.preventDefault();
} else if (e.key === 'd' && (e.metaKey || e.ctrlKey)) {

View File

@@ -339,6 +339,13 @@ export class RoutingControls {
this.createMarker(newAnchor);
segment._data.anchors.push(newAnchor);
if (!lastAnchor) {
applyToFileElement(this.file, segment, (segment) => {
segment.replace(0, 0, [newPoint]);
}, true);
return;
}
let success = await this.routeBetweenAnchors([lastAnchor, newAnchor], [lastAnchor.point.getCoordinates(), newAnchor.point.getCoordinates()]);
if (!success) { // Route failed, remove the anchor

View File

@@ -25,6 +25,14 @@ export function computeAnchorPoints(segment: TrackSegment) {
}
export function ramerDouglasPeucker(points: TrackPoint[], epsilon: number = 50, start: number = 0, end: number = points.length - 1): SimplifiedTrackPoint[] {
if (points.length == 0) {
return [];
} else if (points.length == 1) {
return [{
point: points[0]
}];
}
let simplified = [{
point: points[start]
}];