forked from 1b-agent/opencadstudio-upstream
feat(props): editable block Name row + collapsible XYZ groups
- Block reference Name (Misc) is editable: the dropdown re-points the insert to another definition; typing a new name renames the definition everywhere (record re-key, Block marker, every INSERT reference). Anonymous (*) and xref blocks stay read-only, with the same guards added to Scene::rename_block. - Custom single-control dropdown (text field + caret) built on the shared floating_below overlay so the list always opens downward, unlike iced's space-based menu placement. - Consecutive "<Base> X/Y/Z" rows (Position, Scale, Start, Center, ...) collapse into one expandable summary row across all entities; the expand state persists across rebuilds and selection changes. - The BEDIT block tab no longer offers the layout Rename/Delete context menu. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
1 parent
47f3409588
commit
b5dbef5776
10 files changed
+583
-51
No files matched your search
@@ -204,6 +204,20 @@ pub fn vp_effective_scale(custom_scale: f64, view_height: f64, vp_height: f64) -
|
||||
1.0
|
||||
}
|
||||
|
||||
/// A block name a user may assign: non-empty, no control characters, none of
|
||||
/// the symbol-table-reserved characters (`*` marks anonymous blocks, `|`
|
||||
/// xref-dependent ones; the rest are the DXF symbol-name exclusions).
|
||||
pub(crate) fn valid_block_name(name: &str) -> bool {
|
||||
!name.is_empty()
|
||||
&& !name.chars().any(|c| {
|
||||
c.is_control()
|
||||
|| matches!(
|
||||
c,
|
||||
'<' | '>' | '/' | '\\' | '"' | ':' | ';' | '?' | '*' | '|' | ',' | '=' | '`'
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
/// Pre-built entity caches returned by [`build_derived_caches`].
|
||||
/// Produced in the file-load background task so the UI thread only assigns.
|
||||
#[derive(Debug, Clone)]
|
||||
|
||||
Reference in new issue
Block a user