From: Christian Heller Date: Fri, 5 Sep 2025 11:52:54 +0000 (+0200) Subject: Differentiate query windows into their own chat windows subclass. X-Git-Url: https://plomlompom.com/repos/balance?a=commitdiff_plain;h=e646fdc9c40db7b6c031e32f6aa198f579718a26;p=ircplom Differentiate query windows into their own chat windows subclass. --- diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index 0b14b9c..42bd8c7 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -193,6 +193,10 @@ class _ChannelWindow(_ChatWindow): self._send_msg('PART', (self.chatname,)) +class _QueryWindow(_ChatWindow): + pass + + class _UpdatingChannel(_UpdatingNode): user_ids: tuple[str, ...] = tuple() topic: Topic = Topic() @@ -264,7 +268,7 @@ class _ClientWindowsManager: if scope == LogScope.CHAT: kwargs['win_cls'] = ( _ChannelWindow if self.db.is_chan_name(chatname) - else _ChatWindow) + else _QueryWindow) kwargs['chatname'] = chatname kwargs['get_nick_data'] = lambda: self.db.users['me'].nick win = self._tui_new_window(**kwargs) @@ -288,13 +292,12 @@ class _ClientWindowsManager: chan_names = [c for c, v in self.db.channels.items() if user_id in v.user_ids] return [w for w in self.windows - if isinstance(w, _ChatWindow) - and ((isinstance(w, _ChannelWindow) - and w.chatname in chan_names) - or (not isinstance(w, _ChannelWindow) - and w.chatname in { - self.db.users[user_id].nick, - self.db.users[user_id].prev_nick}))] + if ((isinstance(w, _ChannelWindow) + and w.chatname in chan_names) + or (isinstance(w, _QueryWindow) + and w.chatname in { + self.db.users[user_id].nick, + self.db.users[user_id].prev_nick}))] def log(self, msg: str, scope: LogScope, **kwargs) -> None: 'From parsing scope, kwargs, build prefix before sending to logger.'