summaryrefslogtreecommitdiff
path: root/poezio/windows/info_wins.py
diff options
context:
space:
mode:
Diffstat (limited to 'poezio/windows/info_wins.py')
-rw-r--r--poezio/windows/info_wins.py40
1 files changed, 35 insertions, 5 deletions
diff --git a/poezio/windows/info_wins.py b/poezio/windows/info_wins.py
index 23d28cc1..227dc115 100644
--- a/poezio/windows/info_wins.py
+++ b/poezio/windows/info_wins.py
@@ -16,6 +16,7 @@ from poezio.config import config
from poezio.windows.base_wins import Win
from poezio.ui.funcs import truncate_nick
from poezio.theming import get_theme, to_curses_attr
+from poezio.colors import ccg_text_to_color
if TYPE_CHECKING:
from poezio.user import User
@@ -103,6 +104,9 @@ class PrivateInfoWin(InfoWin):
to_curses_attr(get_theme().COLOR_INFORMATION_BAR))
def write_room_name(self, name):
+ # TODO: autocolour this too, but we need more info about the occupant
+ # (whether we know its real jid) and the room (whether it is
+ # anonymous) to provide correct colouring.
try:
jid = JID(name)
except InvalidJID:
@@ -223,13 +227,23 @@ class ConversationInfoWin(InfoWin):
"""
Write the information about the contact
"""
- color = to_curses_attr(get_theme().COLOR_INFORMATION_BAR)
+ theme = get_theme()
+ color = to_curses_attr(theme.COLOR_INFORMATION_BAR)
+ if config.get('autocolor_tab_names') and contact is not None:
+ name_color = (
+ ccg_text_to_color(theme.ccg_palette, str(contact.bare_jid)),
+ -1,
+ theme.MODE_TAB_NAME,
+ )
+ else:
+ name_color = color
+
if not contact:
self.addstr("(contact not in roster)", color)
return
display_name = contact.name
if display_name:
- self.addstr('%s ' % (display_name), color)
+ self.addstr('%s ' % (display_name), name_color)
def write_contact_jid(self, jid):
"""
@@ -237,9 +251,17 @@ class ConversationInfoWin(InfoWin):
"""
theme = get_theme()
color = to_curses_attr(theme.COLOR_INFORMATION_BAR)
+ if config.get('autocolor_tab_names'):
+ name_color = (
+ ccg_text_to_color(theme.ccg_palette, str(contact.jid)),
+ -1,
+ theme.MODE_TAB_NAME,
+ )
+ else:
+ name_color = theme.COLOR_CONVERSATION_NAME
+
self.addstr('[', color)
- self.addstr(jid.full,
- to_curses_attr(theme.COLOR_CONVERSATION_NAME))
+ self.addstr(jid.full, to_curses_attr(name_color))
self.addstr('] ', color)
def write_chatstate(self, state):
@@ -313,9 +335,17 @@ class MucInfoWin(InfoWin):
def write_room_name(self, room):
theme = get_theme()
color = to_curses_attr(theme.COLOR_INFORMATION_BAR)
+ label_color = theme.COLOR_GROUPCHAT_NAME
+
+ if config.get('autocolor_tab_names'):
+ label_color = ccg_text_to_color(
+ theme.ccg_palette,
+ room.jid.bare,
+ ), -1, theme.MODE_TAB_NAME
+
self.addstr('[', color)
self.addstr(room.name,
- to_curses_attr(theme.COLOR_GROUPCHAT_NAME))
+ to_curses_attr(label_color))
self.addstr(']', color)
def write_participants_number(self, room):