Adjust key bindings based on mode, part of #547

This commit is contained in:
Jeremy Soller 2024-10-03 13:01:59 -06:00
parent a1e79c97e6
commit 8615157ec8
No known key found for this signature in database
GPG key ID: D02FD439211AF56F
4 changed files with 58 additions and 48 deletions

View file

@ -147,7 +147,7 @@ impl Action {
Action::Copy => Message::Copy(entity_opt),
Action::Cut => Message::Cut(entity_opt),
Action::EditHistory => Message::ToggleContextPage(ContextPage::EditHistory),
Action::EditLocation => Message::EditLocation(entity_opt),
Action::EditLocation => Message::TabMessage(entity_opt, tab::Message::EditLocationToggle),
Action::ExtractHere => Message::ExtractHere(entity_opt),
Action::Gallery => Message::TabMessage(entity_opt, tab::Message::GalleryToggle),
Action::HistoryNext => Message::TabMessage(entity_opt, tab::Message::GoNext),
@ -257,7 +257,6 @@ pub enum Message {
DialogPush(DialogPage),
DialogUpdate(DialogPage),
DialogUpdateComplete(DialogPage),
EditLocation(Option<Entity>),
ExtractHere(Option<Entity>),
Key(Modifiers, Key),
LaunchUrl(String),
@ -1080,6 +1079,11 @@ impl Application for App {
let app_themes = vec![fl!("match-desktop"), fl!("dark"), fl!("light")];
let key_binds = key_binds(&match flags.mode {
Mode::App => tab::Mode::App,
Mode::Desktop => tab::Mode::Desktop,
});
let mut app = App {
core,
nav_bar_context_id: segmented_button::Entity::null(),
@ -1092,7 +1096,7 @@ impl Application for App {
context_page: ContextPage::Preview(None, PreviewKind::Selected),
dialog_pages: VecDeque::new(),
dialog_text_input: widget::Id::unique(),
key_binds: key_binds(),
key_binds,
modifiers: Modifiers::empty(),
mounters: mounters(),
mounter_items: HashMap::new(),
@ -1484,21 +1488,6 @@ impl Application for App {
self.update(Message::DialogComplete),
]);
}
Message::EditLocation(entity_opt) => {
let entity = entity_opt.unwrap_or_else(|| self.tab_model.active());
if let Some(location) = self.tab_model.data::<Tab>(entity).and_then(|tab| {
if tab.edit_location.is_none() {
Some(tab.location.clone())
} else {
None
}
}) {
return self.update(Message::TabMessage(
Some(entity),
tab::Message::EditLocation(Some(location)),
));
}
}
Message::ExtractHere(entity_opt) => {
let paths = self.selected_paths(entity_opt);
if let Some(current_path) = paths.get(0) {