diff options
Diffstat (limited to 'ranger/gui')
-rw-r--r-- | ranger/gui/defaultui.py | 7 | ||||
-rw-r--r-- | ranger/gui/widgets/console.py | 11 | ||||
-rw-r--r-- | ranger/gui/widgets/pager.py | 10 |
3 files changed, 22 insertions, 6 deletions
diff --git a/ranger/gui/defaultui.py b/ranger/gui/defaultui.py index 462d394d..717bb925 100644 --- a/ranger/gui/defaultui.py +++ b/ranger/gui/defaultui.py @@ -1,6 +1,5 @@ RATIO = ( 3, 3, 12, 9 ) -from ranger import log from ranger.gui.ui import UI class DefaultUI(UI): @@ -61,14 +60,19 @@ class DefaultUI(UI): return self.notify.display(*a, **k) def close_pager(self): + if self.console.visible: + self.console.focused = True self.pager.visible = False self.pager.focused = False self.filelist_container.visible = True def open_pager(self): + if self.console.focused: + self.console.focused = False self.pager.visible = True self.pager.focused = True self.filelist_container.visible = False + return self.pager def open_embedded_pager(self): self.filelist_container.open_pager() @@ -86,6 +90,7 @@ class DefaultUI(UI): def close_console(self): self.console.visible = False self.status.visible = True + self.close_pager() def open_pman(self): self.filelist_container.visible = False diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py index db92908b..22b9831d 100644 --- a/ranger/gui/widgets/console.py +++ b/ranger/gui/widgets/console.py @@ -245,17 +245,22 @@ class CommandConsole(ConsoleWithTab): Console.execute(self) def _get_cmd(self): + command_class = self._get_cmd_class() + if command_class: + return command_class(self.line, self.mode) + else: + return None + + def _get_cmd_class(self): try: command_name = self.line.split()[0] except IndexError: return None try: - command_class = commands.by_name[command_name] + return commands.by_name[command_name] except KeyError: return None - - return command_class(self.line, self.mode) def _get_tab(self): if ' ' in self.line: diff --git a/ranger/gui/widgets/pager.py b/ranger/gui/widgets/pager.py index c149f89a..1664cc4b 100644 --- a/ranger/gui/widgets/pager.py +++ b/ranger/gui/widgets/pager.py @@ -83,11 +83,14 @@ class Pager(Widget): cmd.execute_wrap(self) self.env.key_clear() - def set_source(self, source): + def set_source(self, source, strip=False): if self.source and self.source_is_stream: self.source.close() - if hasattr(source, '__getitem__'): + if isinstance(source, str): + self.source_is_stream = False + self.lines = source.split('\n') + elif hasattr(source, '__getitem__'): self.source_is_stream = False self.lines = source elif hasattr(source, 'readline'): @@ -98,6 +101,9 @@ class Pager(Widget): self.source_is_stream = False return False + if not self.source_is_stream and strip: + self.lines = map(lambda x: x.strip(), self.lines) + self.source = source return True |