From 26dc8db216cba4c36c198308bb2efe2d429fecc6 Mon Sep 17 00:00:00 2001 From: rabite Date: Thu, 7 Feb 2019 02:00:32 +0100 Subject: [PATCH] show file count in status bar --- src/file_browser.rs | 20 +++++++++++++++++--- src/listview.rs | 4 ++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/file_browser.rs b/src/file_browser.rs index 1de948d..776dc46 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -182,15 +182,29 @@ impl Widget for FileBrowser { sized_path } fn render_footer(&self) -> String { + let xsize = self.get_coordinates().xsize(); + let ypos = self.get_coordinates().position().y(); let file = self.selected_file(); - let permissions = file.pretty_print_permissions(); + let permissions = file.pretty_print_permissions(); let user = file.pretty_user().unwrap_or("NOUSER".into()); let group = file.pretty_group().unwrap_or("NOGROUP".into()); - let mtime = file.pretty_mtime(); - format!("{} {}:{} {}", permissions, user, group, mtime) + + let selection = self.main_column().get_selection(); + let file_count = self.main_column().content.len(); + let file_count = format!("{}", file_count); + let digits = file_count.len(); + let file_count = format!("{:digits$}/{:digits$}", + selection, + file_count, + digits = digits); + let count_xpos = xsize - file_count.len() as u16; + let count_ypos = ypos + self.get_coordinates().ysize(); + + format!("{} {}:{} {} {} {}", permissions, user, group, mtime, + crate::term::goto_xy(count_xpos, count_ypos), file_count) } fn refresh(&mut self) { self.columns.refresh(); diff --git a/src/listview.rs b/src/listview.rs index a430d59..1fa16e4 100644 --- a/src/listview.rs +++ b/src/listview.rs @@ -74,6 +74,10 @@ where self.seeking = false; } + pub fn get_selection(&self) -> usize { + self.selection + } + fn set_selection(&mut self, position: usize) { let ysize = self.coordinates.ysize() as usize; let mut offset = 0;