Feat: F1 F2 F3
Some checks failed
Deploy Website / deploy (push) Failing after 4m53s

This commit is contained in:
2026-02-14 15:13:21 +01:00
parent 8ba89f91a0
commit b2871ac251
4 changed files with 23 additions and 6 deletions

View File

@@ -1183,6 +1183,7 @@ impl App {
AppCommand::PageRight => self.page.right(),
AppCommand::PageUp => self.page.up(),
AppCommand::PageDown => self.page.down(),
AppCommand::GoToPage(page) => self.page = page,
// Help navigation
AppCommand::HelpToggleFocus => help_nav::toggle_focus(&mut self.ui),

View File

@@ -1,6 +1,7 @@
use std::path::PathBuf;
use crate::model::{LaunchQuantization, PatternSpeed, SyncMode};
use crate::page::Page;
use crate::state::{ColorScheme, DeviceKind, Modal, PatternField, SettingKind};
pub enum AppCommand {
@@ -142,6 +143,7 @@ pub enum AppCommand {
PageRight,
PageUp,
PageDown,
GoToPage(Page),
// Help navigation
HelpToggleFocus,

View File

@@ -117,6 +117,20 @@ fn handle_normal_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
}
}
if let Some(page) = match key.code {
KeyCode::F(1) => Some(Page::Dict),
KeyCode::F(2) => Some(Page::Patterns),
KeyCode::F(3) => Some(Page::Options),
KeyCode::F(4) => Some(Page::Help),
KeyCode::F(5) => Some(Page::Main),
KeyCode::F(6) => Some(Page::Engine),
_ => None,
} {
ctx.app.ui.minimap_until = Some(Instant::now() + Duration::from_millis(250));
ctx.dispatch(AppCommand::GoToPage(page));
return InputResult::Continue;
}
match ctx.app.page {
Page::Main => main_page::handle_main_page(ctx, key, ctrl),
Page::Patterns => patterns_page::handle_patterns_page(ctx, key),

View File

@@ -1,12 +1,12 @@
use crate::page::Page;
pub fn bindings_for(page: Page) -> Vec<(&'static str, &'static str, &'static str)> {
let mut bindings = Vec::new();
// Global bindings
bindings.push(("Ctrl+←→↑↓", "Navigate", "Switch between views"));
bindings.push(("q", "Quit", "Quit application"));
bindings.push(("?", "Keybindings", "Show this help"));
let mut bindings = vec![
("F1F6", "Go to view", "Dict/Patterns/Options/Help/Sequencer/Engine"),
("Ctrl+←→↑↓", "Navigate", "Switch between adjacent views"),
("q", "Quit", "Quit application"),
("?", "Keybindings", "Show this help"),
];
// Page-specific bindings
match page {