diff options
-rw-r--r-- | ranger/defaults/options.py | 4 | ||||
-rw-r--r-- | ranger/gui/widgets/browsercolumn.py | 9 | ||||
-rw-r--r-- | ranger/gui/widgets/statusbar.py | 13 | ||||
-rw-r--r-- | ranger/shared/settings.py | 2 |
4 files changed, 25 insertions, 3 deletions
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py index 6e34c244..c34e2105 100644 --- a/ranger/defaults/options.py +++ b/ranger/defaults/options.py @@ -60,6 +60,10 @@ draw_bookmark_borders = True # How many columns are there, and what are their relative widths? column_ratios = (1, 1, 4, 3) +# Display the file size in the main column or status bar? +display_size_in_main_column = False +display_size_in_status_bar = True + # Set a title for the window? update_title = True diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py index 9a7dfe9c..d8bfeb69 100644 --- a/ranger/gui/widgets/browsercolumn.py +++ b/ranger/gui/widgets/browsercolumn.py @@ -75,6 +75,12 @@ class BrowserColumn(Pager): Widget.__init__(self, win) self.level = level + self.settings.signal_bind('setopt.display_size_in_main_column', + self.request_redraw, weak=True) + + def request_redraw(self): + self.need_redraw = True + def resize(self, y, x, hei, wid): Widget.resize(self, y, x, hei, wid) @@ -289,7 +295,8 @@ class BrowserColumn(Pager): else: self.win.addnstr(line, 0, text, self.wid) - if self.display_infostring and drawn.infostring: + if self.display_infostring and drawn.infostring \ + and self.settings.display_size_in_main_column: info = drawn.infostring x = self.wid - 1 - len(info) if x > self.x: diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py index 6f52f8ef..75fbbe89 100644 --- a/ranger/gui/widgets/statusbar.py +++ b/ranger/gui/widgets/statusbar.py @@ -47,6 +47,11 @@ class StatusBar(Widget): def __init__(self, win, column=None): Widget.__init__(self, win) self.column = column + self.settings.signal_bind('setopt.display_size_in_status_bar', + self.request_redraw, weak=True) + + def request_redraw(self): + self.need_redraw = True def notify(self, text, duration=4, bad=False): self.msg = Message(text, duration, bad) @@ -157,12 +162,16 @@ class StatusBar(Widget): left.add(self._get_owner(target), 'owner') left.add_space() left.add(self._get_group(target), 'group') - left.add_space() if target.islink: how = target.exists and 'good' or 'bad' - left.add('-> ' + target.readlink, 'link', how) + left.add(' -> ' + target.readlink, 'link', how) else: + if self.settings.display_size_in_status_bar and target.infostring: + left.add(target.infostring) + + left.add_space() + left.add(strftime(self.timeformat, localtime(target.stat.st_mtime)), 'mtime') diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py index 6342db25..a4a58e6e 100644 --- a/ranger/shared/settings.py +++ b/ranger/shared/settings.py @@ -24,6 +24,8 @@ ALLOWED_SETTINGS = { 'save_console_history': bool, 'collapse_preview': bool, 'column_ratios': (tuple, list, set), + 'display_size_in_main_column': bool, + 'display_size_in_status_bar': bool, 'draw_borders': bool, 'draw_bookmark_borders': bool, 'sort': str, |