aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/handler.rs
diff options
context:
space:
mode:
authorlukeflo2024-10-20 18:14:40 +0200
committerlukeflo2024-10-20 18:14:40 +0200
commit0c1232fe6d54cf3592d0bf9b5ae29bf048f5444c (patch)
tree675710467f814f611c416b56730a8760c9a15349 /src/frontend/handler.rs
parent730055489a660b0cdff950f6c7037fe7a07545ae (diff)
parent735264bb3d673c943e2e8c4898dba0609f49b3f4 (diff)
downloadbibiman-0c1232fe6d54cf3592d0bf9b5ae29bf048f5444c.tar.gz
bibiman-0c1232fe6d54cf3592d0bf9b5ae29bf048f5444c.zip
Merge branch 'sorting-by-column'
- Column selection for sorting - Jump up/down multiple entries in a list
Diffstat (limited to 'src/frontend/handler.rs')
-rw-r--r--src/frontend/handler.rs49
1 files changed, 37 insertions, 12 deletions
diff --git a/src/frontend/handler.rs b/src/frontend/handler.rs
index ec1647e..39ec7a2 100644
--- a/src/frontend/handler.rs
+++ b/src/frontend/handler.rs
@@ -49,23 +49,33 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App, tui: &mut Tui) -> R
// Keycodes for the tag area
CurrentArea::TagArea => match key_event.code {
KeyCode::Down => {
- app.select_next_tag();
+ app.select_next_tag(1);
}
KeyCode::Up => {
- app.select_previous_tag();
+ app.select_previous_tag(1);
}
KeyCode::Char('j') => {
if key_event.modifiers == KeyModifiers::ALT {
app.scroll_info_down();
} else {
- app.select_next_tag();
+ app.select_next_tag(1);
}
}
KeyCode::Char('k') => {
if key_event.modifiers == KeyModifiers::ALT {
app.scroll_info_up();
} else {
- app.select_previous_tag();
+ app.select_previous_tag(1);
+ }
+ }
+ KeyCode::Char('d') => {
+ if key_event.modifiers == KeyModifiers::CONTROL {
+ app.select_next_tag(5)
+ }
+ }
+ KeyCode::Char('u') => {
+ if key_event.modifiers == KeyModifiers::CONTROL {
+ app.select_previous_tag(5)
}
}
KeyCode::Char('g') | KeyCode::Home => {
@@ -96,23 +106,35 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App, tui: &mut Tui) -> R
// Keycodes for the entry area
CurrentArea::EntryArea => match key_event.code {
KeyCode::Down => {
- app.select_next_entry();
+ app.select_next_entry(1);
}
KeyCode::Up => {
- app.select_previous_entry();
+ app.select_previous_entry(1);
}
KeyCode::Char('j') => {
if key_event.modifiers == KeyModifiers::ALT {
app.scroll_info_down();
} else {
- app.select_next_entry();
+ app.select_next_entry(1);
}
}
KeyCode::Char('k') => {
if key_event.modifiers == KeyModifiers::ALT {
app.scroll_info_up();
} else {
- app.select_previous_entry();
+ app.select_previous_entry(1);
+ }
+ }
+ KeyCode::Char('d') => {
+ if key_event.modifiers == KeyModifiers::CONTROL {
+ app.select_next_entry(5);
+ }
+ }
+ KeyCode::Char('u') => {
+ if key_event.modifiers == KeyModifiers::CONTROL {
+ app.select_previous_entry(5);
+ } else {
+ app.open_doi_url()?;
}
}
KeyCode::Char('g') | KeyCode::Home => {
@@ -121,8 +143,14 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App, tui: &mut Tui) -> R
KeyCode::Char('G') | KeyCode::End => {
app.select_last_entry();
}
+ KeyCode::Char('h') => {
+ app.select_prev_column();
+ }
+ KeyCode::Char('l') => {
+ app.select_next_column();
+ }
KeyCode::Char('s') => {
- app.entry_table.sort_entry_table("author", true);
+ app.entry_table.sort_entry_table(true);
}
KeyCode::Char('y') => {
App::yank_text(&app.get_selected_citekey());
@@ -133,9 +161,6 @@ pub fn handle_key_events(key_event: KeyEvent, app: &mut App, tui: &mut Tui) -> R
KeyCode::Char('o') => {
app.open_connected_file()?;
}
- KeyCode::Char('u') => {
- app.open_doi_url()?;
- }
KeyCode::Char('/') => {
app.enter_search_area();
}