mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-10-27 02:27:18 +00:00
create route file action
This commit is contained in:
1 parent
764d0b233a
commit
0f957fb1f2
60 files changed
+211
-85
No files matched your search
@@ -16,10 +16,16 @@ pub fn new_file(
|
||||
lng: Option<f64>,
|
||||
lat: Option<f64>,
|
||||
ele: Option<f64>,
|
||||
route: Option<bool>,
|
||||
folder: Option<PathBuf>,
|
||||
) -> api::Outcome {
|
||||
let route = route.unwrap_or_default();
|
||||
// in `folder` if it is given, otherwise like the selected file, otherwise in the open folder
|
||||
state.core(move |core| core.creating(folder, true, |e| api::new_file(e, &name, lng, lat, ele)))
|
||||
state.core(move |core| {
|
||||
core.creating(folder, true, |e| {
|
||||
api::new_file(e, &name, lng, lat, ele, route)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/// The files are in the body, one after the other, the headers `lengths` and `names` (JSON,
|
||||
|
||||
+1
-1
@@ -483,7 +483,7 @@ fn files_made_from_a_file_of_the_open_folder_are_written_next_to_it_at_once() {
|
||||
assert_eq!(opened.added().len(), 1);
|
||||
let copy = core.creating(None, false, gpx_engine::api::duplicate);
|
||||
let fresh = core.creating(None, true, |e| {
|
||||
gpx_engine::api::new_file(e, "fresh", None, None, None)
|
||||
gpx_engine::api::new_file(e, "fresh", None, None, None, false)
|
||||
});
|
||||
// a copy of the file goes next to it, a new file with nothing selected in the selection
|
||||
// of the file that was just made
|
||||
|
||||
@@ -1247,7 +1247,7 @@ mod tests {
|
||||
#[test]
|
||||
fn a_file_that_is_not_on_the_disk_is_unsaved_until_it_is_given_a_place() {
|
||||
let mut fx = Fixture::new();
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None, false);
|
||||
let id = fx.ids()[0];
|
||||
assert!(fx.workspace.is_dirty(&fx.engine, id));
|
||||
assert_eq!(
|
||||
@@ -1272,9 +1272,9 @@ mod tests {
|
||||
fn several_files_without_a_place_go_in_a_folder_with_names_that_are_free() {
|
||||
let mut fx = Fixture::new();
|
||||
fx.write("fresh.gpx", "already there");
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None);
|
||||
api::new_file(&mut fx.engine, "a/b: c", None, None, None);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None, false);
|
||||
api::new_file(&mut fx.engine, "a/b: c", None, None, None, false);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None, false);
|
||||
let ids = fx.ids();
|
||||
let folder = fx.folder.clone();
|
||||
fx.workspace
|
||||
@@ -1697,7 +1697,7 @@ mod tests {
|
||||
fx.open_folder();
|
||||
let a = fx.ids()[0];
|
||||
fx.rename(a, "edited");
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None, false);
|
||||
let fresh = fx.id_named("fresh");
|
||||
fx.workspace.close_files(&mut fx.engine, &[a, fresh], true);
|
||||
assert!(fx.ids().is_empty());
|
||||
@@ -1713,7 +1713,7 @@ mod tests {
|
||||
let mut fx = Fixture::new();
|
||||
fx.write("a.gpx", "a");
|
||||
fx.open_folder();
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None);
|
||||
api::new_file(&mut fx.engine, "fresh", None, None, None, false);
|
||||
assert_eq!(fx.ids().len(), 2);
|
||||
|
||||
// the new file has nowhere to go: it has to be discarded
|
||||
|
||||
Reference in new issue
Block a user