forked from 1b-agent/opencadstudio-upstream
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 <[email protected]>
This commit is contained in:
1 parent
de4eb31003
commit
885bacd0f6
5 files changed
+19
-5
No files matched your search
@@ -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,
|
||||
|
||||
+2
-1
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
+4
-1
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user