File presets in folders that open and close, as collections do

The presets menu and sheet listed every preset under flat section
headings, seventy rows to scroll past. They now list folders, closed
until opened, with how many presets each holds; opening one shows what
is inside it, folders and presets indented beneath.

A category is spelled in the name: "Portraits/Warm skin" is Warm skin
in a Portraits folder under Yours. The file format does not change, so
an older build lists the whole path as the name; renaming a preset is
how it moves, and saving or renaming into a folder opens the way to it.
A Lightroom import names what it reads after the folders below the one
chosen, and a "/" in a displayed name becomes "∕" so it files nothing.
The shipped film sections become Film › Colour, Cinema and Black and
white.

The tree is built and flattened in Rust (PresetTree), each row carrying
its depth, and which folders are open is remembered for the session.

A PopupWindow keeps the size it was shown at, so a folder opened in the
menu pushed its contents under "Save or manage…"; the menu is shown
again after each toggle to take its new height. That is a function on
the rail because Slint 1.17 generates Rust that does not compile for a
popup's close() reached from inside the popup. The sheet's list takes a
preferred height of up to 400px, since a Flickable reports next to
nothing and an opened folder showed three rows.

The manual describes the folders and naming. Its pictures show the menu
with Film › Colour open, and a black-and-white stock applied from Film
› Black and white; the scenes aim popup rows from the rail's entry, and
pick the menu's "Film" over the develop column's film chooser.
This commit is contained in:
2026-09-27 18:37:56 -04:00
parent 89b464db0c
commit 31bcc3a462
14 changed files with 680 additions and 174 deletions
+15 -10
View File
@@ -299,26 +299,31 @@ a gradient over the sky whose `Print Exposure` burns it in.
Every change is a step; `Undo` and the History panel walk them. `Snapshot`
keeps the current state under a name. `Presets`, at the foot of the tool
rail on the left, opens a menu of presets beside the photograph; choosing
one applies it. The menu's last row, `Save or manage…`, opens the presets
sheet, which saves the settings to apply elsewhere, renames and deletes
them, and imports Lightroom presets — `Folder…` for a folder of them,
`.xmp file…` for one.
rail on the left, opens a menu of presets beside the photograph, filed in
folders that start closed: your own under `Yours`, then the ones DarkRoom
ships — `Essentials`, `Skies`, and `Film`, which holds `Colour`, `Cinema`
and `Black and white`, one measured stock each. Choosing a folder opens it;
choosing a preset applies it. The menu's last row, `Save or manage…`, opens
the presets sheet, which lists the same folders and saves the settings to
apply elsewhere, renames and deletes them, and imports Lightroom presets —
`Folder…` for a folder of them, `.xmp file…` for one.
The menu and the sheet list your own presets first, then the ones DarkRoom ships —
Essentials, Skies, and colour, cinema and black-and-white film, one measured stock
each. A shipped preset is a look: it changes what it names and leaves the
A `/` in a name files the preset: `Portraits/Warm skin` is `Warm skin` in a
`Portraits` folder under `Yours`, and renaming it is how it moves. An
imported Lightroom folder keeps its groups the same way.
A shipped preset is a look: it changes what it names and leaves the
photograph's own corrections alone, as an imported Lightroom preset does.
Saving under a shipped preset's name makes your version the one that name
applies, marked *changed*; `Revert` brings the shipped one back, and renaming
yours makes it one of your own. A film preset carries its stock: choosing one
sets the `Film` chooser and leaves the rest of the edit where it was.
![The presets menu open beside the tool rail, over the photograph](media/presets-menu.png)
![The presets menu beside the tool rail, with Film and its colour stocks open](media/presets-menu.png)
![The presets sheet: a name for the current edit, the shipped Essentials, importing, and what an apply carries](media/presets.png)
![Scrolling down the shipped presets to the black-and-white films, applying Ilford HP5 Plus, then holding Before](media/presets-film.gif)
![Opening Film, then Black and white, in the presets menu and applying Ilford HP5 Plus, then holding Before](media/presets-film.gif)
### Copying settings
+14 -10
View File
@@ -353,22 +353,26 @@ a gradient over the sky whose <code>Print Exposure</code> burns it in.</p>
<h3 id="history-snapshots-presets">History, snapshots, presets</h3>
<p>Every change is a step; <code>Undo</code> and the History panel walk them. <code>Snapshot</code>
keeps the current state under a name. <code>Presets</code>, at the foot of the tool
rail on the left, opens a menu of presets beside the photograph; choosing
one applies it. The menu's last row, <code>Save or manage…</code>, opens the presets
sheet, which saves the settings to apply elsewhere, renames and deletes
them, and imports Lightroom presets — <code>Folder…</code> for a folder of them,
<code>.xmp file…</code> for one.</p>
<p>The menu and the sheet list your own presets first, then the ones DarkRoom ships —
Essentials, Skies, and colour, cinema and black-and-white film, one measured stock
each. A shipped preset is a look: it changes what it names and leaves the
rail on the left, opens a menu of presets beside the photograph, filed in
folders that start closed: your own under <code>Yours</code>, then the ones DarkRoom
ships — <code>Essentials</code>, <code>Skies</code>, and <code>Film</code>, which holds <code>Colour</code>, <code>Cinema</code>
and <code>Black and white</code>, one measured stock each. Choosing a folder opens it;
choosing a preset applies it. The menu's last row, <code>Save or manage…</code>, opens
the presets sheet, which lists the same folders and saves the settings to
apply elsewhere, renames and deletes them, and imports Lightroom presets —
<code>Folder…</code> for a folder of them, <code>.xmp file…</code> for one.</p>
<p>A <code>/</code> in a name files the preset: <code>Portraits/Warm skin</code> is <code>Warm skin</code> in a
<code>Portraits</code> folder under <code>Yours</code>, and renaming it is how it moves. An
imported Lightroom folder keeps its groups the same way.</p>
<p>A shipped preset is a look: it changes what it names and leaves the
photograph's own corrections alone, as an imported Lightroom preset does.
Saving under a shipped preset's name makes your version the one that name
applies, marked <em>changed</em>; <code>Revert</code> brings the shipped one back, and renaming
yours makes it one of your own. A film preset carries its stock: choosing one
sets the <code>Film</code> chooser and leaves the rest of the edit where it was.</p>
<figure><img loading="lazy" src="media/presets-menu.png" alt="The presets menu open beside the tool rail, over the photograph"><figcaption>The presets menu open beside the tool rail, over the photograph</figcaption></figure>
<figure><img loading="lazy" src="media/presets-menu.png" alt="The presets menu beside the tool rail, with Film and its colour stocks open"><figcaption>The presets menu beside the tool rail, with Film and its colour stocks open</figcaption></figure>
<figure><img loading="lazy" src="media/presets.png" alt="The presets sheet: a name for the current edit, the shipped Essentials, importing, and what an apply carries"><figcaption>The presets sheet: a name for the current edit, the shipped Essentials, importing, and what an apply carries</figcaption></figure>
<figure><img loading="lazy" src="media/presets-film.gif" alt="Scrolling down the shipped presets to the black-and-white films, applying Ilford HP5 Plus, then holding Before"><figcaption>Scrolling down the shipped presets to the black-and-white films, applying Ilford HP5 Plus, then holding Before</figcaption></figure>
<figure><img loading="lazy" src="media/presets-film.gif" alt="Opening Film, then Black and white, in the presets menu and applying Ilford HP5 Plus, then holding Before"><figcaption>Opening Film, then Black and white, in the presets menu and applying Ilford HP5 Plus, then holding Before</figcaption></figure>
<h3 id="copying-settings">Copying settings</h3>
<p><code>Copy</code> in the top bar, or Ctrl+C, takes this photograph's settings; <code>Paste</code>,
or Ctrl+V, puts them on another, and says what it would paste — how many
Binary file not shown.
Binary file not shown.
Binary file not shown.