Sync develop presets through the library
Presets were the one piece of the photographer's work that never left the device: faces, sidecars, albums, collections, keywords and camera profiles all travel with the sync pass, the preset library did not. It now goes to <derived>/presets/library.drpl. PresetLibrary::merge decides each name against the base the last exchange left (kept per library beside place.json), so presets added on two devices both survive, a deletion reaches the other device instead of being restored by it, and an edit outlives a deletion made elsewhere. The upload is If-Match / If-None-Match on the server's copy, and a 412 reads and merges again, so two devices exchanging at once cannot save over each other. A server copy that will not parse (a newer build's) is left alone, and a local file that will not read stops the exchange rather than being taken for an empty library. The develop view's save merges with the file when the sync changed it since the view read it, and a sync that brought presets reloads and redraws the list. Also corrects the register, which still said camera profiles do not sync.
This commit is contained in:
@@ -605,6 +605,12 @@ until deleted or renamed. Shipped and imported presets change only the operation
|
||||
name, so a look applied to a corrected photograph keeps the correction; a copy or a saved
|
||||
edit replaces everything in scope.
|
||||
|
||||
The user's presets sync between devices through each library they open, as one file beside the
|
||||
camera profiles. Each name merges on its own against what the last exchange left both sides
|
||||
holding, so presets added on two devices both survive, a deletion on one reaches the other rather
|
||||
than being restored by it, and an edit outlives a deletion made elsewhere. The write is
|
||||
conditional on the server's copy, so two devices exchanging at once cannot save over each other.
|
||||
|
||||
**FR-DEV-7 — Before/after.** Compare current edit state against the unedited original or against
|
||||
a chosen history state.
|
||||
|
||||
@@ -2771,7 +2777,8 @@ every render path would have to remember to call it. They travel with the decode
|
||||
matrix does.
|
||||
|
||||
*What it costs.* Every DNG with an embedded profile renders differently; previews refresh only when
|
||||
rendered again; tablet and desktop release together. The profiles directory does not sync yet.
|
||||
rendered again; tablet and desktop release together. The profiles directory syncs through the
|
||||
library's derived folder (camera-profiles.md §13).
|
||||
|
||||
### D21 — DNG reference tone for raws · **DECIDED 2026-10-03**
|
||||
|
||||
|
||||
+33
-33
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user