From 4b8c63d25bd76d9dfc69bfb778b2f500e0613c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Sat, 8 Sep 2018 20:21:39 +0100 Subject: Split highlight logic and UI changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maxime “pep” Buquet --- poezio/tabs/muctab.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py index 6c3ed34f..55275337 100644 --- a/poezio/tabs/muctab.py +++ b/poezio/tabs/muctab.py @@ -1251,34 +1251,37 @@ class MucTab(ChatTab): 1, self.width, self.height - 2 - self.core.information_win_size - Tab.tab_win_height(), 0) - def do_highlight(self, txt, time, nickname, corrected=False): - """ - Set the tab color and returns the nick color - """ + def is_highlight(self, txt, time, nickname, own_nick, highlight_on, + corrected=False): highlighted = False - if (not time or corrected - ) and nickname and nickname != self.own_nick and self.joined: - - if re.search(r'\b' + self.own_nick.lower() + r'\b', txt.lower()): - if self.state != 'current': - self.state = 'highlight' + if (not time or corrected) and nickname and nickname != own_nick: + if re.search(r'\b' + own_nick.lower() + r'\b', txt.lower()): highlighted = True else: - highlight_words = config.get_by_tabname( - 'highlight_on', self.general_jid) - highlight_words = highlight_words.split(':') + highlight_words = highlight_on.split(':') for word in highlight_words: if word and word.lower() in txt.lower(): - if self.state != 'current': - self.state = 'highlight' highlighted = True break - if highlighted: + return highlighted + + def do_highlight(self, txt, time, nickname, corrected=False): + """ + Set the tab color and returns the nick color + """ + own_nick = self.own_nick + highlight_on = config.get_by_tabname('highlight_on', self.general_jid) + highlighted = self.is_highlight(txt, time, nickname, own_nick, + highlight_on, corrected) + if highlighted and self.joined: + if self.state != 'current': + self.state = 'highlight' beep_on = config.get('beep_on').split() if 'highlight' in beep_on and 'message' not in beep_on: if not config.get_by_tabname('disable_beep', self.name): curses.beep() - return highlighted + return True + return False ########################## COMMANDS #################################### -- cgit v1.2.3