summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui.rs
diff options
context:
space:
mode:
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)),
+ ])
+ }
}
}
}