summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tabs/muctab.py172
-rw-r--r--src/theming.py1
2 files changed, 135 insertions, 38 deletions
diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py
index a7e3f5e0..7c4ba1d0 100644
--- a/src/tabs/muctab.py
+++ b/src/tabs/muctab.py
@@ -413,16 +413,39 @@ class MucTab(ChatTab):
"""
arg = arg.strip()
msg = None
- info_col = get_theme().COLOR_INFORMATION_TEXT
if self.joined:
self.disconnect()
muc.leave_groupchat(self.core.xmpp, self.name, self.own_nick, arg)
+ info_col = dump_tuple(get_theme().COLOR_INFORMATION_TEXT)
+ char_quit = get_theme().CHAR_QUIT
+ spec_col = dump_tuple(get_theme().COLOR_QUIT_CHAR)
+
+ if config.get_by_tabname('display_user_color_in_join_part', True,
+ self.general_jid, True):
+ color = dump_tuple(get_theme().COLOR_OWN_NICK)
+ else:
+ color = 3
+
if arg:
- msg = _("\x19%(info_col)s}You left the chatroom (\x19o%(reason)s\x19%(info_col)s})" %
- {'info_col': dump_tuple(info_col), 'reason': arg })
+ msg = _('\x19%(color_spec)s}%(spec)s\x19%(info_col)s} '
+ 'You (\x19%(color)s}%(nick)s\x19%(info_col)s})'
+ ' left the chatroom'
+ ' (\x19o%(reason)s\x19%(info_col)s})') % {
+ 'info_col': info_col, 'reason': arg,
+ 'spec': char_quit, 'color': color,
+ 'color_spec': spec_col,
+ 'nick': self.own_nick,
+ }
else:
- msg = _("\x19%(info_col)s}You left the chatroom" %
- {'info_col': dump_tuple(info_col) })
+ msg = _('\x19%(color_spec)s}%(spec)s\x19%(info_col)s} '
+ 'You (\x19%(color)s}%(nick)s\x19%(info_col)s})'
+ ' left the chatroom') % {
+ 'info_col': info_col,
+ 'spec': char_quit, 'color': color,
+ 'color_spec': spec_col,
+ 'nick': self.own_nick,
+ }
+
self.add_message(msg, typ=2)
self.core.disable_private_tabs(self.name, reason=msg)
if self == self.core.current_tab():
@@ -839,23 +862,49 @@ class MucTab(ChatTab):
if self.core.current_tab() == self and self.core.status.show not in ('xa', 'away'):
self.send_chat_state('active')
new_user.color = get_theme().COLOR_OWN_NICK
- self.add_message(_("\x19%(info_col)s}Your nickname is \x19%(nick_col)s}%(nick)s") % {
- 'nick': from_nick,
- 'nick_col': dump_tuple(new_user.color),
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
+
+ if config.get_by_tabname('display_user_color_in_join_part', True,
+ self.general_jid, True):
+ color = dump_tuple(new_user.color)
+ else:
+ color = 3
+
+ info_col = dump_tuple(get_theme().COLOR_INFORMATION_TEXT)
+ warn_col = dump_tuple(get_theme().COLOR_WARNING_TEXT)
+ spec_col = dump_tuple(get_theme().COLOR_JOIN_CHAR)
+
+ self.add_message(
+ _('\x19%(color_spec)s}%(spec)s\x19%(info_col)s} You '
+ '(\x19%(nick_col)s}%(nick)s\x19%(info_col)s}) joined'
+ ' the chatroom') %
+ {
+ 'nick': from_nick,
+ 'spec': get_theme().CHAR_JOIN,
+ 'color_spec': spec_col,
+ 'nick_col': color,
+ 'info_col': info_col,
+ },
typ=2)
if '201' in status_codes:
- self.add_message('\x19%(info_col)s}Info: The room has been created' % {
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
- typ=2)
+ self.add_message(
+ _('\x19%(info_col)s}Info: The room '
+ 'has been created') %
+ {'info_col': info_col },
+ typ=0)
if '170' in status_codes:
- self.add_message('\x191}Warning: \x19%(info_col)s}this room is publicly logged' % {
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
- typ=2)
+ self.add_message(
+ _('\x19%(warn_col)s}Warning:\x19%(info_col)s}'
+ ' This room is publicly logged') %
+ { 'info_col': info_col,
+ 'warn_col': warn_col},
+ typ=0)
if '100' in status_codes:
- self.add_message('\x191}Warning: \x19%(info_col)s}This room is not anonymous.' % {
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
- typ=2)
+ self.add_message(
+ _('\x19%(warn_col)s}Warning:\x19%(info_col)s}'
+ ' This room is not anonymous.') %
+ { 'info_col': info_col,
+ 'warn_col': warn_col},
+ typ=0)
if self.core.current_tab() is not self:
self.refresh_tab_win()
self.core.current_tab().input.refresh()
@@ -906,14 +955,18 @@ class MucTab(ChatTab):
def on_non_member_kicked(self):
"""We have been kicked because the MUC is members-only"""
- self.add_message('\x19%(info_col)s}%You have been kicked because you are not a member and the room is now members-only.' % {
+ self.add_message(
+ _('\x19%(info_col)s}You have been kicked because you '
+ 'are not a member and the room is now members-only.') % {
'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
typ=2)
self.disconnect()
def on_muc_shutdown(self):
"""We have been kicked because the MUC service is shutting down"""
- self.add_message('\x19%(info_col)s}%You have been kicked because the MUC service is shutting down.' % {
+ self.add_message(
+ _('\x19%(info_col)s}You have been kicked because the'
+ ' MUC service is shutting down.') % {
'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)},
typ=2)
self.disconnect()
@@ -927,16 +980,32 @@ class MucTab(ChatTab):
self.users.append(user)
hide_exit_join = config.get_by_tabname('hide_exit_join', -1, self.general_jid, True)
if hide_exit_join != 0:
- color = dump_tuple(user.color) if config.get_by_tabname('display_user_color_in_join_part', True, self.general_jid, True) else 3
+ if config.get_by_tabname('display_user_color_in_join_part', True,
+ self.general_jid, True):
+ color = dump_tuple(user.color)
+ else:
+ color = 3
+ info_col = dump_tuple(get_theme().COLOR_INFORMATION_TEXT)
+ spec_col = dump_tuple(get_theme().COLOR_JOIN_CHAR)
+ char_join = get_theme().CHAR_JOIN
if not jid.full:
- msg = '\x194}%(spec)s \x19%(color)s}%(nick)s\x19%(info_col)s} joined the room' % {
- 'nick':from_nick, 'color':color, 'spec':get_theme().CHAR_JOIN,
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
+ msg = _('\x19%(color_spec)s}%(spec)s \x19%(color)s}%(nick)s'
+ '\x19%(info_col)s} joined the chatroom') % {
+ 'nick': from_nick, 'spec': char_join,
+ 'color': color,
+ 'info_col': info_col,
+ 'color_spec': spec_col,
+ }
else:
- msg = '\x194}%(spec)s \x19%(color)s}%(nick)s \x19%(info_col)s}(\x19%(jid_color)s}%(jid)s\x19%(info_col)s}) joined the room' % {
- 'spec':get_theme().CHAR_JOIN, 'nick':from_nick, 'color':color, 'jid':jid.full,
- 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT),
- 'jid_color': dump_tuple(get_theme().COLOR_MUC_JID)}
+ msg = _('\x19%(color_spec)s}%(spec)s \x19%(color)s}%(nick)s '
+ '\x19%(info_col)s}(\x19%(jid_color)s}%(jid)s\x19'
+ '%(info_col)s}) joined the chatroom') % {
+ 'spec': char_join, 'nick': from_nick,
+ 'color':color, 'jid':jid.full,
+ 'info_col': info_col,
+ 'jid_color': dump_tuple(get_theme().COLOR_MUC_JID),
+ 'color_spec': spec_col,
+ }
self.add_message(msg, typ=2)
self.core.on_user_rejoined_private_conversation(self.name, from_nick)
@@ -1060,17 +1129,36 @@ class MucTab(ChatTab):
self.disconnect()
self.core.disable_private_tabs(from_room)
self.refresh_tab_win()
- self.core.current_tab().input.refresh()
- self.core.doupdate()
+
hide_exit_join = max(config.get_by_tabname('hide_exit_join', -1, self.general_jid, True), -1)
if hide_exit_join == -1 or user.has_talked_since(hide_exit_join):
- color = dump_tuple(user.color) if config.get_by_tabname('display_user_color_in_join_part', True, self.general_jid, True) else 3
+ if config.get_by_tabname('display_user_color_in_join_part', True,
+ self.general_jid, True):
+ color = dump_tuple(user.color)
+ else:
+ color = 3
+ info_col = dump_tuple(get_theme().COLOR_INFORMATION_TEXT)
+ spec_col = dump_tuple(get_theme().COLOR_QUIT_CHAR)
+
if not jid.full:
- leave_msg = _('\x191}%(spec)s \x19%(color)s}%(nick)s\x19%(info_col)s} has left the room') % {'nick':from_nick, 'color':color, 'spec':get_theme().CHAR_QUIT, 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
+ leave_msg = _('\x19%(color_spec)s}%(spec)s \x19%(color)s}'
+ '%(nick)s\x19%(info_col)s} has left the chatroom') % {
+ 'nick':from_nick, 'color':color,
+ 'spec':get_theme().CHAR_QUIT,
+ 'info_col': info_col,
+ 'color_spec': spec_col}
else:
- leave_msg = _('\x191}%(spec)s \x19%(color)s}%(nick)s\x19%(info_col)s} (\x194}%(jid)s\x19%(info_col)s}) has left the room') % {'spec':get_theme().CHAR_QUIT, 'nick':from_nick, 'color':color, 'jid':jid.full, 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
+ jid_col = dump_tuple(get_theme().COLOR_MUC_JID)
+ leave_msg = _('\x19%(color_spec)s}%(spec)s \x19%(color)s}'
+ '%(nick)s\x19%(info_col)s} (\x19%(jid_col)s}'
+ '%(jid)s\x19%(info_col)s}) has left the chatroom') % {
+ 'spec':get_theme().CHAR_QUIT,
+ 'nick':from_nick, 'color':color,
+ 'jid':jid.full, 'info_col': info_col,
+ 'color_spec': spec_col,
+ 'jid_col': jid_col}
if status:
- leave_msg += ' (%s)' % status
+ leave_msg += ' (\x19o%s\x19%s})' % (status, info_col)
self.add_message(leave_msg, typ=2)
self.core.on_user_left_private_conversation(from_room, from_nick, status)
@@ -1080,12 +1168,20 @@ class MucTab(ChatTab):
"""
# build the message
display_message = False # flag to know if something significant enough
- # to be displayed has changed
- color = dump_tuple(user.color) if config.get_by_tabname('display_user_color_in_join_part', True, self.general_jid, True) else 3
+ # to be displayed has changed
+ if config.get_by_tabname('display_user_color_in_join_part', True,
+ self.general_jid, True):
+ color = dump_tuple(user.color)
+ else:
+ color = 3
if from_nick == self.own_nick:
- msg = _('\x193}You\x19%(info_col)s} changed: ') % {'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
+ msg = _('\x19%(color)s}You\x19%(info_col)s} changed: ') % {
+ 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT),
+ 'color': color}
else:
- msg = _('\x19%(color)s}%(nick)s\x19%(info_col)s} changed: ') % {'nick': from_nick, 'color': color, 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
+ msg = _('\x19%(color)s}%(nick)s\x19%(info_col)s} changed: ') % {
+ 'nick': from_nick, 'color': color,
+ 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}
if show not in SHOW_NAME:
self.core.information(_("%s from room %s sent an invalid show: %s") %\
(from_nick, from_room, show), "Warning")
diff --git a/src/theming.py b/src/theming.py
index 10844956..31208ad0 100644
--- a/src/theming.py
+++ b/src/theming.py
@@ -139,6 +139,7 @@ class Theme(object):
# Message text color
COLOR_NORMAL_TEXT = (-1, -1)
COLOR_INFORMATION_TEXT = (5, -1) # TODO
+ COLOR_WARNING_TEXT = (1, -1)
# Color of the commands in the help message
COLOR_HELP_COMMANDS = (208, -1)