Timeline: register window.panel.timeline as live (parity 609)

timeline_ui::handles() wired into menus::is_live so the Timeline panel
counts toward parity. 608 -> 609 (97.4%).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas 2026-10-03 02:23:51 -04:00
parent c080ed3e72
commit a35fe54d7c
3 changed files with 9 additions and 8 deletions

View File

@ -369,7 +369,7 @@ pub fn is_enabled(app: &PhotocraftApp, id: &str) -> bool {
if crate::analysis_ui::handles(id) {
return true;
}
if crate::preset_panels::handles(id) || crate::type_panels_ui::handles(id) {
if crate::preset_panels::handles(id) || crate::type_panels_ui::handles(id) || crate::timeline_ui::handles(id) {
return true;
}
if let Some(e) = crate::view_cmds::is_enabled(app, id) {
@ -486,7 +486,7 @@ pub struct MenuItem {
/// Is `id` implemented by the engine or the shell (a live menu item)? Shared by the menus and
/// the parity report ([`crate::parity`]).
pub fn is_live(id: &str) -> bool {
photocraft_engine::commands::find(id).is_some() || UI_COMMANDS.iter().any(|c| c.0 == id) || panel_alias(id).is_some() || workspace_name(id).is_some() || proof_preset(id).is_some() || id == "view.proofSetup.custom" || crate::view_cmds::handles(id) || crate::analysis_ui::handles(id) || crate::workspace_ui::handles(id) || crate::preset_panels::handles(id) || crate::type_panels_ui::handles(id)
photocraft_engine::commands::find(id).is_some() || UI_COMMANDS.iter().any(|c| c.0 == id) || panel_alias(id).is_some() || workspace_name(id).is_some() || proof_preset(id).is_some() || id == "view.proofSetup.custom" || crate::view_cmds::handles(id) || crate::analysis_ui::handles(id) || crate::workspace_ui::handles(id) || crate::preset_panels::handles(id) || crate::type_panels_ui::handles(id) || crate::timeline_ui::handles(id)
}
pub fn menu_items(app: &PhotocraftApp) -> Vec<MenuItem> {

View File

@ -19,6 +19,11 @@ pub fn checked(app: &PhotocraftApp, id: &str) -> Option<bool> {
(id == "window.panel.timeline").then_some(app.ui.timeline.open)
}
/// Ids this module owns (for parity / enablement).
pub fn handles(id: &str) -> bool {
id == "window.panel.timeline"
}
/// Toggle the Timeline panel.
pub fn menu(app: &mut PhotocraftApp, id: &str, _params: &Value) -> Option<Result<Value, String>> {
if id == "window.panel.timeline" {

View File

@ -2,7 +2,7 @@
Generated by `cargo xtask parity` from `crates/ui-egui/src/menu_catalog.rs` (Photoshop's menu tree) and the live command registry. Do not edit by hand.
**608 of 625 menu items live (97.3%).**
**609 of 625 menu items live (97.4%).**
| Menu | Live | Total | % |
|---|---:|---:|---:|
@ -14,7 +14,7 @@ Generated by `cargo xtask parity` from `crates/ui-egui/src/menu_catalog.rs` (Pho
| Select | 25 | 25 | 100% |
| Filter | 75 | 75 | 100% |
| View | 74 | 74 | 100% |
| Window | 60 | 61 | 98% |
| Window | 61 | 61 | 100% |
## Not yet implemented
@ -39,7 +39,3 @@ Generated by `cargo xtask parity` from `crates/ui-egui/src/menu_catalog.rs` (Pho
- Video Layers › Reload Frame (`layer.videoLayers.reloadFrame`)
- Video Layers › Rasterize (`layer.videoLayers.rasterize`)
- Rasterize › Video (`layer.rasterize.video`)
### Window (1)
- Timeline (`window.panel.timeline`)