This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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![
|
||||
("F1–F6", "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 {
|
||||
|
||||
Reference in New Issue
Block a user