summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-02-07 12:17:09 +0000
committerJoe Carstairs <me@joeac.net>2026-02-07 12:17:09 +0000
commitb364528f253102ad131902abbca78991d8ec6938 (patch)
treea33aafa7fabd29d0e549211128d1eae1fb498675 /schist_desktop_gui/src/gui.rs
parent1664e741ad35ce52a01788c34029f0b2ea477e32 (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.rs38
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)),
+ ])
+ }
}
}
}