diff options
author | Rodrigo Stuchi <rod-stuchi@users.noreply.github.com> | 2018-05-15 10:07:36 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-15 10:07:36 -0300 |
commit | c38a5c01a85f694170127756c4c34fdd19690e3f (patch) | |
tree | 84312b1448b7a00819f22956faf0613699f1b391 /ranger | |
parent | 5fcaeafa4001584211c83c5a28dc3b4bd15bdb1f (diff) | |
parent | 77471381f2f9350c87ed989ded1428712002329a (diff) | |
download | ranger-c38a5c01a85f694170127756c4c34fdd19690e3f.tar.gz |
Merge branch 'master' into yank_without_ext
Diffstat (limited to 'ranger')
-rw-r--r-- | ranger/core/actions.py | 21 | ||||
-rw-r--r-- | ranger/core/fm.py | 4 |
2 files changed, 18 insertions, 7 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py index 6bbb35aa..3e488159 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -1186,10 +1186,10 @@ class Actions( # pylint: disable=too-many-instance-attributes,too-many-public-m def tab_new(self, path=None, narg=None): if narg: return self.tab_open(narg, path) - for i in range(1, 10): - if i not in self.tabs: - return self.tab_open(i, path) - return None + i = 1 + while i in self.tabs: + i += 1 + return self.tab_open(i, path) def tab_switch(self, path, create_directory=False): """Switches to tab of given path, opening a new tab as necessary. @@ -1237,7 +1237,18 @@ class Actions( # pylint: disable=too-many-instance-attributes,too-many-public-m def get_tab_list(self): assert self.tabs, "There must be at least 1 tab at all times" - return sorted(self.tabs) + + class NaturalOrder(object): # pylint: disable=too-few-public-methods + def __init__(self, obj): + self.obj = obj + + def __lt__(self, other): + try: + return self.obj < other.obj + except TypeError: + return str(self.obj) < str(other.obj) + + return sorted(self.tabs, key=NaturalOrder) # -------------------------- # -- Overview of internals diff --git a/ranger/core/fm.py b/ranger/core/fm.py index c55a3922..d85dd48c 100644 --- a/ranger/core/fm.py +++ b/ranger/core/fm.py @@ -424,5 +424,5 @@ class FM(Actions, # pylint: disable=too-many-instance-attributes if not ranger.args.clean and self.settings.save_tabs_on_exit and len(self.tabs) > 1: with open(self.datapath('tabs'), 'a') as fobj: # Don't save active tab since launching ranger changes the active tab - fobj.write('\0'.join(v.path for t, v in self.tabs.items() - if t != self.current_tab) + '\0\0') + fobj.write('\0'.join(v.path for t, v in self.tabs.items()) + + '\0\0') |