diff options
author | hut <hut@lavabit.com> | 2009-12-25 06:33:54 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2009-12-25 06:33:54 +0100 |
commit | 7fe6d250b44c1f06d4b578b8cdbd4fb055dedc28 (patch) | |
tree | 93563cb9ea8cc34612fb0f306d13fbb01c7dea51 /ranger/fsobject/directory.py | |
parent | fd04cd6f354d7b6abdf55998253ff9a0ab55ecb2 (diff) | |
download | ranger-7fe6d250b44c1f06d4b578b8cdbd4fb055dedc28.tar.gz |
schedule loading of directories whereever possible
Diffstat (limited to 'ranger/fsobject/directory.py')
-rw-r--r-- | ranger/fsobject/directory.py | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py index f5aeade4..136752f8 100644 --- a/ranger/fsobject/directory.py +++ b/ranger/fsobject/directory.py @@ -170,32 +170,33 @@ class Directory(FileSystemObject, SettingsAware): self.loading = False self.load_generator = None - def load_content(self, schedule=False): + def load_content(self, schedule=None): """ Loads the contents of the directory. Use this sparingly since it takes rather long. """ - self.load_once() - - if schedule is None: - schedule = self.size > 30 + if not self.loading: + self.load_once() + + if schedule is None: + schedule = self.size > 30 + + if self.load_generator is None: + self.load_generator = self.load_bit_by_bit() - if self.load_generator is None: - self.load_generator = self.load_bit_by_bit() + if schedule and self.fm: + self.fm.loader.add(self) + else: + for _ in self.load_generator: + pass + self.load_generator = None - if schedule and self.fm: - self.fm.loader.add(self) - else: + elif not schedule or not self.fm: for _ in self.load_generator: pass self.load_generator = None - elif not schedule or not self.fm: - for _ in self.load_generator: - pass - self.load_generator = None - def sort(self): """Sort the containing files""" @@ -322,8 +323,7 @@ class Directory(FileSystemObject, SettingsAware): def load_content_once(self, *a, **k): """Load the contents of the directory if not done yet""" if not self.content_loaded: - if not self.loading: - self.load_content(*a, **k) + self.load_content(*a, **k) return True return False @@ -351,7 +351,7 @@ class Directory(FileSystemObject, SettingsAware): cached_mtime = 0 if real_mtime != cached_mtime: - self.load_content() + self.load_content(*a, **k) return True return False |