From ff578e3a0e87d8cc564e994eb99a2c7620ba365a Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 7 Dec 2022 10:40:55 +0000 Subject: [PATCH] tw.view: get_term_columns() -> get_term_dimensions() --- mmgen/tw/view.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/mmgen/tw/view.py b/mmgen/tw/view.py index 66383b9c..b01c0345 100755 --- a/mmgen/tw/view.py +++ b/mmgen/tw/view.py @@ -71,6 +71,8 @@ class TwView(MMGenObject,metaclass=AsyncInit): txid_w = 64 sort_key = 'age' _display_data = {} + term_height = 0 + term_width = 0 filters = () fp = namedtuple('fs_params',['fs_key','hdr_fs_repl','fs_repl','hdr_fs','fs']) @@ -217,19 +219,20 @@ class TwView(MMGenObject,metaclass=AsyncInit): def filter_data(self): return self.data.copy() - def get_term_columns(self,min_cols): - from ..term import get_terminal_size,get_char_raw + def get_term_dimensions(self,min_cols): + from ..term import get_terminal_size,get_char_raw,_term_dimensions while True: - cols = g.columns or get_terminal_size().width + ts = get_terminal_size() + cols = g.columns or ts.width if cols >= min_cols: - return cols + return _term_dimensions(cols,ts.height) if sys.stdout.isatty(): if g.columns: die(1,'\n'+fmt(self.tcols_errmsg.format(g.columns,self.desc,min_cols),indent=' ')) else: get_char_raw('\n'+fmt(self.twidth_errmsg.format(self.desc,min_cols),append='')) else: - return min_cols + return _term_dimensions(min_cols,ts.height) def compute_column_widths(self,widths,maxws,minws,maxws_nice={},wide=False): @@ -259,17 +262,17 @@ class TwView(MMGenObject,metaclass=AsyncInit): else: return {k:0 for k in varws} - if wide: - return do_ret_max() - varws = {k:maxws[k] - minws[k] for k in maxws if maxws[k] > minws[k]} minw = sum(widths.values()) + sum(minws.values()) varw = sum(varws.values()) - term_cols = self.get_term_columns(minw) - self.cols = min(term_cols,minw + varw) + td = self.get_term_dimensions(minw) + self.term_height = td.height + self.term_width = td.width - if self.cols == minw + varw: + self.cols = min(self.term_width,minw + varw) + + if wide or self.cols == minw + varw: return do_ret_max() if maxws_nice: @@ -277,7 +280,7 @@ class TwView(MMGenObject,metaclass=AsyncInit): varws_hp = {k: maxws_nice[k] - minws[k] if k in maxws_nice else varws[k] for k in varws} varw_hp = sum(varws_hp.values()) widths_hp = get_freews( - min(term_cols,minw + varw_hp), + min(self.term_width,minw + varw_hp), varws_hp, varw_hp, minw )