forked from 1b-agent/opencadstudio-upstream
refactor(properties): entity property groups return Vec<PropSection>
Groundwork for making the Properties panel conform to the per-entity group/row spec (PROPERTIES.md). The panel already renders a Vec of sections, but each entity could only express a single geometry section. Change PropertyEditable::geometry_properties (and the EntityTypeOps enum dispatch) to return Vec<PropSection>, update the two impl macros, and flatten in properties_sectioned so the panel shows [General] + the entity's groups. Every entity builder is wrapped to return its existing section as a one-element Vec — pure mechanical change, no rows or titles altered, panel output identical. Enables Phase 2: rewriting each entity's groups/rows to match the spec. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
8164e14a19
commit
b2b2bfb246
31 files changed
+147
-139
No files matched your search
@@ -158,12 +158,12 @@ fn grips(ell: &Ellipse) -> Vec<GripDef> {
|
||||
]
|
||||
}
|
||||
|
||||
fn properties(ell: &Ellipse) -> PropSection {
|
||||
fn properties(ell: &Ellipse) -> Vec<PropSection> {
|
||||
let r_major = (ell.major_axis.x * ell.major_axis.x
|
||||
+ ell.major_axis.y * ell.major_axis.y
|
||||
+ ell.major_axis.z * ell.major_axis.z)
|
||||
.sqrt();
|
||||
PropSection {
|
||||
vec![PropSection {
|
||||
title: "Geometry".into(),
|
||||
props: vec![
|
||||
edit("Center X", "center_x", ell.center.x),
|
||||
@@ -181,7 +181,7 @@ fn properties(ell: &Ellipse) -> PropSection {
|
||||
format!("{:.4}", ell.minor_axis_ratio),
|
||||
),
|
||||
],
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
||||
fn apply_geom_prop(_ell: &mut Ellipse, _field: &str, _value: &str) {}
|
||||
|
||||
Reference in new issue
Block a user