about summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorhut <hut@hut.pm>2017-07-16 06:48:11 +0200
committerhut <hut@hut.pm>2017-07-16 06:50:33 +0200
commit5c0555501aeb32301dacd4bf1c973b216b207644 (patch)
treec6dc55c6d4e813b7b639ae49c194c3e688191202 /ranger
parentd7849c70acbb0704931abdb3869d961f189cb8e0 (diff)
downloadranger-5c0555501aeb32301dacd4bf1c973b216b207644.tar.gz
add "F" key to toggle new "freeze_files" option
Excerpt from man page:

Toggle "freeze_files" setting.  When active, directories and files will
not be loaded, improving performance when all the files you need are
already loaded.  This does not affect file previews, which can be
toggled with "zI".
Diffstat (limited to 'ranger')
-rw-r--r--ranger/config/rc.conf1
-rw-r--r--ranger/container/directory.py2
-rw-r--r--ranger/container/fsobject.py5
-rw-r--r--ranger/container/settings.py1
4 files changed, 8 insertions, 1 deletions
diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf
index e088b660..92428312 100644
--- a/ranger/config/rc.conf
+++ b/ranger/config/rc.conf
@@ -271,6 +271,7 @@ map     q quit
 copymap q ZZ ZQ
 
 map R     reload_cwd
+map F     set freeze_files!
 map <C-r> reset
 map <C-l> redraw_window
 map <C-c> abort
diff --git a/ranger/container/directory.py b/ranger/container/directory.py
index c73e2408..97a3f0aa 100644
--- a/ranger/container/directory.py
+++ b/ranger/container/directory.py
@@ -471,6 +471,8 @@ class Directory(  # pylint: disable=too-many-instance-attributes,too-many-public
         Use this sparingly since it takes rather long.
         """
         self.content_outdated = False
+        if self.settings.freeze_files:
+            return
 
         if not self.loading:
             if not self.loaded:
diff --git a/ranger/container/fsobject.py b/ranger/container/fsobject.py
index 121fac22..640d0c48 100644
--- a/ranger/container/fsobject.py
+++ b/ranger/container/fsobject.py
@@ -270,9 +270,12 @@ class FileSystemObject(  # pylint: disable=too-many-instance-attributes,too-many
         filesystem and caches it for later use
         """
 
+        self.loaded = True
+        if self.settings.freeze_files:
+            return
+
         self.display_data = {}
         self.fm.update_preview(self.path)
-        self.loaded = True
 
         # Get the stat object, either from preload or from [l]stat
         self.permissions = None
diff --git a/ranger/container/settings.py b/ranger/container/settings.py
index 243e1eb8..521583c4 100644
--- a/ranger/container/settings.py
+++ b/ranger/container/settings.py
@@ -41,6 +41,7 @@ ALLOWED_SETTINGS = {
     'draw_borders': bool,
     'draw_progress_bar_in_status_bar': bool,
     'flushinput': bool,
+    'freeze_files': bool,
     'global_inode_type_filter': str,
     'hidden_filter': str,
     'idle_delay': int,