feat(tablestyle): add Annotative toggle to the Table Style editor

The table-style details panel gains an Annotative checkbox that flips the
new TableStyle.annotative flag, rounding out annotative across the Text,
Dimension and Table style editors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-06-03 17:51:45 +03:00
commit 4675a439da
3 changed files with 24 additions and 1 deletions

View file

@ -898,6 +898,8 @@ pub enum Message {
TableStyleDialogSelect(String), TableStyleDialogSelect(String),
TableStyleDialogNew, TableStyleDialogNew,
TableStyleDialogDelete, TableStyleDialogDelete,
/// Toggle the Annotative flag on the selected table style.
TableStyleToggleAnnotative,
// ── MLineStyle Dialog ───────────────────────────────────────────────── // ── MLineStyle Dialog ─────────────────────────────────────────────────
MlStyleDialogOpen, MlStyleDialogOpen,
#[allow(dead_code)] #[allow(dead_code)]

View file

@ -5744,6 +5744,22 @@ impl OpenCADStudio {
Task::none() Task::none()
} }
Message::TableStyleToggleAnnotative => {
use acadrust::objects::ObjectType;
let i = self.active_tab;
let name = self.tablestyle_selected.clone();
self.push_undo_snapshot(i, "TABLESTYLE EDIT");
for obj in self.tabs[i].scene.document.objects.values_mut() {
if let ObjectType::TableStyle(s) = obj {
if s.name == name {
s.annotative = !s.annotative;
}
}
}
self.tabs[i].dirty = true;
Task::none()
}
Message::TableStyleDialogNew => { Message::TableStyleDialogNew => {
use acadrust::objects::ObjectType; use acadrust::objects::ObjectType;
let i = self.active_tab; let i = self.active_tab;

View file

@ -1,7 +1,7 @@
//! Table Style Manager window — fills the entire OS window. //! Table Style Manager window — fills the entire OS window.
use crate::app::Message; use crate::app::Message;
use iced::widget::{button, column, container, row, scrollable, text, Space}; use iced::widget::{button, checkbox, column, container, row, scrollable, text, Space};
use iced::{Background, Border, Color, Element, Fill, Theme}; use iced::{Background, Border, Color, Element, Fill, Theme};
const TB: Color = Color { const TB: Color = Color {
@ -222,6 +222,11 @@ pub fn view_window<'a>(
scrollable( scrollable(
column![ column![
info_row("Name:", s.name.clone()), info_row("Name:", s.name.clone()),
checkbox(s.annotative)
.label("Annotative")
.on_toggle(|_| Message::TableStyleToggleAnnotative)
.size(14)
.text_size(11),
info_row("H Margin:", format!("{:.4}", s.horizontal_margin)), info_row("H Margin:", format!("{:.4}", s.horizontal_margin)),
info_row("V Margin:", format!("{:.4}", s.vertical_margin)), info_row("V Margin:", format!("{:.4}", s.vertical_margin)),
info_row("Title Suppressed:", s.title_suppressed.to_string()), info_row("Title Suppressed:", s.title_suppressed.to_string()),