feat(app): OpenFX UI wiring - effect library, inspector params, startup glue

- src/oakui/ofx.rs: startup sequence (host scan, register_plugin_nodes,
  progress reporter factory -> app progress dialog channel, active
  viewer time provider, project extent sync); all failures degrade to
  logs. oak-worker runtime also scans and registers plugins.
- Effect library groups OpenFX entries by sub-category (Filter/
  Generator/Transition/General); effect insertion goes through
  Factory::create_any so dynamic plugin nodes resolve.
- Inspector renders OFX parameters from node inputs (sliders, combo
  boxes from repeated combo_option/combo_value properties, vec/color
  spinboxes, text with explicit commit, push buttons), edits are
  undoable; persistent plugin messages surface as a card badge.
- oakplugin: push_button_clicked and per-instance persistent message
  counting (thin public layers).
This commit is contained in:
2026-08-18 22:16:08 +08:00
parent d61acb9e0a
commit ec7b7e6d13
17 changed files with 1733 additions and 55 deletions
+1
View File
@@ -96,6 +96,7 @@ oakcodec = { path = "crates/oakcodec" }
oakcommon = { path = "crates/oakcommon" }
oakcore-rs = { path = "crates/oakcore" }
oaknode = { path = "crates/oaknode" }
oakplugin = { path = "crates/oakplugin" }
oakrender = { path = "crates/oakrender" }
oakstorage = { path = "crates/oakstorage" }
oaktask = { path = "crates/oaktask" }