Merge pull request #445 from TingPing/ulistcolors
Add option to color nicknames in the userlist to match the chat
This commit is contained in:
@ -287,6 +287,7 @@ static const setting userlist_settings[] =
|
||||
{ST_TOGGLE, N_("Show hostnames in user list"), P_OFFINTNL(hex_gui_ulist_show_hosts), 0, 0, 0},
|
||||
{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(hex_gui_ulist_style),0,0,0},
|
||||
{ST_TOGGLE, N_("Show icons for user modes"), P_OFFINTNL(hex_gui_ulist_icons), N_("Use graphical icons instead of text symbols in the user list."), 0, 0},
|
||||
{ST_TOGGLE, N_("Color nicknames in userlist"), P_OFFINTNL(hex_gui_ulist_color), N_("Will color nicknames the same as in chat."), 0, 0},
|
||||
{ST_TOGGLE, N_("Show user count in channels"), P_OFFINTNL(hex_gui_ulist_count), 0, 0, 0},
|
||||
/* {ST_TOGGLE, N_("Resizable user list"), P_OFFINTNL(hex_gui_ulist_resizable),0,0,0},*/
|
||||
{ST_MENU, N_("User list sorted by:"), P_OFFINTNL(hex_gui_ulist_sort), 0, ulmenutext, 0},
|
||||
@ -2262,7 +2263,7 @@ setup_apply (struct hexchatprefs *pr)
|
||||
if (DIFF (hex_gui_tab_layout))
|
||||
do_layout = TRUE;
|
||||
|
||||
if (color_change || (DIFF (hex_away_size_max)) || (DIFF (hex_away_track)))
|
||||
if (color_change || (DIFF (hex_gui_ulist_color)) || (DIFF (hex_away_size_max)) || (DIFF (hex_away_track)))
|
||||
do_ulist = TRUE;
|
||||
|
||||
if ((pr->hex_gui_tab_pos == 5 || pr->hex_gui_tab_pos == 6) &&
|
||||
|
@ -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 && newuser->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)
|
||||
|
Reference in New Issue
Block a user