diff options
-rw-r--r-- | development.md | 1 | ||||
-rw-r--r-- | src/event_dispatch.rs | 2 | ||||
-rw-r--r-- | src/event_exec.rs | 5 | ||||
-rw-r--r-- | src/flagged.rs | 6 | ||||
-rw-r--r-- | src/mode.rs | 5 | ||||
-rw-r--r-- | src/status.rs | 6 |
6 files changed, 23 insertions, 2 deletions
diff --git a/development.md b/development.md index e3536f4..b701659 100644 --- a/development.md +++ b/development.md @@ -567,6 +567,7 @@ New view: Tree ! Toggle with 't', fold with 'z'. Navigate normally. ### Version 0.1.23 - [x] preview tar archive +- [x] Jump mode : 'Space' Toggle flag, 'u' remove all flags, 'Enter' jump to the file ## TODO diff --git a/src/event_dispatch.rs b/src/event_dispatch.rs index 844924f..9a0c94e 100644 --- a/src/event_dispatch.rs +++ b/src/event_dispatch.rs @@ -95,6 +95,8 @@ impl EventDispatcher { Mode::Navigate(Navigate::EncryptedDrive) if c == 'm' => status.mount_encrypted_drive(), Mode::Navigate(Navigate::EncryptedDrive) if c == 'g' => status.go_to_encrypted_drive(), Mode::Navigate(Navigate::EncryptedDrive) if c == 'u' => status.umount_encrypted_drive(), + Mode::Navigate(Navigate::Jump) if c == ' ' => status.jump_remove_selected_flagged(), + Mode::Navigate(Navigate::Jump) if c == 'u' => status.clear_flags_and_reset_view(), Mode::Navigate(Navigate::Marks(MarkAction::Jump)) => status.marks_jump_char(c, colors), Mode::Navigate(Navigate::Marks(MarkAction::New)) => status.marks_new(c, colors), Mode::Preview | Mode::Navigate(_) => { diff --git a/src/event_exec.rs b/src/event_exec.rs index 7d0f50a..6ffc781 100644 --- a/src/event_exec.rs +++ b/src/event_exec.rs @@ -713,7 +713,10 @@ impl EventAction { LeaveMode::password(status, kind, colors, dest, action)? } Mode::InputSimple(InputSimple::Remote) => LeaveMode::remote(status.selected())?, - Mode::Navigate(Navigate::Jump) => LeaveMode::jump(status)?, + Mode::Navigate(Navigate::Jump) => { + must_refresh = false; + LeaveMode::jump(status)? + } Mode::Navigate(Navigate::History) => LeaveMode::history(status.selected())?, Mode::Navigate(Navigate::Shortcut) => LeaveMode::shortcut(status.selected())?, Mode::Navigate(Navigate::Trash) => LeaveMode::trash(status)?, diff --git a/src/flagged.rs b/src/flagged.rs index e8b487b..5d32971 100644 --- a/src/flagged.rs +++ b/src/flagged.rs @@ -60,6 +60,12 @@ impl Flagged { .map(|p| p.as_path()) .collect() } + + /// Remove the selected file from the flagged files. + pub fn remove_selected(&mut self) { + self.content.remove(self.index); + self.index = 0; + } } impl_selectable_content!(PathBuf, Flagged); diff --git a/src/mode.rs b/src/mode.rs index 2919bb0..0832ea1 100644 --- a/src/mode.rs +++ b/src/mode.rs @@ -204,7 +204,10 @@ impl fmt::Display for Mode { Mode::InputCompleted(InputCompleted::Nothing) => write!(f, "Nothing: "), Mode::InputCompleted(InputCompleted::Command) => write!(f, "Command: "), Mode::Navigate(Navigate::Marks(_)) => write!(f, "Marks jump:"), - Mode::Navigate(Navigate::Jump) => write!(f, "Jump : "), + Mode::Navigate(Navigate::Jump) => write!( + f, + "Flagged files: <Enter> go to file -- <SPC> remove flag -- <u> remove all flags" + ), Mode::Navigate(Navigate::History) => write!(f, "History :"), Mode::Navigate(Navigate::Shortcut) => write!(f, "Shortcut :"), Mode::Navigate(Navigate::Trash) => write!(f, "Trash :"), diff --git a/src/status.rs b/src/status.rs index a927201..1b50615 100644 --- a/src/status.rs +++ b/src/status.rs @@ -317,6 +317,12 @@ impl Status { self.reset_tabs_view() } + /// Remove a flag file from Jump mode + pub fn jump_remove_selected_flagged(&mut self) -> Result<()> { + self.flagged.remove_selected(); + Ok(()) + } + pub fn click( &mut self, row: u16, |