From: Christian Heller Date: Thu, 10 Jul 2025 10:18:42 +0000 (+0200) Subject: Refactor prompt prefix management. X-Git-Url: https://plomlompom.com/repos/process_descriptions?a=commitdiff_plain;h=8972f6ca3f211b11bda14a07dcf0d44e10458d92;p=ircplom Refactor prompt prefix management. --- diff --git a/ircplom/tui.py b/ircplom/tui.py index 22c0ce5..c5e7491 100644 --- a/ircplom/tui.py +++ b/ircplom/tui.py @@ -197,8 +197,7 @@ class _PromptWidget(_ScrollableWidget): 'Keyboard-controlled command input field.' _y: int _width: int - _prompt: str = _PROMPT_TEMPLATE - _history_idx = 0 + _history_idx: int = 0 _input_buffer_unsafe: str _cursor_x: int @@ -246,6 +245,10 @@ class _PromptWidget(_ScrollableWidget): self._write(to_write[cursor_x_to_write + 1:]) return True + @property + def _prompt(self) -> str: + return _PROMPT_TEMPLATE + def _archive_prompt(self) -> None: self.append(self._input_buffer) self._reset_buffer('') @@ -309,7 +312,14 @@ class _PromptWidget(_ScrollableWidget): class _ConnectionPromptWidget(_PromptWidget): 'PromptWidget with attributes, methods for dealing with an IrcConnection.' - _nickname: str = '' + _nick: str = '' + _nick_confirmed: bool = False + + @property + def _prompt(self) -> str: + return ((' ' if self._nick_confirmed else '?') + + self._nick + + super()._prompt) def update_prompt(self, nick_confirmed=False, @@ -317,13 +327,9 @@ class _ConnectionPromptWidget(_PromptWidget): ) -> None: 'Update nickname-relevant knowledge to go into prompt string.' self.tainted = True - self._prompt = '' + self._nick_confirmed = nick_confirmed if nick: - self._nickname = nick - if self._nickname: - self._prompt += ' ' if nick_confirmed else '?' - self._prompt += self._nickname - self._prompt += _PROMPT_TEMPLATE + self._nick = nick class _Window(_Widget):