Open a photograph with the edit it already carries, when DarkRoom has none

The library's DNGs carry the photographer's earlier develop settings
in their embedded XMP — the house style their photographs were made
with. A photograph opened with no edit of DarkRoom's now starts from
that earlier edit, translated (HSL bands, highlights, blacks and the
rest), as one undoable step named "Earlier Edit"; from there it is an
ordinary edit, saved with the photograph. Export does the same, so a
photograph never opened exports as opening it would show.

Only on positive evidence that there is no DarkRoom edit: a local file
with no sidecar beside it, or a server that answered "no such file"
with nothing in the cache. The stored-edit fetch now says which
(FetchedSidecar::absent). Offline, unreachable or unreadable never
counts — the earlier edit would otherwise be saved over a real edit
that merely failed to arrive.
This commit is contained in:
2026-10-03 14:22:49 -04:00
parent 013596e1bd
commit e12783da9f
6 changed files with 222 additions and 79 deletions
+5
View File
@@ -27,6 +27,9 @@ pub mod step {
use dr_pipeline::LocalizedKey;
pub const PASTE: LocalizedKey = LocalizedKey("history.paste");
/// TRACES: FR-DEV-6
/// The edit a photograph already carried, brought across on first opening.
pub const EARLIER_EDIT: LocalizedKey = LocalizedKey("history.earlier_edit");
pub const FILM: LocalizedKey = LocalizedKey("history.film");
/// TRACES: FR-DEV-5
/// The photograph put back to a named snapshot, as one step.
@@ -100,6 +103,7 @@ pub mod step {
dr_pipeline::history::OPENED,
dr_pipeline::history::UNNAMED,
PASTE,
EARLIER_EDIT,
SNAPSHOT_RESTORED,
FILM,
SAMPLED_NEUTRAL,
@@ -322,6 +326,7 @@ fn catalogued(key: &str) -> Option<&'static str> {
"history.opened" => "Opened",
"history.edit" => "Edit",
"history.paste" => "Paste Settings",
"history.earlier_edit" => "Earlier Edit",
"history.snapshot_restored" => "Restore A Snapshot",
"history.film" => "Film Stock",
"history.sampled_neutral" => "Sample Neutral",