feat(styles): mark the current style with a ✓ in the list

Every style manager now shows a leading ✓ next to the current style
(current text/dim style, active table/multileader/multiline style), with
the other rows padded so names stay aligned. The marker replaces the
multileader/multiline-only ◀ and is wired for all five managers by
threading the current-style name into each view.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-06-10 15:45:48 +03:00
commit 885bacd0f6
5 changed files with 19 additions and 5 deletions

View file

@ -184,6 +184,7 @@ fn hdivider<'a>() -> Element<'a, Message> {
pub fn view_window<'a>(
styles: Vec<String>,
selected: &'a str,
current: &'a str,
tab: u8,
vals: DimStyleValues<'a>,
rename_active: Option<&'a str>,
@ -724,7 +725,7 @@ pub fn view_window<'a>(
kind: crate::app::StyleKind::Dim,
styles: &styles,
selected,
current: None,
current: Some(current),
rename_active,
rename_buf,
on_new: Message::DimStyleDialogNew,

View file

@ -114,10 +114,12 @@ pub fn view<'a, 'b>(s: Scaffold<'a, 'b>) -> Element<'a, Message> {
.iter()
.map(|name| {
let is_sel = name.as_str() == s.selected;
// Mark the current style with a leading ✓; pad the rest so names
// line up.
let label = if s.current == Some(name.as_str()) {
format!("{name} ◀")
format!("✓ {name}")
} else {
name.clone()
format!(" {name}")
};
crate::ui::style_list::item(
name,

View file

@ -67,6 +67,7 @@ fn btn_s(accent: bool) -> impl Fn(&Theme, button::Status) -> button::Style {
pub fn view_window<'a>(
styles: Vec<String>,
selected: &'a str,
current: &'a str,
selected_style: Option<&'a acadrust::objects::TableStyle>,
hmargin_buf: &'a str,
vmargin_buf: &'a str,
@ -356,7 +357,7 @@ pub fn view_window<'a>(
kind: crate::app::StyleKind::Table,
styles: &styles,
selected,
current: None,
current: Some(current),
rename_active,
rename_buf,
on_new: Message::TableStyleDialogNew,

View file

@ -9,6 +9,8 @@ use iced::{Background, Border, Color, Element, Fill, Theme};
pub struct TextStyleView<'a> {
pub styles: Vec<String>,
pub selected: &'a str,
/// Name of the current text style (marked with ✓ in the list).
pub current: &'a str,
pub font_buf: &'a str,
pub width_buf: &'a str,
pub oblique_buf: &'a str,
@ -120,6 +122,7 @@ pub fn view_window<'a>(v: TextStyleView<'a>) -> Element<'a, Message> {
let TextStyleView {
styles,
selected,
current,
font_buf,
width_buf,
oblique_buf,
@ -258,7 +261,7 @@ pub fn view_window<'a>(v: TextStyleView<'a>) -> Element<'a, Message> {
kind: StyleKind::Text,
styles: &styles,
selected,
current: None,
current: Some(current),
rename_active,
rename_buf,
on_new: Message::TextStyleDialogNew,