mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-30 04:37:29 -06:00
Format
This commit is contained in:
@@ -938,9 +938,11 @@ fn format_options(s: &mut Session, p: &Value) -> Result<Value> {
|
||||
.filter(|f| f.write || SAVE_FORMATS.contains(&f.id) || TEMPLATE_FORMATS.contains(&f.id))
|
||||
.ok_or_else(|| bad(C, format!("`{id}` is no writable format (see document.formats)")))?;
|
||||
// A document not yet saved as a native file starts from the native options used last.
|
||||
let saved = st.filter(|d| d.format == f.id).map(remembered_save_options).filter(|m| !m.is_empty()).or_else(|| {
|
||||
(f.id == "vectorcraft" && !s.prefs.native_save_options.is_empty()).then(|| s.prefs.native_save_options.clone())
|
||||
});
|
||||
let saved = st
|
||||
.filter(|d| d.format == f.id)
|
||||
.map(remembered_save_options)
|
||||
.filter(|m| !m.is_empty())
|
||||
.or_else(|| (f.id == "vectorcraft" && !s.prefs.native_save_options.is_empty()).then(|| s.prefs.native_save_options.clone()));
|
||||
// A native save compresses as Use Compression says, unless told otherwise.
|
||||
let prefs = with_compression_pref(&s.prefs, &json!({}));
|
||||
let mut v = f.to_json();
|
||||
|
||||
@@ -111,7 +111,10 @@ fn a_new_document_offers_the_native_options_used_last() {
|
||||
let o = s.execute("file.formatOptions", &json!({"format": "vectorcraft"})).unwrap();
|
||||
let value = |k: &str| o["options"][k]["value"].clone();
|
||||
assert_eq!((value("preview"), value("embedProfiles"), value("pdfCompatible")), (json!(true), json!(false), json!(true)));
|
||||
assert_eq!((value("separateArtboards"), value("range")), (o["options"]["separateArtboards"]["default"].clone(), o["options"]["range"]["default"].clone()));
|
||||
assert_eq!(
|
||||
(value("separateArtboards"), value("range")),
|
||||
(o["options"]["separateArtboards"]["default"].clone(), o["options"]["range"]["default"].clone())
|
||||
);
|
||||
let _ = std::fs::remove_dir_all(d);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user