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:
parent
8164e14a19
commit
b2b2bfb246
31 changed files with 147 additions and 139 deletions
|
|
@ -191,7 +191,7 @@ fn hookline_dir_str(hd: &HooklineDirection) -> &'static str {
|
|||
}
|
||||
}
|
||||
|
||||
fn properties(leader: &Leader) -> PropSection {
|
||||
fn properties(leader: &Leader) -> Vec<PropSection> {
|
||||
let n = leader.vertices.len();
|
||||
let mut props = vec![
|
||||
// Style
|
||||
|
|
@ -283,10 +283,10 @@ fn properties(leader: &Leader) -> PropSection {
|
|||
}
|
||||
}
|
||||
|
||||
PropSection {
|
||||
vec![PropSection {
|
||||
title: "Geometry".into(),
|
||||
props,
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
||||
fn apply_geom_prop(leader: &mut Leader, field: &str, value: &str) {
|
||||
|
|
@ -540,7 +540,7 @@ impl crate::entities::traits::Grippable for Leader {
|
|||
}
|
||||
|
||||
impl crate::entities::traits::PropertyEditable for Leader {
|
||||
fn geometry_properties(&self, _text_style_names: &[String]) -> PropSection {
|
||||
fn geometry_properties(&self, _text_style_names: &[String]) -> Vec<PropSection> {
|
||||
properties(self)
|
||||
}
|
||||
fn apply_geom_prop(&mut self, field: &str, value: &str) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue