mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-11-01 20:19:39 +00:00
* wasm first steps * parsing start * parsing continued * progress * progress * progress * progress * progress * progress * progress * progress * fixes * reorganize * change type * fix * progress * refactoring * progress * progress * progress * keep style info * progress * progress * remove (copy) in name * progress * merge methods into 1 * splice * progress * progress * progress * cleaning * progress * progress * progress * visibility * progress * progress * progress * progress * progress * fixes * progress * fix markers * fix * progress * progress * progress * progress * progress * progress * small fix * use engine info * fix popups * small fix * progress * progress * progress * clean tool * handle self closing elements * reduce data exchanges across boundary * copy on wasm side to avoid any data corruption * speed fix * routing * refactoring * reverse * reverse * crop * split * merge * progress * time tool * fix bounds for waypoints * reduce * fix reactivity * handle corrupt time data * export * progress * remove gpx js package * remove todo * update readme * cleaning * progress * fix link fields * remove unused fields * refactoring and tests * import and export of routes, ref #192 * per-chunk categories storage * cross-tab sync * outdated state * refactoring * reorder methods * refactoring * fix * improve flow * renaming * progress * progress * fix * progress * per file history * keep original flag * use history variant * fix * progress * file explorer * progress * fix * sticky folders * improved sticky folders * fix sortable * fix sortable * fix * fix tab size * no file delete on desktop * fix routing on other file * fix sorting * remember language * open links in browser * commit missing changes * avoid selecting on resize * clarify filename * explorer actions * fix folder styling * drop anywhere in folder * cleaning * fixes * remove focus-ring * full screen * small fix * consistent highlight color * improved preview * performance improvements * sparser data transfers * sparser data transfers * show popup once data is loaded * fix routing control size * fix * sparse desktop build * remove custom ign styles * use new endpoint for openhikingmap * strip native menu * reorder context menu items * route full support * route - track conversion * create route file action * route export, filter out anchors at high zoom level * clarify name handling * move hide & center to view * routes continued * update docs * fix power format, closes #378 * lint fixes * fix display of additional data with gaps, closes #361 * fix linting issues * fix import modules * fix multidrag * change base to resolve * fix type errors * fix layer typings * fix last type error * each keys * improve typings * deploy to cloudflare --------- Co-authored-by: vcoppe <vcoppe@hexaly.com>
47 lines
1.9 KiB
Rust
47 lines
1.9 KiB
Rust
use crate::{Command, FileId, SelectMode, Selection};
|
|
|
|
/// Everything the frontend can ask the engine to do.
|
|
///
|
|
/// Only [`Action::Edit`] changes the files (and records an undo step); the others act on the
|
|
/// history, on the selection or on the file order.
|
|
#[derive(Debug)]
|
|
pub enum Action<'a> {
|
|
Edit(Command<'a>),
|
|
Undo,
|
|
Redo,
|
|
/// Selects files, tracks, segments or waypoints (or the waypoints node of one file),
|
|
/// ignoring what does not exist: a selection left with nothing is empty, which deselects
|
|
/// everything. See [`SelectMode`] for how it combines with the current selection.
|
|
Select {
|
|
selection: Selection,
|
|
mode: SelectMode,
|
|
},
|
|
/// Selects all the elements of the same kind as the selected ones, in the same place (see
|
|
/// [`Selection::all_at_level`]). Does nothing when there is nothing more to select.
|
|
SelectAll,
|
|
/// Moves the selection to the next (`down`) or previous element of the same kind, like the
|
|
/// arrow keys do in the file list (see [`Selection::neighbour`]). With `add`, the element is
|
|
/// added to the selection (shift + arrow), otherwise it replaces it.
|
|
ArrowSelect {
|
|
down: bool,
|
|
add: bool,
|
|
},
|
|
/// Puts the selected elements in the clipboard, to be pasted by [`crate::Paste`]. Does
|
|
/// nothing when nothing is selected.
|
|
Copy,
|
|
/// Like `Copy`, but the elements are moved instead of copied when they are pasted.
|
|
Cut,
|
|
/// Moves the files to `index` among the other files, in the given order. Not undoable.
|
|
Reorder {
|
|
file_ids: Vec<FileId>,
|
|
index: usize,
|
|
},
|
|
/// Names a file in all the states of the history, as if it had always been called so (see
|
|
/// [`crate::History::rename`]). Not undoable: for a file that is given a name from the outside,
|
|
/// like the name of the file it is written to.
|
|
Rename {
|
|
file_id: FileId,
|
|
name: String,
|
|
},
|
|
}
|