diff --git a/src/ui/properties.rs b/src/ui/properties.rs index 73541e851..8d7262233 100644 --- a/src/ui/properties.rs +++ b/src/ui/properties.rs @@ -44,12 +44,23 @@ pub struct LinetypeItem { pub art: String, } +pub fn linetype_display_name(name: &str) -> String { + if name.is_empty() || name.eq_ignore_ascii_case("ByLayer") { + crate::t!("ByLayer").into_owned() + } else if name.eq_ignore_ascii_case("ByBlock") { + crate::t!("ByBlock").into_owned() + } else { + name.to_string() + } +} + impl fmt::Display for LinetypeItem { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let name = linetype_display_name(&self.name); if self.art.is_empty() { - write!(f, "{}", self.name) + write!(f, "{name}") } else { - write!(f, "{} {}", self.name, self.art) + write!(f, "{name} {}", self.art) } } } diff --git a/src/ui/ribbon/mod.rs b/src/ui/ribbon/mod.rs index 9af9ff610..96815f642 100644 --- a/src/ui/ribbon/mod.rs +++ b/src/ui/ribbon/mod.rs @@ -18,7 +18,7 @@ use iced::{Background, Border, Color, Element, Fill, Length, Padding, Theme}; use crate::app::Message; use crate::modules::{CadModule, IconKind, RibbonGroup, RibbonItem}; use crate::plugin::all_ribbon_modules; -use crate::ui::properties::{lw_options, LinetypeItem}; +use crate::ui::properties::{linetype_display_name, lw_options, LinetypeItem}; mod widgets; use widgets::{StyleContext, *}; @@ -1182,7 +1182,7 @@ impl Ribbon { let is_cur = lt.name == *active_lt; let check: Element<'_, Message> = crate::ui::icons::themed_check_cell(is_cur); - let name_col = text(lt.name.clone()) + let name_col = text(linetype_display_name(<.name)) .size(11) .style(move |theme: &Theme| iced::widget::text::Style { color: (!is_cur).then_some( diff --git a/src/ui/ribbon/widgets.rs b/src/ui/ribbon/widgets.rs index 2b3b7d1a5..29e9f44a3 100644 --- a/src/ui/ribbon/widgets.rs +++ b/src/ui/ribbon/widgets.rs @@ -22,7 +22,7 @@ use crate::app::Message; use crate::modules::{IconKind, ModuleEvent, RibbonItem, StyleKey, ToolDef}; use crate::ui::wrap_bar::PosReport; use crate::ui::icons; -use crate::ui::properties::{acad_color_display, LwItem}; +use crate::ui::properties::{acad_color_display, linetype_display_name, LwItem}; use crate::t; use super::LayerInfo; @@ -998,7 +998,11 @@ pub(super) fn render_large<'a>( PROP_COLOR_ID, Some(color_swatch), ); - let lt_row = prop_row(active_linetype.to_string(), PROP_LINETYPE_ID, None); + let lt_row = prop_row( + linetype_display_name(active_linetype), + PROP_LINETYPE_ID, + None, + ); let lw_row = prop_row(LwItem(active_lineweight).to_string(), PROP_LW_ID, None); let combos = container(