Skip to content

Commit 70f2e61

Browse files
committed
refactor: group shortcuts
1 parent 7b0c2a9 commit 70f2e61

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

src/app.rs

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ use std::{
77
#[cfg(not(target_arch = "wasm32"))]
88
use anyhow::{bail, Context};
99
use data::filter::{Comparator, FieldSpecifier, FilterConfig, FilterOn};
10-
use egui::{Align, KeyboardShortcut, Modifiers};
10+
use egui::Align;
1111
use egui_extras::{Column, TableBuilder};
1212
use log::info;
13+
use shortcut::Shortcuts;
1314

1415
use self::{data::Data, data_display_options::DataDisplayOptions};
1516

1617
mod data;
1718
mod data_display_options;
19+
mod shortcut;
1820

1921
#[derive(serde::Deserialize, serde::Serialize)]
2022
#[serde(default)] // if we add new fields, give them default values when deserializing old state
@@ -25,11 +27,7 @@ pub struct LogViewerApp {
2527
last_filename: Arc<Mutex<Option<PathBuf>>>,
2628
show_last_filename: bool,
2729
track_item_align: Option<Align>,
28-
shortcut_prev: KeyboardShortcut,
29-
shortcut_next: KeyboardShortcut,
30-
shortcut_first: KeyboardShortcut,
31-
shortcut_last: KeyboardShortcut,
32-
shortcut_unfilter: KeyboardShortcut,
30+
shortcuts: Shortcuts,
3331

3432
#[serde(skip)]
3533
should_scroll: bool,
@@ -46,11 +44,7 @@ impl Default for LogViewerApp {
4644
loading_status: Default::default(),
4745
last_filename: Default::default(),
4846
track_item_align: Default::default(),
49-
shortcut_prev: KeyboardShortcut::new(Modifiers::NONE, egui::Key::ArrowUp),
50-
shortcut_next: KeyboardShortcut::new(Modifiers::NONE, egui::Key::ArrowDown),
51-
shortcut_first: KeyboardShortcut::new(Modifiers::NONE, egui::Key::Home),
52-
shortcut_last: KeyboardShortcut::new(Modifiers::NONE, egui::Key::End),
53-
shortcut_unfilter: KeyboardShortcut::new(Modifiers::NONE, egui::Key::Escape),
47+
shortcuts: Default::default(),
5448
should_scroll: Default::default(),
5549
show_last_filename: true,
5650
}
@@ -441,23 +435,23 @@ impl LogViewerApp {
441435
}
442436

443437
fn check_shortcuts(&mut self, ui: &mut egui::Ui) {
444-
if ui.input_mut(|i| i.consume_shortcut(&self.shortcut_prev)) {
438+
if ui.input_mut(|i| i.consume_shortcut(&self.shortcuts.prev)) {
445439
self.move_selected_prev();
446440
}
447441

448-
if ui.input_mut(|i| i.consume_shortcut(&self.shortcut_next)) {
442+
if ui.input_mut(|i| i.consume_shortcut(&self.shortcuts.next)) {
449443
self.move_selected_next();
450444
}
451445

452-
if ui.input_mut(|i| i.consume_shortcut(&self.shortcut_first)) {
446+
if ui.input_mut(|i| i.consume_shortcut(&self.shortcuts.first)) {
453447
self.move_selected_first();
454448
}
455449

456-
if ui.input_mut(|i| i.consume_shortcut(&self.shortcut_last)) {
450+
if ui.input_mut(|i| i.consume_shortcut(&self.shortcuts.last)) {
457451
self.move_selected_last();
458452
}
459453

460-
if ui.input_mut(|i| i.consume_shortcut(&self.shortcut_unfilter)) {
454+
if ui.input_mut(|i| i.consume_shortcut(&self.shortcuts.unfilter)) {
461455
if let Some(data) = self.data.as_mut() {
462456
data.unfilter();
463457
}
@@ -495,7 +489,7 @@ impl LogViewerApp {
495489
.button("Unfilter")
496490
.on_hover_text(format!(
497491
"Clears Filter ({})",
498-
ui.ctx().format_shortcut(&self.shortcut_unfilter)
492+
ui.ctx().format_shortcut(&self.shortcuts.unfilter)
499493
))
500494
.clicked()
501495
{
@@ -580,7 +574,7 @@ impl LogViewerApp {
580574
.button("⏪")
581575
.on_hover_text(format!(
582576
"First ({})",
583-
ui.ctx().format_shortcut(&self.shortcut_first)
577+
ui.ctx().format_shortcut(&self.shortcuts.first)
584578
))
585579
.clicked()
586580
{
@@ -590,7 +584,7 @@ impl LogViewerApp {
590584
.button("⬆")
591585
.on_hover_text(format!(
592586
"Previous ({})",
593-
ui.ctx().format_shortcut(&self.shortcut_prev)
587+
ui.ctx().format_shortcut(&self.shortcuts.prev)
594588
))
595589
.clicked()
596590
{
@@ -600,7 +594,7 @@ impl LogViewerApp {
600594
.button("⬇")
601595
.on_hover_text(format!(
602596
"Next ({})",
603-
ui.ctx().format_shortcut(&self.shortcut_next)
597+
ui.ctx().format_shortcut(&self.shortcuts.next)
604598
))
605599
.clicked()
606600
{
@@ -610,7 +604,7 @@ impl LogViewerApp {
610604
.button("⏩")
611605
.on_hover_text(format!(
612606
"Last ({})",
613-
ui.ctx().format_shortcut(&self.shortcut_last)
607+
ui.ctx().format_shortcut(&self.shortcuts.last)
614608
))
615609
.clicked()
616610
{

src/app/shortcut.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use egui::{KeyboardShortcut, Modifiers};
2+
3+
#[derive(Debug, serde::Deserialize, serde::Serialize)]
4+
#[serde(default)]
5+
pub struct Shortcuts {
6+
pub prev: KeyboardShortcut,
7+
pub next: KeyboardShortcut,
8+
pub first: KeyboardShortcut,
9+
pub last: KeyboardShortcut,
10+
pub unfilter: KeyboardShortcut,
11+
}
12+
13+
impl Default for Shortcuts {
14+
fn default() -> Self {
15+
Self {
16+
prev: KeyboardShortcut::new(Modifiers::NONE, egui::Key::ArrowUp),
17+
next: KeyboardShortcut::new(Modifiers::NONE, egui::Key::ArrowDown),
18+
first: KeyboardShortcut::new(Modifiers::NONE, egui::Key::Home),
19+
last: KeyboardShortcut::new(Modifiers::NONE, egui::Key::End),
20+
unfilter: KeyboardShortcut::new(Modifiers::NONE, egui::Key::Escape),
21+
}
22+
}
23+
}

0 commit comments

Comments
 (0)