Fix engine compile error: load export presets from presets JSON

Fixes #6911

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
(cherry picked from commit bb7a5f2309)
This commit is contained in:
NetterSilver
2026-10-17 13:34:00 +03:00
committed by PerchAnton
parent 120cfe19a2
commit 158dcc6731
2 changed files with 19 additions and 0 deletions
+1
View File
@@ -186,6 +186,7 @@ impl Session {
tool_presets: take(&mut m, "tool_presets"),
documents: take(&mut m, "documents"),
recent_documents: take(&mut m, "recent_documents"),
export_presets: take(&mut m, "export_presets"),
custom_shapes: take(&mut m, "custom_shapes"),
layer_defaults: take(&mut m, "layer_defaults"),
swatches: take(&mut m, "swatches"),
+18
View File
@@ -774,3 +774,21 @@ fn a_damaged_preset_set_keeps_the_other_sets() {
assert_eq!(next.presets.gradients.len(), Session::new().presets.gradients.len());
assert_eq!(next.presets.documents, s.presets.documents);
}
// ------------------------------------------------------------------ export presets
#[test]
fn export_presets_survive_a_presets_json_round_trip() {
let mut s = Session::new();
s.execute("file.export.presets.save", json!({"name": "Web", "settings": {"format": "jpg", "quality": 70}})).unwrap();
assert_eq!(s.presets.export_presets.len(), 1);
let saved = s.presets.to_json(&s);
assert_eq!(saved["export_presets"].as_array().map(Vec::len), Some(1));
let mut restored = Session::new();
restored.load_presets_json(saved);
assert_eq!(restored.presets.export_presets.len(), 1);
assert_eq!(restored.presets.export_presets[0].name, "Web");
assert_eq!(restored.presets.export_presets[0].settings.format, "jpg");
}