feat(client/windows): the profile surfaces get their icons

Reset carries Undo, Edit profile carries Edit, Duplicate/Delete/Close carry Copy, Delete
and Accept — the icon support the bumped reactor added (#4736), applied where a glyph
disambiguates faster than a word. The rest of the shell already had its icons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-29 18:31:50 +02:00
co-authored by Claude Fable 5
parent e8eb803a3f
commit 69743e3a09
+15 -9
View File
@@ -274,7 +274,7 @@ fn edit_profile_modal(
buttons.push( buttons.push(
{ {
let (id, set_scope) = (id.clone(), set_scope.clone()); let (id, set_scope) = (id.clone(), set_scope.clone());
button("Duplicate").on_click(move || { button("Duplicate").icon(Symbol::Copy).on_click(move || {
let mut catalog = ProfilesFile::load(); let mut catalog = ProfilesFile::load();
let Some(source) = catalog.find_by_id(&id).cloned() else { let Some(source) = catalog.find_by_id(&id).cloned() else {
return; return;
@@ -299,7 +299,9 @@ fn edit_profile_modal(
buttons.push( buttons.push(
{ {
let set_delete = set_delete.clone(); let set_delete = set_delete.clone();
button("Delete\u{2026}").on_click(move || set_delete.call(Some(id.clone()))) button("Delete\u{2026}")
.icon(Symbol::Delete)
.on_click(move || set_delete.call(Some(id.clone())))
} }
.into(), .into(),
); );
@@ -307,12 +309,15 @@ fn edit_profile_modal(
buttons.push( buttons.push(
{ {
let (set_edit, set_rev) = (set_edit.clone(), set_rev.clone()); let (set_edit, set_rev) = (set_edit.clone(), set_rev.clone());
button("Close").accent().on_click(move || { button("Close")
set_edit.call(false); .accent()
// The deferred repaint: the pane dropdown (and any pinned tiles) pick up the .icon(Symbol::Accept)
// rename now, in one pass, instead of remounting per keystroke. .on_click(move || {
set_rev.call(rev + 1); set_edit.call(false);
}) // The deferred repaint: the pane dropdown (and any pinned tiles) pick up the
// rename now, in one pass, instead of remounting per keystroke.
set_rev.call(rev + 1);
})
} }
.into(), .into(),
); );
@@ -549,7 +554,7 @@ fn described_overridable(
.max_width(360.0) .max_width(360.0)
.horizontal_alignment(HorizontalAlignment::Left) .horizontal_alignment(HorizontalAlignment::Left)
.vertical_alignment(VerticalAlignment::Center), .vertical_alignment(VerticalAlignment::Center),
button("Reset").on_click(move || { button("Reset").icon(Symbol::Undo).on_click(move || {
let mut catalog = ProfilesFile::load(); let mut catalog = ProfilesFile::load();
if let Some(p) = catalog.profiles.iter_mut().find(|p| p.id == scope) { if let Some(p) = catalog.profiles.iter_mut().find(|p| p.id == scope) {
p.overrides.clear(field); p.overrides.clear(field);
@@ -1473,6 +1478,7 @@ pub(crate) fn settings_page(
let set_edit = set_edit.clone(); let set_edit = set_edit.clone();
rows.push( rows.push(
button("Edit profile\u{2026}") button("Edit profile\u{2026}")
.icon(Symbol::Edit)
.on_click(move || set_edit.call(true)) .on_click(move || set_edit.call(true))
.into(), .into(),
); );