diff options
author | hut <hut@lavabit.com> | 2009-12-13 19:42:51 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2009-12-13 19:42:51 +0100 |
commit | 1159f9ec182496ddc5324f23fb1d5eae73fe63e3 (patch) | |
tree | 02a79bdd232b7aa5f49e7ee9ec713141a4118358 /ranger | |
parent | 4c05e43d11430fbfd8a5d86ae0070e24775251b1 (diff) | |
download | ranger-1159f9ec182496ddc5324f23fb1d5eae73fe63e3.tar.gz |
updated / added tests
Diffstat (limited to 'ranger')
-rw-r--r-- | ranger/container/bookmarks.py | 4 | ||||
-rw-r--r-- | ranger/gui/defaultui.py | 6 | ||||
-rw-r--r-- | ranger/gui/displayable.py | 39 | ||||
-rw-r--r-- | ranger/gui/ui.py | 7 |
4 files changed, 36 insertions, 20 deletions
diff --git a/ranger/container/bookmarks.py b/ranger/container/bookmarks.py index bf41150c..d57ff4a9 100644 --- a/ranger/container/bookmarks.py +++ b/ranger/container/bookmarks.py @@ -1,4 +1,3 @@ -from ranger import log, trace import string import re import os @@ -112,9 +111,6 @@ Useful if two instances are running which define different bookmarks. else: real = None - log(key, current, original, real) -# trace() - if current == original and current != real: continue diff --git a/ranger/gui/defaultui.py b/ranger/gui/defaultui.py index b9758e8d..5b32690d 100644 --- a/ranger/gui/defaultui.py +++ b/ranger/gui/defaultui.py @@ -1,8 +1,8 @@ RATIO = ( 3, 3, 12, 9 ) -from ranger.gui.ui import UI as SuperClass -class DefaultUI(SuperClass): +from ranger.gui.ui import UI +class DefaultUI(UI): def setup(self): """Build up the UI by initializing widgets.""" from ranger.gui.widgets.filelistcontainer import FileListContainer @@ -20,7 +20,7 @@ class DefaultUI(SuperClass): def update_size(self): """resize all widgets""" - SuperClass.update_size(self) + UI.update_size(self) y, x = self.env.termsize self.filelist_container.resize(1, 0, y-2, x) diff --git a/ranger/gui/displayable.py b/ranger/gui/displayable.py index a19633b5..ef0260dc 100644 --- a/ranger/gui/displayable.py +++ b/ranger/gui/displayable.py @@ -6,12 +6,19 @@ class Displayable(EnvironmentAware, FileManagerAware, SettingsAware): win = None colorscheme = None - def __init__(self, win): + def __init__(self, win, env=None, fm=None, settings=None): + if env is not None: + self.env = env + if fm is not None: + self.fm = fm + if settings is not None: + self.settings = settings + self.x = 0 self.y = 0 self.wid = 0 self.hei = 0 - self.colorscheme = self.env.settings.colorscheme + self.colorscheme = self.settings.colorscheme if win is not None: self.win = win @@ -24,13 +31,11 @@ class Displayable(EnvironmentAware, FileManagerAware, SettingsAware): """Is item inside the boundaries? item can be an iterable like [y, x] or an object with x and y methods.""" try: - y, x = item - except ValueError: - return False - except TypeError: + y, x = item.y, item.x + except AttributeError: try: - y, x = item.y, item.x - except AttributeError: + y, x = item + except (ValueError, TypeError): return False return self.contains_point(y, x) @@ -93,6 +98,9 @@ Override this!""" wid = wid or maxx - x hei = hei or maxy - y + if x < 0 or y < 0: + raise OutOfBoundsException("Starting point below zero!") + if x + wid > maxx and y + hei > maxy: raise OutOfBoundsException("X and Y out of bounds!") @@ -110,7 +118,14 @@ Override this!""" class DisplayableContainer(Displayable): container = None - def __init__(self, win): + def __init__(self, win, env=None, fm=None, settings=None): + if env is not None: + self.env = env + if fm is not None: + self.fm = fm + if settings is not None: + self.settings = settings + Displayable.__init__(self, win) self.container = [] @@ -152,7 +167,7 @@ class DisplayableContainer(Displayable): def click(self, event): """Recursively called on objects in container""" focused_obj = self.get_focused_obj() - if focused_obj and focused_obj.click(key): + if focused_obj and focused_obj.click(event): return True for displayable in self.container: @@ -162,8 +177,8 @@ class DisplayableContainer(Displayable): return False - def add_obj(self, obj): - self.container.append(obj) + def add_obj(self, *objs): + self.container.extend(objs) def destroy(self): """Recursively called on objects in container""" diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py index 4b473021..3840a978 100644 --- a/ranger/gui/ui.py +++ b/ranger/gui/ui.py @@ -7,10 +7,15 @@ from ranger.container import CommandList class UI(DisplayableContainer): is_set_up = False mousemask = curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION - def __init__(self, commandlist = None): + def __init__(self, commandlist=None, env=None, fm=None): import os os.environ['ESCDELAY'] = '25' # don't know a cleaner way + if env is not None: + self.env = env + if fm is not None: + self.fm = fm + if commandlist is None: self.commandlist = CommandList() self.settings.keys.initialize_commands(self.commandlist) |