feat(props): uniform-scale checkbox for block references

A selected INSERT's Geometry section gains a "Uniform scale" box
(#427): while the three factors are equal it is checked and the panel
shows a single Scale row that writes all three axes; unchecking
expands the familiar Scale X/Y/Z rows without touching the values
(remembered per entity), and re-checking collapses Y/Z onto X as an
undoable CHPROP step.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-07-21 10:27:50 +03:00
commit 8821bb7131
4 changed files with 82 additions and 0 deletions

View file

@ -250,6 +250,10 @@ pub(super) struct OpenCADStudio {
video_thumbs: std::collections::HashMap<String, iced::widget::image::Handle>,
/// True while the boot-time playlist fetch is still in flight.
videos_loading: bool,
/// Block references whose properties panel shows per-axis Scale X/Y/Z even
/// though the three factors are currently equal — the user unchecked the
/// "Uniform scale" box for them (#427). Keyed by entity handle.
props_asym_scale: std::collections::HashSet<u64>,
/// Which Start-page section is shown when the page is too narrow for all
/// three side by side and falls back to a tab bar.
start_section: StartSection,
@ -2201,6 +2205,7 @@ impl OpenCADStudio {
videos: Vec::new(),
video_thumbs: std::collections::HashMap::new(),
videos_loading: false,
props_asym_scale: std::collections::HashSet::new(),
start_section: StartSection::default(),
props_expanded: false,
history_content: iced::widget::text_editor::Content::new(),