From aa1ac95e57ac5230fc3742343998c0235f062f39 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Sun, 18 Apr 2010 11:33:58 -0300 Subject: [PATCH] using the (user|group|tag)_regexp --- mitterlib/ui/helpers/gtk_messagegrid.py | 24 +++++++++++++++++ mitterlib/ui/ui_pygtk.py | 35 +++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/mitterlib/ui/helpers/gtk_messagegrid.py b/mitterlib/ui/helpers/gtk_messagegrid.py index 4fc1036..c48a470 100644 --- a/mitterlib/ui/helpers/gtk_messagegrid.py +++ b/mitterlib/ui/helpers/gtk_messagegrid.py @@ -107,6 +107,9 @@ class MessageGrid(gtk.ScrolledWindow, gobject.GObject): self.avatars = avatar_cache self.link_color = '#0000ff' + self.user_color = '#00ff00' + self.tag_color = '#ff0000' + self.group_color = '#ffff00' self.unread_char = '(o)' self.favorite_char = '(F)' self.unfavorite_char = '( )' @@ -184,6 +187,27 @@ class MessageGrid(gtk.ScrolledWindow, gobject.GObject): message_values['message'] = URL_RE.sub(mask, message_values['message']) + # highlight users + user_mask = '(%s)' % (data.user_regexp) + user_re = re.compile(user_mask, re.I) + mask = r'\1' % (self.user_color) + message_values['message'] = user_re.sub(mask, + message_values['message']) + + # highlight groups + group_mask = '(%s)' % (data.group_regexp) + group_re = re.compile(group_mask, re.I) + mask = r'\1' % (self.group_color) + message_values['message'] = group_re.sub(mask, + message_values['message']) + + # highlight tags + tag_mask = '(%s)' % (data.tag_regexp) + tag_re = re.compile(tag_mask, re.I) + mask = r'\1' % (self.tag_color) + message_values['message'] = tag_re.sub(mask, + message_values['message']) + # use a different highlight for the current user # TODO: How to handle this with several networks? #message = re.sub(r'(@'+self.twitter.username+')', diff --git a/mitterlib/ui/ui_pygtk.py b/mitterlib/ui/ui_pygtk.py index da1e5b1..cdfebce 100644 --- a/mitterlib/ui/ui_pygtk.py +++ b/mitterlib/ui/ui_pygtk.py @@ -94,6 +94,10 @@ class Interface(object): # the messages grid messages = MessageGrid(self._avatars) messages.link_color = self._options[self.NAMESPACE]['link_color'] + messages.user_color = self._options[self.NAMESPACE]['user_color'] + messages.group_color = self._options[self.NAMESPACE]['group_color'] + messages.tag_color = self._options[self.NAMESPACE]['tag_color'] + messages.unread_char = self._options[self.NAMESPACE]['unread_char'] messages.favorite_char = ( self._options[self.NAMESPACE]['favorite_char']) @@ -107,6 +111,10 @@ class Interface(object): # replies grid replies = MessageGrid(self._avatars) replies.link_color = self._options[self.NAMESPACE]['link_color'] + replies.user_color = self._options[self.NAMESPACE]['user_color'] + replies.group_color = self._options[self.NAMESPACE]['group_color'] + replies.tag_color = self._options[self.NAMESPACE]['tag_color'] + replies.unread_char = self._options[self.NAMESPACE]['unread_char'] replies.favorite_char = ( self._options[self.NAMESPACE]['favorite_char']) @@ -1141,6 +1149,33 @@ class Interface(object): default='blue', conflict_group='interface', is_cmd_option=False) + options.add_option( + group=self.NAMESPACE, + option='user_color', + help='Color for usernames', + type='str', + metavar='COLOR', + default='green', + conflict_group='interface', + is_cmd_option=False) + options.add_option( + group=self.NAMESPACE, + option='group_color', + help='Color for group names', + type='str', + metavar='COLOR', + default='red', + conflict_group='interface', + is_cmd_option=False) + options.add_option( + group=self.NAMESPACE, + option='tag_color', + help='Color for tags', + type='str', + metavar='COLOR', + default='goldenrod', + conflict_group='interface', + is_cmd_option=False) options.add_option( group=self.NAMESPACE, option='spell_check',