summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs
index 1a57c8a..257ca32 100644
--- a/src/file_browser.rs
+++ b/src/file_browser.rs
@@ -441,11 +441,11 @@ impl FileBrowser {
pub fn move_down_left_widget(&mut self) -> HResult<()> {
let left_files_pos = self.left_widget()?.get_selection();
- let next_dir = self.get_left_files()?.get_files()
- .iter()
+ let next_dir = self.get_left_files()?
+ .iter_files()
.skip(left_files_pos + 1)
- .find(|file| file.is_dir())
- .cloned().cloned();
+ .find(|&file| file.is_dir())
+ .cloned();
self.main_widget_goto(&next_dir?).log();
@@ -454,14 +454,15 @@ impl FileBrowser {
pub fn move_up_left_widget(&mut self) -> HResult<()> {
let left_files_pos = self.left_widget()?.get_selection();
- let skip_files = self.get_left_files()?.len() - left_files_pos;
- let next_dir = self.get_left_files()?.get_files()
- .iter()
+ let next_dir = self.get_left_files()?
+ .iter_files()
+ .take(left_files_pos)
+ .collect::<Vec<&File>>()
+ .into_iter()
.rev()
- .skip(skip_files)
- .find(|file| file.is_dir())
- .cloned().cloned();
+ .find(|&file| file.is_dir())
+ .cloned();
self.main_widget_goto(&next_dir?).log();
@@ -1170,7 +1171,10 @@ impl FileBrowser {
let xsize = self.get_coordinates()?.xsize();
let ypos = self.get_coordinates()?.position().y();
let pos = self.main_widget()?.get_selection();
- let file = self.main_widget()?.content.get_files().get(pos).cloned()?;
+ let file = self.main_widget()?
+ .content
+ .iter_files()
+ .nth(pos)?;
let permissions = file.pretty_print_permissions().unwrap_or("NOPERMS".into());
let user = file.pretty_user().unwrap_or("NOUSER".into());