From 44a28601f4e1ab857e75ee4a48f45464f2ff3eff Mon Sep 17 00:00:00 2001 From: hut Date: Sat, 10 Apr 2010 00:53:45 +0200 Subject: widgets.browserview: fixed collapse_preview --- ranger/gui/widgets/browserview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ranger/gui/widgets/browserview.py b/ranger/gui/widgets/browserview.py index 163fd503..7f2ea5fb 100644 --- a/ranger/gui/widgets/browserview.py +++ b/ranger/gui/widgets/browserview.py @@ -264,7 +264,7 @@ class BrowserView(Widget, DisplayableContainer): def poke(self): DisplayableContainer.poke(self) if self.settings.collapse_preview and self.preview: - has_preview = self.columns[-2].has_preview() + has_preview = self.columns[-1].has_preview() if self.preview_available != has_preview: self.preview_available = has_preview self.resize(self.y, self.x, self.hei, self.wid) -- cgit 1.4.1-2-gfad0 From a9481b26a4c33daff7750aadfc6738bd9630f866 Mon Sep 17 00:00:00 2001 From: hut Date: Sun, 11 Apr 2010 21:45:46 +0200 Subject: Fixed little tab completion bug Thanks to litemotiv for pointing it out --- ranger/defaults/commands.py | 8 ++++---- ranger/ext/command_parser.py | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ranger/defaults/commands.py b/ranger/defaults/commands.py index 4b2d1c8f..e69dcf90 100644 --- a/ranger/defaults/commands.py +++ b/ranger/defaults/commands.py @@ -79,11 +79,11 @@ class Command(FileManagerAware): # one result. since it must be a directory, append a slash. if len(dirnames) == 1: - return line + join(rel_dirname, dirnames[0]) + '/' + return line.start(1) + join(rel_dirname, dirnames[0]) + '/' # more than one result. append no slash, so the user can # manually type in the slash to advance into that directory - return (line + join(rel_dirname, dirname) for dirname in dirnames) + return (line.start(1) + join(rel_dirname, dirname) for dirname in dirnames) def _tab_directory_content(self): from os.path import dirname, basename, expanduser, join, isdir @@ -129,11 +129,11 @@ class Command(FileManagerAware): # one result. since it must be a directory, append a slash. if len(names) == 1: - return line + join(rel_dirname, names[0]) + '/' + return line.start(1) + join(rel_dirname, names[0]) + '/' # more than one result. append no slash, so the user can # manually type in the slash to advance into that directory - return (line + join(rel_dirname, name) for name in names) + return (line.start(1) + join(rel_dirname, name) for name in names) # -------------------------------- definitions diff --git a/ranger/ext/command_parser.py b/ranger/ext/command_parser.py index 3a676e8f..d737c277 100644 --- a/ranger/ext/command_parser.py +++ b/ranger/ext/command_parser.py @@ -25,6 +25,7 @@ class LazyParser(object): self._setting_line = None self._rests_loaded = 0 self._rests_gen_instance = None + self._starts = None try: self.firstpart = line[:line.rindex(' ') + 1] @@ -52,6 +53,26 @@ class LazyParser(object): else: return otherwise + def start(self, n): + if self._starts is None: + self._starts = [''] + line = self.line + result = "" + while True: + try: + index = line.index(' ') + 1 + except: + break + if index == 1: + continue + result = line[:index] + self._starts.append(result) + line = line[index:] + try: + return self._starts[n] + except: + return self._starts[-1] + def _rest_generator(self): lastrest = self.line n = 0 -- cgit 1.4.1-2-gfad0 From 444f836128a96ec877d1a4a7412be5d185cc6464 Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 12 Apr 2010 10:38:27 +0200 Subject: Fixed handling of directories with GC'd subdirs --- ranger/fsobject/directory.py | 5 +++-- ranger/gui/widgets/statusbar.py | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py index 79e32bff..29f0042c 100644 --- a/ranger/fsobject/directory.py +++ b/ranger/fsobject/directory.py @@ -237,6 +237,7 @@ class Directory(FileSystemObject, Accumulator, SettingsAware): Loads the contents of the directory. Use this sparingly since it takes rather long. """ + self.content_outdated = False if not self.loading: self.load_once() @@ -370,8 +371,7 @@ class Directory(FileSystemObject, Accumulator, SettingsAware): if self.load_content_once(*a, **k): return True - if self.content_outdated: - self.content_outdated = False + if self.files is None or self.content_outdated: self.load_content(*a, **k) return True @@ -403,6 +403,7 @@ class Directory(FileSystemObject, Accumulator, SettingsAware): """The number of containing files""" if not self.accessible or not self.content_loaded: raise ranger.fsobject.NotLoadedYet() + assert self.files is not None return len(self.files) def __eq__(self, other): diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py index 75fbbe89..78666a3d 100644 --- a/ranger/gui/widgets/statusbar.py +++ b/ranger/gui/widgets/statusbar.py @@ -146,10 +146,9 @@ class StatusBar(Widget): else: target = self.env.at_level(0).pointed_obj - if target is None: - return - - if target.accessible is False: + if target is None \ + or not target.accessible \ + or (target.is_directory and target.files is None): return perms = target.get_permission_string() @@ -208,7 +207,9 @@ class StatusBar(Widget): if target is None: return - if not target.content_loaded or not target.accessible: + if target is None \ + or not target.accessible \ + or (target.is_directory and target.files is None): return pos = target.scroll_begin -- cgit 1.4.1-2-gfad0 From bd0ede8de02eb47625464c1b48b11a68517c9232 Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 12 Apr 2010 11:29:05 +0200 Subject: cleanup Conflicts: ranger/gui/widgets/console.py --- ranger/api/apps.py | 7 ++++--- ranger/core/fm.py | 6 ++---- ranger/defaults/apps.py | 3 ++- ranger/ext/get_all_modules.py | 23 ----------------------- ranger/ext/get_executables.py | 33 +++++++++++++++++++++++++-------- ranger/ext/waitpid_no_intr.py | 9 +++++---- ranger/gui/widgets/console.py | 8 +++++--- 7 files changed, 43 insertions(+), 46 deletions(-) delete mode 100644 ranger/ext/get_all_modules.py diff --git a/ranger/api/apps.py b/ranger/api/apps.py index a17a6601..309c0db6 100644 --- a/ranger/api/apps.py +++ b/ranger/api/apps.py @@ -20,6 +20,7 @@ This module provides helper functions/classes for ranger.apps. import os, sys, re from subprocess import Popen, PIPE from ranger.ext.iter_tools import flatten +from ranger.ext.get_executables import get_executables from ranger.shared import FileManagerAware @@ -68,7 +69,7 @@ class Applications(FileManagerAware): if hasattr(dep, 'dependencies') \ and not self._meets_dependencies(dep): return False - if dep not in self.fm.executables: + if dep not in get_executables(): return False return True @@ -78,7 +79,7 @@ class Applications(FileManagerAware): try: application_handler = getattr(self, 'app_' + app) except AttributeError: - if app in self.fm.executables: + if app in get_executables(): return tup(app, *context) continue if self._meets_dependencies(application_handler): @@ -101,7 +102,7 @@ class Applications(FileManagerAware): try: handler = getattr(self, 'app_' + app) except AttributeError: - if app in self.fm.executables: + if app in get_executables(): return tup(app, *context) # generic app handler = self.app_default return handler(context) diff --git a/ranger/core/fm.py b/ranger/core/fm.py index 25e66407..626ce838 100644 --- a/ranger/core/fm.py +++ b/ranger/core/fm.py @@ -51,7 +51,6 @@ class FM(Actions, SignalDispatcher): self.tabs = {} self.current_tab = 1 self.loader = Loader() - self._executables = None self.apps = self.settings.apps.CustomApplications() def mylogfunc(text): @@ -68,9 +67,8 @@ class FM(Actions, SignalDispatcher): @property def executables(self): - if self._executables is None: - self._executables = sorted(get_executables()) - return self._executables + """For compatibility. Calls get_executables()""" + return get_executables() def initialize(self): """If ui/bookmarks are None, they will be initialized here.""" diff --git a/ranger/defaults/apps.py b/ranger/defaults/apps.py index b3500c0d..45f2ace3 100644 --- a/ranger/defaults/apps.py +++ b/ranger/defaults/apps.py @@ -46,6 +46,7 @@ This example modifies the behaviour of "feh" and adds a custom media player: """ from ranger.api.apps import * +from ranger.ext.get_executables import get_executables INTERPRETED_LANGUAGES = re.compile(r''' ^(text|application)\/x-( @@ -103,7 +104,7 @@ class CustomApplications(Applications): else: parts = default_editor.split() exe_name = os.path.basename(parts[0]) - if exe_name in self.fm.executables: + if exe_name in get_executables(): return tuple(parts) + tuple(c) return self.either(c, 'vim', 'emacs', 'nano') diff --git a/ranger/ext/get_all_modules.py b/ranger/ext/get_all_modules.py deleted file mode 100644 index 62c81437..00000000 --- a/ranger/ext/get_all_modules.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) 2009, 2010 Roman Zimbelmann -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -def get_all_modules(dirname): - """returns a list of strings containing the names of modules in a directory""" - import os - result = [] - for filename in os.listdir(dirname): - if filename.endswith('.py') and not filename.startswith('_'): - result.append(filename[0:filename.index('.')]) - return result diff --git a/ranger/ext/get_executables.py b/ranger/ext/get_executables.py index 9eeb3345..22c08eb9 100644 --- a/ranger/ext/get_executables.py +++ b/ranger/ext/get_executables.py @@ -13,12 +13,28 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import stat -import os -from os.path import isfile, join, exists +from stat import S_IXOTH, S_IFREG from ranger.ext.iter_tools import unique +from os import listdir, environ, stat +from os.path import join -def get_executables(*paths): + +_cached_executables = None + + +def get_executables(): + """ + Return all executable files in each of the given directories. + + Looks in $PATH by default. + """ + global _cached_executables + if _cached_executables is None: + _cached_executables = sorted(get_executables_uncached()) + return _cached_executables + + +def get_executables_uncached(*paths): """ Return all executable files in each of the given directories. @@ -26,7 +42,7 @@ def get_executables(*paths): """ if not paths: try: - pathstring = os.environ['PATH'] + pathstring = environ['PATH'] except KeyError: return () paths = unique(pathstring.split(':')) @@ -34,15 +50,16 @@ def get_executables(*paths): executables = set() for path in paths: try: - content = os.listdir(path) + content = listdir(path) except: continue for item in content: abspath = join(path, item) try: - filestat = os.stat(abspath) + filestat = stat(abspath) except: continue - if filestat.st_mode & (stat.S_IXOTH | stat.S_IFREG): + if filestat.st_mode & (S_IXOTH | S_IFREG): executables.add(item) return executables + diff --git a/ranger/ext/waitpid_no_intr.py b/ranger/ext/waitpid_no_intr.py index c14fa5b9..12fbcbce 100644 --- a/ranger/ext/waitpid_no_intr.py +++ b/ranger/ext/waitpid_no_intr.py @@ -13,17 +13,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from errno import EINTR +from os import waitpid + def waitpid_no_intr(pid): """catch interrupts which occur while using os.waitpid""" - import os, errno - while True: try: - return os.waitpid(pid, 0) + return waitpid(pid, 0) except KeyboardInterrupt: continue except OSError as e: - if e.errno == errno.EINTR: + if e.errno == EINTR: continue else: raise diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py index 777ef3f6..7a3546e9 100644 --- a/ranger/gui/widgets/console.py +++ b/ranger/gui/widgets/console.py @@ -27,6 +27,8 @@ from ranger.defaults import commands from ranger.gui.widgets.console_mode import is_valid_mode, mode_to_class from ranger import log, relpath_conf from ranger.ext.shell_escape import shell_quote +from ranger.ext.get_executables import get_executables +from ranger.ext.direction import Direction import ranger DEFAULT_HISTORY = 0 @@ -442,8 +444,8 @@ class OpenConsole(ConsoleWithTab): try: position_of_last_space = line.rindex(" ") except ValueError: - return (start + program + ' ' for program in self.fm.executables \ - if program.startswith(line)) + return (start + program + ' ' for program \ + in get_executables() if program.startswith(line)) if position_of_last_space == len(line) - 1: return self.line + '%s ' else: @@ -612,7 +614,7 @@ class QuickOpenConsole(ConsoleWithTab): def _is_app(self, arg): return self.fm.apps.has(arg) or \ - (not self._is_flags(arg) and arg in self.fm.executables) + (not self._is_flags(arg) and arg in get_executables()) def _is_flags(self, arg): from ranger.core.runner import ALLOWED_FLAGS -- cgit 1.4.1-2-gfad0 From 1019737b2570cebd09a2cdff29642085aa6d062e Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 12 Apr 2010 12:15:22 +0200 Subject: Grey out copied/cut files. --- ranger/colorschemes/default.py | 3 +++ ranger/core/actions.py | 7 +++++++ ranger/defaults/keys.py | 1 + ranger/gui/context.py | 2 +- ranger/gui/widgets/browsercolumn.py | 3 +++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ranger/colorschemes/default.py b/ranger/colorschemes/default.py index 24f8ab91..ca8456e7 100644 --- a/ranger/colorschemes/default.py +++ b/ranger/colorschemes/default.py @@ -59,6 +59,9 @@ class Default(ColorScheme): fg = white else: fg = red + if not context.selected and (context.cut or context.copied): + fg = black + attr |= bold if context.main_column: if context.selected: attr |= bold diff --git a/ranger/core/actions.py b/ranger/core/actions.py index b64ef316..5daa383e 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -500,16 +500,23 @@ class Actions(EnvironmentAware, SettingsAware): # -- File System Operations # -------------------------- + def uncut(self): + self.env.copy = set() + self.env.cut = False + self.ui.browser.main_column.request_redraw() + def copy(self): """Copy the selected items""" selected = self.env.get_selection() self.env.copy = set(f for f in selected if f in self.env.cwd.files) self.env.cut = False + self.ui.browser.main_column.request_redraw() def cut(self): self.copy() self.env.cut = True + self.ui.browser.main_column.request_redraw() def paste_symlink(self): from os import symlink, getcwd diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py index 6f50635e..c4b8e198 100644 --- a/ranger/defaults/keys.py +++ b/ranger/defaults/keys.py @@ -102,6 +102,7 @@ def initialize_commands(map): # ------------------------------------------ file system operations map('yy', fm.copy()) map('dd', fm.cut()) + map('ud', fm.uncut()) map('pp', fm.paste()) map('po', fm.paste(overwrite=True)) map('pl', fm.paste_symlink()) diff --git a/ranger/gui/context.py b/ranger/gui/context.py index 4ea50714..d4c1c94d 100644 --- a/ranger/gui/context.py +++ b/ranger/gui/context.py @@ -23,7 +23,7 @@ CONTEXT_KEYS = ['reset', 'error', 'good', 'bad', 'space', 'permissions', 'owner', 'group', 'mtime', 'nlink', 'scroll', 'all', 'bot', 'top', 'percentage', - 'marked', 'tagged', 'tag_marker', + 'marked', 'tagged', 'tag_marker', 'cut', 'copied', 'help_markup', 'seperator', 'key', 'special', 'border', 'title', 'text', 'highlight', 'bars', 'quotes', 'tab', diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py index d8bfeb69..8301d26a 100644 --- a/ranger/gui/widgets/browsercolumn.py +++ b/ranger/gui/widgets/browsercolumn.py @@ -281,6 +281,9 @@ class BrowserColumn(Pager): if stat.S_ISSOCK(mode): this_color.append('socket') + if self.env.copy and drawn in self.env.copy: + this_color.append('cut' if self.env.cut else 'copied') + if drawn.islink: this_color.append('link') this_color.append(drawn.exists and 'good' or 'bad') -- cgit 1.4.1-2-gfad0 From 4ce7312000cb2323a9eafd0eb436181cb86762d7 Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 12 Apr 2010 20:44:53 +0200 Subject: widget.console: removed Directory import --- ranger/gui/widgets/console.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py index 7a3546e9..03f61ddf 100644 --- a/ranger/gui/widgets/console.py +++ b/ranger/gui/widgets/console.py @@ -28,7 +28,6 @@ from ranger.gui.widgets.console_mode import is_valid_mode, mode_to_class from ranger import log, relpath_conf from ranger.ext.shell_escape import shell_quote from ranger.ext.get_executables import get_executables -from ranger.ext.direction import Direction import ranger DEFAULT_HISTORY = 0 -- cgit 1.4.1-2-gfad0 From fab4dc542e9f2b0ee55a97046915894c9e5ae37b Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:17:46 +0200 Subject: Fixed suggested cd-after-exit-script for zsh --- README | 2 +- doc/ranger.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 07837688..429aefa1 100644 --- a/README +++ b/README @@ -130,7 +130,7 @@ Tips Change the directory of your parent shell when you exit ranger: ranger() { - $(which ranger) $@ && + command ranger $@ && cd "$(grep \^\' ~/.ranger/bookmarks | cut -b3-)" } diff --git a/doc/ranger.1 b/doc/ranger.1 index 9e1ab5a0..6adaf43f 100644 --- a/doc/ranger.1 +++ b/doc/ranger.1 @@ -169,7 +169,7 @@ of your parent shell after exiting ranger: .nf ranger() { - $(which ranger) $@ && + command ranger $@ && cd "$(grep \\^\\' ~/.ranger/bookmarks | cut -b3-)" } .\"----------------------------------------- -- cgit 1.4.1-2-gfad0 From 59698d9d1529646719b108ad6b8596e1383d533b Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:19:10 +0200 Subject: Abbreviate HOME with ~ in the titlebar --- ranger/defaults/options.py | 3 +++ ranger/gui/bar.py | 4 +++- ranger/gui/widgets/titlebar.py | 15 +++++++++++---- ranger/shared/settings.py | 1 + 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py index d96955b7..a9dd8bde 100644 --- a/ranger/defaults/options.py +++ b/ranger/defaults/options.py @@ -75,6 +75,9 @@ update_title = True # directories are displayed at once, False turns off this feature. shorten_title = 3 +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +tilde_in_titlebar = True + # How many directory-changes or console-commands should be kept in history? max_history_size = 20 diff --git a/ranger/gui/bar.py b/ranger/gui/bar.py index c06a201e..0ef840a4 100644 --- a/ranger/gui/bar.py +++ b/ranger/gui/bar.py @@ -95,8 +95,10 @@ class BarSide(list): def add(self, string, *lst, **kw): cs = ColoredString(string, self.base_color_tag, *lst) + cs.__dict__.update(kw) if 'fixedsize' in kw: - cs.fixed = kw['fixedsize'] + kw['fixed'] = kw['fixedsize'] + del kw['fixedsize'] self.append(cs) def add_space(self, n=1): diff --git a/ranger/gui/widgets/titlebar.py b/ranger/gui/widgets/titlebar.py index 62740e2d..ddcd03c3 100644 --- a/ranger/gui/widgets/titlebar.py +++ b/ranger/gui/widgets/titlebar.py @@ -84,7 +84,7 @@ class TitleBar(Widget): self.fm.enter_dir("/") else: try: - self.fm.env.enter_dir(self.env.pathway[(i-3)/2]) + self.fm.enter_dir(part.directory) except: pass return True @@ -109,15 +109,22 @@ class TitleBar(Widget): bar.add(self.env.username, 'hostname', clr, fixedsize=True) bar.add('@', 'hostname', clr, fixedsize=True) bar.add(self.env.hostname, 'hostname', clr, fixedsize=True) + bar.add(':', 'hostname', clr, fixedsize=True) - for path in self.env.pathway: + pathway = self.env.pathway + if self.settings.tilde_in_titlebar and \ + self.fm.env.cwd.path.startswith(self.env.home_path): + pathway = pathway[self.env.home_path.count('/')+1:] + bar.add('~/', 'directory', fixedsize=True) + + for path in pathway: if path.islink: clr = 'link' else: clr = 'directory' - bar.add(path.basename, clr) - bar.add('/', clr, fixedsize=True) + bar.add(path.basename, clr, directory=path) + bar.add('/', clr, fixedsize=True, directory=path) if self.env.cf is not None: bar.add(self.env.cf.basename, 'file', fixedsize=True) diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py index c5544a47..692d06d2 100644 --- a/ranger/shared/settings.py +++ b/ranger/shared/settings.py @@ -34,6 +34,7 @@ ALLOWED_SETTINGS = { 'sort_directories_first': bool, 'update_title': bool, 'shorten_title': int, # Note: False is an instance of int + 'tilde_in_titlebar': bool, 'max_filesize_for_preview': (int, type(None)), 'max_history_size': (int, type(None)), 'scroll_offset': int, -- cgit 1.4.1-2-gfad0 From 76aee8ea8d40a52639a52bd3d6ade13d85159ca0 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:24:36 +0200 Subject: gui.bar: clean up --- ranger/gui/bar.py | 6 +----- ranger/gui/widgets/titlebar.py | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/ranger/gui/bar.py b/ranger/gui/bar.py index 0ef840a4..8b8eb33c 100644 --- a/ranger/gui/bar.py +++ b/ranger/gui/bar.py @@ -96,9 +96,6 @@ class BarSide(list): def add(self, string, *lst, **kw): cs = ColoredString(string, self.base_color_tag, *lst) cs.__dict__.update(kw) - if 'fixedsize' in kw: - kw['fixed'] = kw['fixedsize'] - del kw['fixedsize'] self.append(cs) def add_space(self, n=1): @@ -121,11 +118,10 @@ class BarSide(list): class ColoredString(object): - fixed = False - def __init__(self, string, *lst): self.string = string self.lst = lst + self.fixed = False def cut_off(self, n): n = max(n, min(len(self.string), 1)) diff --git a/ranger/gui/widgets/titlebar.py b/ranger/gui/widgets/titlebar.py index ddcd03c3..b815a07e 100644 --- a/ranger/gui/widgets/titlebar.py +++ b/ranger/gui/widgets/titlebar.py @@ -106,16 +106,16 @@ class TitleBar(Widget): else: clr = 'good' - bar.add(self.env.username, 'hostname', clr, fixedsize=True) - bar.add('@', 'hostname', clr, fixedsize=True) - bar.add(self.env.hostname, 'hostname', clr, fixedsize=True) - bar.add(':', 'hostname', clr, fixedsize=True) + bar.add(self.env.username, 'hostname', clr, fixed=True) + bar.add('@', 'hostname', clr, fixed=True) + bar.add(self.env.hostname, 'hostname', clr, fixed=True) + bar.add(':', 'hostname', clr, fixed=True) pathway = self.env.pathway if self.settings.tilde_in_titlebar and \ self.fm.env.cwd.path.startswith(self.env.home_path): pathway = pathway[self.env.home_path.count('/')+1:] - bar.add('~/', 'directory', fixedsize=True) + bar.add('~/', 'directory', fixed=True) for path in pathway: if path.islink: @@ -124,22 +124,22 @@ class TitleBar(Widget): clr = 'directory' bar.add(path.basename, clr, directory=path) - bar.add('/', clr, fixedsize=True, directory=path) + bar.add('/', clr, fixed=True, directory=path) if self.env.cf is not None: - bar.add(self.env.cf.basename, 'file', fixedsize=True) + bar.add(self.env.cf.basename, 'file', fixed=True) def _get_right_part(self, bar): kb = str(self.env.keybuffer) self.old_keybuffer = kb - bar.addright(kb, 'keybuffer', fixedsize=True) - bar.addright(' ', 'space', fixedsize=True) + bar.addright(kb, 'keybuffer', fixed=True) + bar.addright(' ', 'space', fixed=True) self.tab_width = 0 if len(self.fm.tabs) > 1: for tabname in self.fm._get_tab_list(): self.tab_width += len(str(tabname)) + 1 clr = 'good' if tabname == self.fm.current_tab else 'bad' - bar.addright(' '+str(tabname), 'tab', clr, fixedsize=True) + bar.addright(' '+str(tabname), 'tab', clr, fixed=True) def _print_result(self, result): import _curses -- cgit 1.4.1-2-gfad0 From 01e4ea98c12a28362968a8b23483d260755838e5 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:32:28 +0200 Subject: gui.bar: Fixed Zero Division Error --- ranger/gui/bar.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ranger/gui/bar.py b/ranger/gui/bar.py index 8b8eb33c..f5e34eb1 100644 --- a/ranger/gui/bar.py +++ b/ranger/gui/bar.py @@ -68,7 +68,8 @@ class Bar(object): rightsize = self.right.sumsize() nonfixed_items = self.left.nonfixed_items() - itemsize = int(float(wid - rightsize - fixedsize) / nonfixed_items) + 1 + itemsize = int(float(wid - rightsize - fixedsize) / \ + (nonfixed_items + 1)) + 1 for item in self.left: if not item.fixed: -- cgit 1.4.1-2-gfad0 From 876261b73081d9723b082a8f2798f76e3122e867 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:40:19 +0200 Subject: Don't use tab 0 by default Conflicts: ranger/defaults/keys.py --- ranger/core/actions.py | 3 +-- ranger/defaults/keys.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ranger/core/actions.py b/ranger/core/actions.py index 5daa383e..9bef8bdc 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -483,8 +483,7 @@ class Actions(EnvironmentAware, SettingsAware): self.tab_open(newtab) def tab_new(self): - for i in range(10): - i = (i + 1) % 10 + for i in range(1, 10): if not i in self.tabs: self.tab_open(i) break diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py index c4b8e198..03b7e2d3 100644 --- a/ranger/defaults/keys.py +++ b/ranger/defaults/keys.py @@ -179,7 +179,7 @@ def initialize_commands(map): map('gt', TAB, fm.tab_move(1)) map('gT', KEY_BTAB, fm.tab_move(-1)) map('gn', ctrl('N'), fm.tab_new()) - for n in range(10): + for n in range(1, 10): map('g' + str(n), fm.tab_open(n)) # ------------------------------------------------------- searching -- cgit 1.4.1-2-gfad0 From cf8b174eff6a9e016903d1071289453c8d9407d5 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 13 Apr 2010 12:41:04 +0200 Subject: Todo: closed #79 (tab 0) --- TODO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO b/TODO index d715c991..6be34f8c 100644 --- a/TODO +++ b/TODO @@ -49,7 +49,7 @@ General (X) #66 10/02/28 explain how colorschemes work (X) #70 10/03/14 mouse handler for titlebar (X) #71 10/03/21 previews: black/whitelist + read file - ( ) #79 10/04/08 tab number zero + (X) #79 10/04/08 tab number zero ( ) #80 10/04/08 when closing tabs, avoid gaps? -- cgit 1.4.1-2-gfad0