diff options
Diffstat (limited to 'ranger/fm.py')
-rw-r--r-- | ranger/fm.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/ranger/fm.py b/ranger/fm.py index 5abb2a8e..43319836 100644 --- a/ranger/fm.py +++ b/ranger/fm.py @@ -2,16 +2,24 @@ from ranger.actions import Actions from ranger.container import Bookmarks from ranger import __version__ -USAGE = '''%s [options] [path/filename]''' CTRL_C = 3 +TICKS_BEFORE_COLLECTING_GARBAGE = 100 class FM(Actions): def __init__(self, ui = None, bookmarks = None): + """Initialize FM.""" Actions.__init__(self) self.ui = ui + self.bookmarks = bookmarks self.apps = self.settings.apps.CustomApplications() - if bookmarks is None: + from ranger.shared import FileManagerAware + FileManagerAware.fm = self + + def initialize(self): + """If ui/bookmarks are None, they will be initialized here.""" + + if self.bookmarks is None: self.bookmarks = Bookmarks() self.bookmarks.load() @@ -19,15 +27,18 @@ class FM(Actions): self.bookmarks = bookmarks self.bookmarks.enter_dir_function = self.enter_dir - from ranger.shared import FileManagerAware - FileManagerAware.fm = self - - def loop(self): if self.ui is None: from ranger.gui.defaultui import DefaultUI self.ui = DefaultUI() self.ui.initialize() + def loop(self): + """The main loop consists of: +1. reloading bookmarks if outdated +2. drawing and finalizing ui +3. reading and handling user input +4. after X loops: collecting unused directory objects""" + self.env.enter_dir(self.env.path) gc_tick = 0 @@ -42,7 +53,7 @@ class FM(Actions): self.ui.handle_key(key) gc_tick += 1 - if gc_tick > 10: + if gc_tick > TICKS_BEFORE_COLLECTING_GARBAGE: gc_tick = 0 self.env.garbage_collect() |