This commit is contained in:
bflatastic
2026-10-29 19:57:58 +07:00
parent a353ad3e7a
commit d3d1e31219
2 changed files with 9 additions and 4 deletions
+5 -3
View File
@@ -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();
+4 -1
View File
@@ -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);
}