extract tool

This commit is contained in:
vcoppe
2024-06-15 18:44:17 +02:00
parent 6ed2d3e406
commit ea53a82451
10 changed files with 218 additions and 64 deletions

View File

@@ -2,7 +2,7 @@
import { Button } from '$lib/components/ui/button';
import * as ContextMenu from '$lib/components/ui/context-menu';
import Shortcut from '$lib/components/Shortcut.svelte';
import { dbUtils, fileObservers, settings } from '$lib/db';
import { dbUtils, getFile, settings } from '$lib/db';
import { Copy, MapPin, Plus, Trash2, Waypoints } from 'lucide-svelte';
import {
ListFileItem,
@@ -56,9 +56,9 @@
on:mouseenter={() => {
if (item instanceof ListWaypointItem) {
let layer = gpxLayers.get(item.getFileId());
let fileStore = get(fileObservers).get(item.getFileId());
if (layer && fileStore) {
let waypoint = get(fileStore)?.file.wpt[item.getWaypointIndex()];
let file = getFile(item.getFileId());
if (layer && file) {
let waypoint = file.wpt[item.getWaypointIndex()];
if (waypoint) {
layer.showWaypointPopup(waypoint);
}

View File

@@ -1,6 +1,6 @@
import { get, writable } from "svelte/store";
import { ListFileItem, ListItem, ListRootItem, ListTrackItem, ListTrackSegmentItem, ListWaypointItem, type ListLevel, sortItems, ListWaypointsItem } from "./FileList";
import { fileObservers, settings } from "$lib/db";
import { fileObservers, getFile, settings } from "$lib/db";
export class SelectionTreeType {
item: ListItem;
@@ -174,23 +174,23 @@ export function selectAll() {
$selection.set(new ListFileItem(fileId), true);
});
} else if (item instanceof ListTrackItem) {
let fileStore = get(fileObservers).get(item.getFileId());
if (fileStore) {
get(fileStore)?.file.trk.forEach((_track, trackId) => {
let file = getFile(item.getFileId());
if (file) {
file.trk.forEach((_track, trackId) => {
$selection.set(new ListTrackItem(item.getFileId(), trackId), true);
});
}
} else if (item instanceof ListTrackSegmentItem) {
let fileStore = get(fileObservers).get(item.getFileId());
if (fileStore) {
get(fileStore)?.file.trk[item.getTrackIndex()].trkseg.forEach((_segment, segmentId) => {
let file = getFile(item.getFileId());
if (file) {
file.trk[item.getTrackIndex()].trkseg.forEach((_segment, segmentId) => {
$selection.set(new ListTrackSegmentItem(item.getFileId(), item.getTrackIndex(), segmentId), true);
});
}
} else if (item instanceof ListWaypointItem) {
let fileStore = get(fileObservers).get(item.getFileId());
if (fileStore) {
get(fileStore)?.file.wpt.forEach((_waypoint, waypointId) => {
let file = getFile(item.getFileId());
if (file) {
file.wpt.forEach((_waypoint, waypointId) => {
$selection.set(new ListWaypointItem(item.getFileId(), waypointId), true);
});
}