From 621d83a219d41ddfc8fe335f03c79d7136193920 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 9 Dec 2022 13:16:10 +0000 Subject: [PATCH] tw.view: minor fixes and cleanup --- mmgen/data/version | 2 +- mmgen/tw/view.py | 32 ++++++++++++++++++++------------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/mmgen/data/version b/mmgen/data/version index f8e317d4..0d81bdb2 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -13.3.dev28 +13.3.dev29 diff --git a/mmgen/tw/view.py b/mmgen/tw/view.py index ac758389..5084df2a 100755 --- a/mmgen/tw/view.py +++ b/mmgen/tw/view.py @@ -133,11 +133,11 @@ class TwView(MMGenObject,metaclass=AsyncInit): Minimum value for this configuration: {} """ twidth_errmsg = """ - Screen is too narrow to display the {} + Screen is too narrow to display the {} with current configuration Please resize your screen to at least {} characters and hit any key: """ theight_errmsg = """ - Terminal window is too small to display the {} + Terminal window is too small to display the {} with current configuration Please resize it to at least {} lines and hit any key: """ @@ -263,6 +263,10 @@ class TwView(MMGenObject,metaclass=AsyncInit): self.do_sort(key=sort_key,reverse=reverse_sort) + # get_data() is immediately followed by display header, and get_rpc_data() produces output, + # so add NL here (' ' required because CUR_HOME erases preceding blank lines) + msg(' ') + def filter_data(self): return self.data.copy() @@ -319,7 +323,7 @@ class TwView(MMGenObject,metaclass=AsyncInit): minw = sum(widths.values()) + sum(minws.values()) varw = sum(varws.values()) - self.min_term_width = max(self.prompt_width,minw) if interactive else minw + self.min_term_width = 40 if wide else max(self.prompt_width,minw) if interactive else minw td = self.get_term_dimensions(self.min_term_width) self.term_height = td.height self.term_width = td.width @@ -491,19 +495,22 @@ class TwView(MMGenObject,metaclass=AsyncInit): async def view_filter_and_sort(self): + def make_prompt(scroll): + if scroll: + del self.key_mappings['v'] + for k in self.scroll_keys['vi']: + assert k not in self.key_mappings, f'{k!r} is in key_mappings' + self.key_mappings.update(self.scroll_keys['vi']) + self.key_mappings.update(self.scroll_keys[g.platform]) + return self.prompt_scroll.strip() + else: + return self.prompt.strip() + from ..term import get_term,get_char,get_char_raw scroll = self.scroll = g.scroll - if scroll: - del self.key_mappings['v'] - for k in self.scroll_keys['vi']: - assert k not in self.key_mappings, f'{k!r} is in key_mappings' - self.key_mappings.update(self.scroll_keys['vi']) - self.key_mappings.update(self.scroll_keys[g.platform]) - prompt = self.prompt_scroll.strip() - else: - prompt = self.prompt.strip() + prompt = make_prompt(scroll) self.prompt_width = max(len(l) for l in prompt.split('\n')) self.prompt_height = len(prompt.split('\n')) @@ -517,6 +524,7 @@ class TwView(MMGenObject,metaclass=AsyncInit): term.register_cleanup() term.set('noecho') get_char = get_char_raw + msg_r(CUR_HOME + ERASE_ALL) while True: