diff --git a/src/app/view.rs b/src/app/view.rs index f2e3ad89b..c134a6337 100644 --- a/src/app/view.rs +++ b/src/app/view.rs @@ -75,6 +75,7 @@ impl OpenCADStudio { return crate::ui::textstyle::view_window(crate::ui::textstyle::TextStyleView { styles, selected: &self.textstyle_selected, + current: &tab.scene.document.header.current_text_style_name, font_buf: &self.textstyle_font, width_buf: &self.textstyle_width, oblique_buf: &self.textstyle_oblique, @@ -118,6 +119,7 @@ impl OpenCADStudio { return crate::ui::tablestyle::view_window( styles, &self.tablestyle_selected, + &self.ribbon.active_table_style, selected_style, &self.ts_hmargin, &self.ts_vmargin, @@ -369,6 +371,11 @@ impl OpenCADStudio { return crate::ui::dimstyle::view_window( styles, &self.dimstyle_selected, + &self.tabs[self.active_tab] + .scene + .document + .header + .current_dimstyle_name, self.dimstyle_tab, crate::ui::dimstyle::DimStyleValues { dimdle: &self.ds_dimdle, diff --git a/src/ui/dimstyle.rs b/src/ui/dimstyle.rs index 99eadd67a..2b603af9b 100644 --- a/src/ui/dimstyle.rs +++ b/src/ui/dimstyle.rs @@ -184,6 +184,7 @@ fn hdivider<'a>() -> Element<'a, Message> { pub fn view_window<'a>( styles: Vec, 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, diff --git a/src/ui/style_manager.rs b/src/ui/style_manager.rs index b85aab36f..6315f40a1 100644 --- a/src/ui/style_manager.rs +++ b/src/ui/style_manager.rs @@ -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, diff --git a/src/ui/tablestyle.rs b/src/ui/tablestyle.rs index 73314f0d8..c21c25b56 100644 --- a/src/ui/tablestyle.rs +++ b/src/ui/tablestyle.rs @@ -67,6 +67,7 @@ fn btn_s(accent: bool) -> impl Fn(&Theme, button::Status) -> button::Style { pub fn view_window<'a>( styles: Vec, 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, diff --git a/src/ui/textstyle.rs b/src/ui/textstyle.rs index bbed79770..4aabdb40d 100644 --- a/src/ui/textstyle.rs +++ b/src/ui/textstyle.rs @@ -9,6 +9,8 @@ use iced::{Background, Border, Color, Element, Fill, Theme}; pub struct TextStyleView<'a> { pub styles: Vec, 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,