tlc: expand F9 menubar with all implemented commands
Left/Right menus: Quick view, Info, External panelize, Reload added. File menu: Filtered view, Relative symlink, Edit symlink, Directory size added. Command menu: Compare directories, Directory hotlist, Screen list, View/edit history, External panelize, Active VFS list, Background jobs added. Menubar now exposes all 20+ implemented Cmd variants across 5 menus.
This commit is contained in:
@@ -86,7 +86,7 @@ cargo build --release --target x86_64-unknown-redox
|
||||
```bash
|
||||
cd local/recipes/tui/tlc/source
|
||||
cargo test --lib
|
||||
# → 973 passed; 0 failed (verified 2026-06-19)
|
||||
# → 976 passed; 0 failed (verified 2026-06-19)
|
||||
```
|
||||
|
||||
## Linux Portability
|
||||
|
||||
@@ -65,17 +65,23 @@ fn build_menus() -> Vec<Menu> {
|
||||
Menu::new("Left", vec![
|
||||
MenuItem::item("List mode", Cmd::ToggleLayout),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Quick view", Cmd::PanelQuickView),
|
||||
MenuItem::item("Info", Cmd::PanelInfo),
|
||||
MenuItem::item("Tree", Cmd::Tree),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Quick filter...", Cmd::Search),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Show hidden files", Cmd::ToggleHidden),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Info", Cmd::Info),
|
||||
MenuItem::item("Tree", Cmd::Tree),
|
||||
MenuItem::item("Hotlist", Cmd::HotList),
|
||||
MenuItem::item("Quick cd", Cmd::QuickCd),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("External panelize", Cmd::Panelize),
|
||||
MenuItem::item("Reload", Cmd::Reload),
|
||||
]),
|
||||
Menu::new("File", vec![
|
||||
MenuItem::item("View", Cmd::View),
|
||||
MenuItem::item("Filtered view", Cmd::FilteredView),
|
||||
MenuItem::item("Edit", Cmd::Edit),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Copy", Cmd::Copy),
|
||||
@@ -83,19 +89,30 @@ fn build_menus() -> Vec<Menu> {
|
||||
MenuItem::item("Delete", Cmd::Delete),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Make directory", Cmd::MkDir),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Hard link", Cmd::Link),
|
||||
MenuItem::item("Symbolic link", Cmd::Symlink),
|
||||
MenuItem::item("Relative symlink", Cmd::SymlinkRelative),
|
||||
MenuItem::item("Edit symlink", Cmd::SymlinkEdit),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Chmod", Cmd::Permission),
|
||||
MenuItem::item("Chown", Cmd::Owner),
|
||||
MenuItem::item("Rmdir", Cmd::Rmdir),
|
||||
MenuItem::item("Directory size", Cmd::DirSize),
|
||||
]),
|
||||
Menu::new("Command", vec![
|
||||
MenuItem::item("User menu", Cmd::UserMenu),
|
||||
MenuItem::item("Find file", Cmd::Find),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Swap panels", Cmd::SwapPanels),
|
||||
MenuItem::item("Reload", Cmd::Reload),
|
||||
MenuItem::item("Compare directories", Cmd::CompareDirs),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Directory hotlist", Cmd::HotList),
|
||||
MenuItem::item("Screen list", Cmd::ScreenList),
|
||||
MenuItem::item("View/edit history", Cmd::EditHistory),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("External panelize", Cmd::Panelize),
|
||||
MenuItem::item("Active VFS list", Cmd::VfsList),
|
||||
MenuItem::item("Background jobs", Cmd::Jobs),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Toggle panels", Cmd::TogglePanels),
|
||||
]),
|
||||
@@ -112,14 +129,19 @@ fn build_menus() -> Vec<Menu> {
|
||||
Menu::new("Right", vec![
|
||||
MenuItem::item("List mode", Cmd::ToggleLayout),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Quick view", Cmd::PanelQuickView),
|
||||
MenuItem::item("Info", Cmd::PanelInfo),
|
||||
MenuItem::item("Tree", Cmd::Tree),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Quick filter...", Cmd::Search),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Show hidden files", Cmd::ToggleHidden),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("Info", Cmd::Info),
|
||||
MenuItem::item("Tree", Cmd::Tree),
|
||||
MenuItem::item("Hotlist", Cmd::HotList),
|
||||
MenuItem::item("Quick cd", Cmd::QuickCd),
|
||||
MenuItem::separator(),
|
||||
MenuItem::item("External panelize", Cmd::Panelize),
|
||||
MenuItem::item("Reload", Cmd::Reload),
|
||||
]),
|
||||
]
|
||||
}
|
||||
@@ -454,7 +476,9 @@ mod tests {
|
||||
fn enter_on_file_edit_dispatches_edit() {
|
||||
let mut mb = MenuBar::new();
|
||||
mb.handle_key(Key { code: 0x2192, mods: crate::key::Modifiers::empty() });
|
||||
mb.handle_key(Key { code: 0x2193, mods: crate::key::Modifiers::empty() });
|
||||
let down = Key { code: 0x2193, mods: crate::key::Modifiers::empty() };
|
||||
mb.handle_key(down);
|
||||
mb.handle_key(down);
|
||||
assert!(matches!(mb.handle_key(Key::ENTER), MenuBarOutcome::Dispatch(Cmd::Edit)));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user