Move copy, paste and presets into the develop top bar

They sat in the develop column under a "SETTINGS" heading, which read as
application settings, and went away with the panel toggle and in the
mask and spot modes. The strip is where undo already is for the same
reason: these act on the whole edit, not on any one panel.

The paste button still names what it would apply. The TransferPanel
component is gone; the Transfer global and its Rust wiring are
unchanged.
This commit is contained in:
2026-09-22 21:37:31 -04:00
parent aee355fada
commit 9ebaa15099
7 changed files with 83 additions and 115 deletions
+38
View File
@@ -8,6 +8,8 @@
// front of it.
import { Theme } from "theme.slint";
import { Develop } from "session.slint";
import { Transfer } from "adjust.slint";
import { Button, PanelHeading, Label, Value, Caption, Panel } from "widgets.slint";
// Status strip — surfaces the GPU backend and adapter, which matters during
@@ -160,6 +162,42 @@ export component StatusBar inherits Rectangle {
clicked => { root.redo(); }
}
// TRACES: FR-DEV-6
// Copy and paste, in the strip beside undo for the reason undo is
// here: they act on the whole edit, not on any one panel, and the
// column can be put away. They sat in the column under a "SETTINGS"
// heading, which read as application settings and hid them behind a
// scroll and behind the panel toggle.
//
// The paste button names what would be pasted — "3 adjustments", and
// whether the crop is staying behind — because "Paste" alone asks the
// user to remember what they copied.
Button {
text: "Copy";
enabled: Develop.enabled;
y: (parent.height - self.height) / 2;
clicked => { Transfer.copy(); }
}
// Enabled on `armed` rather than on a non-empty summary, so pasting a
// neutral copy — which clears this image — stays available.
Button {
text: !Transfer.armed ? "Paste"
: "Paste " + Transfer.summary
+ (Transfer.framing-withheld ? ", no crop" : "");
enabled: Develop.enabled && Transfer.armed;
y: (parent.height - self.height) / 2;
clicked => { Transfer.paste(); }
}
// The saved half: this edit, kept under a name.
Button {
text: "Presets…";
enabled: Develop.enabled;
y: (parent.height - self.height) / 2;
clicked => { Transfer.open-presets(); }
}
// Show or hide the develop column. On a tablet the panel is 280px of a
// screen that is mostly photograph, and the whole point of opening an
// image is to look at it — so being able to put the instruments away