diff options
author | hut <hut@lavabit.com> | 2009-12-24 16:57:30 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2009-12-24 16:57:30 +0100 |
commit | ec5dfcb1cb0f549fea3ecf7b0505f02e197887b2 (patch) | |
tree | de91f673aed439c2bf509623a382c7e31bd0cce8 /ranger/fsobject/directory.py | |
parent | 2c9a912e089d8757a3cf5c8493d7ecc9147314d7 (diff) | |
download | ranger-ec5dfcb1cb0f549fea3ecf7b0505f02e197887b2.tar.gz |
random fixes
Diffstat (limited to 'ranger/fsobject/directory.py')
-rw-r--r-- | ranger/fsobject/directory.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py index 52c4cc60..461915db 100644 --- a/ranger/fsobject/directory.py +++ b/ranger/fsobject/directory.py @@ -103,11 +103,12 @@ class Directory(SuperClass, SettingsAware): return set() def load_bit_by_bit(self): - """Loads the contents of the directory. Use this sparingly since - it takes rather long. + """ + Returns a generator which load a part of the directory + in each iteration. """ - log("generating loader for " + self.path + "(" + str(id(self)) + ")") +# log("generating loader for " + self.path + "(" + str(id(self)) + ")") from os.path import join, isdir, basename from os import listdir @@ -154,6 +155,7 @@ class Directory(SuperClass, SettingsAware): self.mark_item(item, False) self.old_directories_first = None + self.sort() if len(self.files) > 0: if self.pointed_file is not None: @@ -264,9 +266,11 @@ class Directory(SuperClass, SettingsAware): for f in self.files: if f.path == path: self.move_pointer(absolute = i) + self.correct_pointer() return True i += 1 - return False + + return self.move_pointer(absolute=self.pointed_index) def search(self, arg, direction = 1): """Search for a regular expression""" @@ -314,7 +318,7 @@ class Directory(SuperClass, 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.content_loaded and not self.loading: self.load_content(*a, **k) return True return False @@ -332,7 +336,10 @@ class Directory(SuperClass, SettingsAware): return True import os - real_mtime = os.lstat(self.path).st_mtime + try: + real_mtime = os.lstat(self.path).st_mtime + except OSError: + real_mtime = None cached_mtime = self.stat.st_mtime if real_mtime != cached_mtime: |