forked from 1b-agent/fieldcraft-upstream
ui: properties and status lines in words, current card on top, Use selection makes its set on OK, marks on the left (#335, #333, #360, #337, #315, #361)
- describe.rs: a definition's fields in its form's labels and units (sets by
members and what they resolve to), for the context panel.
- reply::done: status lines that say what changed ("Showing Load deformed",
"Mode 2: 1637 Hz", "Added material Al").
- The context panel puts the form and the selection above reports; opening
another document clears both; what a form makes is selected.
- Use selection reuses a set with the same members, otherwise names one made
on OK; Cancel leaves the model unchanged. The Target's set row is labelled.
- The browser's state marks sit in one column at its left edge; a right click
selects the row its menu acts on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
1 parent
b65f1696b2
commit
a53c79cb55
8 files changed
+513
-39
No files matched your search
@@ -859,6 +859,15 @@ pub fn with_set(params: &Value, target: Target, set: &str) -> Value {
|
||||
Value::Object(out)
|
||||
}
|
||||
|
||||
/// The set of `model` whose members are exactly those of `set` (`model.set.create`'s
|
||||
/// parameters), if any.
|
||||
pub fn same_set(model: &Model, set: &Value) -> Option<String> {
|
||||
let mut members = set.as_object().cloned()?;
|
||||
members.remove("name");
|
||||
let wanted = serde_json::from_value::<Set>(Value::Object(members)).ok()?.normalized().ok()?;
|
||||
model.sets().iter().find(|(_, s)| **s == wanted).map(|(n, _)| n.clone())
|
||||
}
|
||||
|
||||
/// A set name not taken in `model`: `<base>`, then `<base>-2`, `<base>-3`, …; `Set` when
|
||||
/// `base` is not a valid name.
|
||||
pub fn fresh_set_name(model: &Model, base: &str) -> String {
|
||||
|
||||
Reference in new issue
Block a user