diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-07 12:17:09 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-07 12:17:09 +0000 |
| commit | b364528f253102ad131902abbca78991d8ec6938 (patch) | |
| tree | a33aafa7fabd29d0e549211128d1eae1fb498675 /schist_desktop_gui/src/gui.rs | |
| parent | 1664e741ad35ce52a01788c34029f0b2ea477e32 (diff) | |
task-001: can activate files screen options with Enter
Diffstat (limited to 'schist_desktop_gui/src/gui.rs')
| -rw-r--r-- | schist_desktop_gui/src/gui.rs | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/schist_desktop_gui/src/gui.rs b/schist_desktop_gui/src/gui.rs index ae8e034..eb2fce9 100644 --- a/schist_desktop_gui/src/gui.rs +++ b/schist_desktop_gui/src/gui.rs @@ -84,6 +84,12 @@ impl Gui { .find_map(|shortcut| shortcut.execute(&key_bind)) { match command { + crate::shortcut::Command::Activate => match self.active_screen { + Screen::FilesScreen => self + .update_files_screen(files_screen::Message::ActivateSelectedOption), + Screen::MainScreen => iced::Task::none(), + }, + crate::shortcut::Command::GotoNextView => { self.main_screen.update(main_screen::Message::SelectView( self.main_screen.active_view.next(), @@ -160,20 +166,24 @@ impl Gui { } iced::Task::none() } - Message::FilesScreenMessage(message) => match self.files_screen.update(message) { - files_screen::Action::None => iced::Task::none(), - files_screen::Action::OpenedFile(sqlite_connection) => { - let mut connection = sqlite_connection.connection; - let buckets = get_all_buckets(&mut connection).map_err(FetchError::new); - let accounts = get_all_accounts(&mut connection).map_err(FetchError::new); - self.connection = Some(connection); - self.active_screen = Screen::MainScreen; - iced::Task::batch(vec![ - self.update(Message::RefetchedBuckets(buckets)), - self.update(Message::RefetchedAccounts(accounts)), - ]) - } - }, + Message::FilesScreenMessage(message) => self.update_files_screen(message), + } + } + + fn update_files_screen(&mut self, message: files_screen::Message) -> iced::Task<Message> { + match self.files_screen.update(message) { + files_screen::Action::None => iced::Task::none(), + files_screen::Action::OpenedFile(sqlite_connection) => { + let mut connection = sqlite_connection.connection; + let buckets = get_all_buckets(&mut connection).map_err(FetchError::new); + let accounts = get_all_accounts(&mut connection).map_err(FetchError::new); + self.connection = Some(connection); + self.active_screen = Screen::MainScreen; + iced::Task::batch(vec![ + self.update(Message::RefetchedBuckets(buckets)), + self.update(Message::RefetchedAccounts(accounts)), + ]) + } } } } |
