Merge pull request #1805 from ramox81/codex/block-dialog-additions

Block Definition dialog: preview, empty-block band, open in block editor
This commit is contained in:
Hakan Seven committed 2026-10-15 14:51:26 +03:00
commit cf6c50f2c0
30 files changed
+357 -13

No files matched your search

+21
View File
@@ -120,6 +120,7 @@ pub(super) const NAMES: &[&str] = &[
"ribbon_dropdown",
"keytips",
"dialog_ok",
"block_def_dialog",
"attdef_dialog",
"field_dialog",
"sheet_set",
@@ -1504,6 +1505,26 @@ impl OpenCADStudio {
}
return Ok(Task::none());
}
// The open Block Definition dialog: `name=…`, `open_in_editor=0|1`,
// `base_on_screen=0|1`, `objects_on_screen=0|1`, `create_empty`,
// `select_objects`.
"block_def_dialog" => {
if self.block_definition.is_none() {
return Err(failure("no_dialog", "The Block Definition dialog is not open"));
}
let value = string(req, "value")?;
let (key, v) = value.split_once('=').unwrap_or((value, ""));
let on = v == "1";
match key {
"name" => Message::BlockDefNameSelect(v.to_string()),
"open_in_editor" => Message::BlockDefOpenInEditor(on),
"base_on_screen" => Message::BlockDefBaseOnScreen(on),
"objects_on_screen" => Message::BlockDefObjectsOnScreen(on),
"create_empty" => Message::BlockDefCreateEmpty,
"select_objects" => Message::BlockDefSelectObjects,
_ => return Err(failure("invalid_value", "Unknown block definition field")),
}
}
// One field of the open attribute definition dialog: `tag=…`,
// `prompt=…`, `default=…`, `justify=MC`, `style=…`, `height=…`,
// `rotation=…`, `width=…`, `on_screen=0|1`, `x=…` / `y=…` / `z=…`,