diff options
-rw-r--r-- | poezio/core/commands.py | 28 | ||||
-rw-r--r-- | poezio/tabs/listtab.py | 1 | ||||
-rw-r--r-- | poezio/windows/data_forms.py | 8 | ||||
-rw-r--r-- | poezio/windows/inputs.py | 3 |
4 files changed, 21 insertions, 19 deletions
diff --git a/poezio/core/commands.py b/poezio/core/commands.py index dbee556f..1790cd89 100644 --- a/poezio/core/commands.py +++ b/poezio/core/commands.py @@ -188,32 +188,32 @@ class CommandCore: @command_args_parser.quoted(1) def win(self, args): """ - /win <number> + /win <number or name> """ if args is None: return self.help('win') - nb = args[0] + name = args[0] try: - nb = int(nb) + number = int(name) except ValueError: - pass - if self.core.current_tab_nb == nb: + number = -1 + if number != -1 and self.core.current_tab_nb == number: return + prev_nb = self.core.previous_tab_nb self.core.previous_tab_nb = self.core.current_tab_nb old_tab = self.core.current_tab() - if isinstance(nb, int): - if 0 <= nb < len(self.core.tabs): - if not self.core.tabs[nb]: - return - self.core.current_tab_nb = nb + if 0 <= number < len(self.core.tabs): + if not self.core.tabs[number]: + self.core.previous_tab_nb = prev_nb + return + self.core.current_tab_nb = number else: matchs = [] for tab in self.core.tabs: - for name in tab.matching_names(): - if nb.lower() in name[1].lower(): - matchs.append((name[0], tab)) - self.core.current_tab_nb = tab.nb + for tab_name in tab.matching_names(): + if name.lower() in tab_name[1].lower(): + matchs.append((tab_name[0], tab)) if not matchs: return tab = min(matchs, key=lambda m: m[0])[1] diff --git a/poezio/tabs/listtab.py b/poezio/tabs/listtab.py index 18ee1da4..ed40241b 100644 --- a/poezio/tabs/listtab.py +++ b/poezio/tabs/listtab.py @@ -32,6 +32,7 @@ class ListTab(Tab): """ Tab.__init__(self, core) self.state = 'normal' + self._error_message = '' self.name = name columns = collections.OrderedDict() for col, num in cols: diff --git a/poezio/windows/data_forms.py b/poezio/windows/data_forms.py index 54b28540..4d9eda93 100644 --- a/poezio/windows/data_forms.py +++ b/poezio/windows/data_forms.py @@ -14,7 +14,7 @@ from poezio.theming import to_curses_attr, get_theme class FieldInput(object): """ - All input type in a data form should inherite this class, + All input types in a data form should inherit this class, in addition with windows.Input or any relevant class from the 'windows' library. """ @@ -124,8 +124,10 @@ class TextMultiWin(FieldInput, Win): def __init__(self, field): FieldInput.__init__(self, field) Win.__init__(self) - self.options = field.get_value() - if not isinstance(self.options, list): + options = field.get_value() + if isinstance(self.options, list): + self.options = options + else: self.options = self.options.split('\n') if self.options else [] self.val_pos = 0 self.edition_input = None diff --git a/poezio/windows/inputs.py b/poezio/windows/inputs.py index d1716914..7e0155e1 100644 --- a/poezio/windows/inputs.py +++ b/poezio/windows/inputs.py @@ -563,6 +563,7 @@ class HistoryInput(Input): def __init__(self): Input.__init__(self) self.help_message = '' + self.histo_pos = -1 self.current_completed = '' self.key_func['^R'] = self.toggle_search self.search = False @@ -647,7 +648,6 @@ class MessageInput(HistoryInput): def __init__(self): HistoryInput.__init__(self) self.last_completion = None - self.histo_pos = -1 self.key_func["KEY_UP"] = self.key_up self.key_func["M-A"] = self.key_up self.key_func["KEY_DOWN"] = self.key_down @@ -702,7 +702,6 @@ class CommandInput(HistoryInput): self.key_func["M-A"] = self.key_up self.key_func["KEY_DOWN"] = self.key_down self.key_func["M-B"] = self.key_down - self.histo_pos = -1 def do_command(self, key, reset=True, raw=False): res = Input.do_command(self, key, reset=reset, raw=raw) |