diff options
author | TingPing <tingping@tingping.se> | 2013-03-09 17:57:06 -0500 |
---|---|---|
committer | TingPing <tingping@tingping.se> | 2013-03-09 17:57:06 -0500 |
commit | 6bd96564168c66eda4d1b198e62c7bd20549205e (patch) | |
tree | 96d8e6b9024b5ea55768bc1aecee6648d22be2d4 /src/fe-gtk/userlistgui.c | |
parent | c76dedd9b9f7a15deaac01783bab2f2da225ebd6 (diff) |
Add option to color nicknames in the userlist to match the chat
Diffstat (limited to 'src/fe-gtk/userlistgui.c')
-rw-r--r-- | src/fe-gtk/userlistgui.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/fe-gtk/userlistgui.c b/src/fe-gtk/userlistgui.c index 8405695b..75281a0c 100644 --- a/src/fe-gtk/userlistgui.c +++ b/src/fe-gtk/userlistgui.c @@ -38,6 +38,7 @@ #include "../common/util.h" #include "../common/userlist.h" #include "../common/modes.h" +#include "../common/text.h" #include "../common/notify.h" #include "../common/hexchatc.h" #include "../common/fe.h" @@ -327,21 +328,21 @@ fe_userlist_rehash (session *sess, struct User *user) { GtkTreeIter *iter; int sel; - int do_away = TRUE; + int nick_color = NULL; iter = find_row (GTK_TREE_VIEW (sess->gui->user_tree), sess->res->user_model, user, &sel); if (!iter) return; - if (prefs.hex_away_size_max < 1 || !prefs.hex_away_track) - do_away = FALSE; + if (prefs.hex_away_track && prefs.hex_away_size_max && user->away) + nick_color = COL_AWAY; + else if (prefs.hex_gui_ulist_color) + nick_color = text_color_of(user->nick); gtk_list_store_set (GTK_LIST_STORE (sess->res->user_model), iter, COL_HOST, user->hostname, - COL_GDKCOLOR, (do_away) - ? (user->away ? &colors[COL_AWAY] : NULL) - : (NULL), + COL_GDKCOLOR, nick_color ? &colors[nick_color] : NULL, -1); } @@ -351,11 +352,13 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel) GtkTreeModel *model = sess->res->user_model; GdkPixbuf *pix = get_user_icon (sess->server, newuser); GtkTreeIter iter; - int do_away = TRUE; char *nick; + int nick_color = NULL; - if (prefs.hex_away_size_max < 1 || !prefs.hex_away_track) - do_away = FALSE; + if (prefs.hex_away_track && prefs.hex_away_size_max && user->away) + nick_color = COL_AWAY; + else if (prefs.hex_gui_ulist_color) + nick_color = text_color_of(newuser->nick); nick = newuser->nick; if (!prefs.hex_gui_ulist_icons) @@ -374,9 +377,7 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel) COL_NICK, nick, COL_HOST, newuser->hostname, COL_USER, newuser, - COL_GDKCOLOR, (do_away) - ? (newuser->away ? &colors[COL_AWAY] : NULL) - : (NULL), + COL_GDKCOLOR, nick_color ? &colors[nick_color] : NULL, -1); if (!prefs.hex_gui_ulist_icons) |