diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | doc/de/autogen/user/irc_options.txt | 5 | ||||
-rw-r--r-- | doc/en/autogen/user/irc_options.txt | 5 | ||||
-rw-r--r-- | doc/fr/autogen/user/irc_options.txt | 5 | ||||
-rw-r--r-- | doc/it/autogen/user/irc_options.txt | 5 | ||||
-rw-r--r-- | po/cs.po | 6 | ||||
-rw-r--r-- | po/de.po | 6 | ||||
-rw-r--r-- | po/es.po | 6 | ||||
-rw-r--r-- | po/fr.po | 7 | ||||
-rw-r--r-- | po/hu.po | 6 | ||||
-rw-r--r-- | po/it.po | 6 | ||||
-rw-r--r-- | po/pl.po | 6 | ||||
-rw-r--r-- | po/pt_BR.po | 5 | ||||
-rw-r--r-- | po/ru.po | 6 | ||||
-rw-r--r-- | po/weechat.pot | 5 | ||||
-rw-r--r-- | src/plugins/irc/irc-config.c | 44 | ||||
-rw-r--r-- | src/plugins/irc/irc-config.h | 1 | ||||
-rw-r--r-- | src/plugins/irc/irc-nick.c | 78 | ||||
-rw-r--r-- | src/plugins/irc/irc-nick.h | 5 |
19 files changed, 169 insertions, 39 deletions
@@ -25,6 +25,7 @@ Version 0.3.5 (under dev!) * core: dynamically allocate color pairs (extended colors can be used without being added with command "/color") * core: allow background for nick colors (using ":") +* irc: add new option irc.look.color_nicks_in_nicklist * irc: fix crash when completing /part command on a non-irc buffer (bug #32402) * irc: add many missing commands for target buffer (options irc.msgbuffer.xxx) (bug #32216) diff --git a/doc/de/autogen/user/irc_options.txt b/doc/de/autogen/user/irc_options.txt index 197c39774..8850b1de8 100644 --- a/doc/de/autogen/user/irc_options.txt +++ b/doc/de/autogen/user/irc_options.txt @@ -73,6 +73,11 @@ ** Typ: Farbe ** Werte: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "%" for reverse, "_" for underline (Standardwert: `default`) +* *irc.look.color_nicks_in_nicklist* +** Beschreibung: `use nick color in nicklist` +** Typ: boolesch +** Werte: on, off (Standardwert: `off`) + * *irc.look.color_nicks_in_server_messages* ** Beschreibung: `Nutze Nick-Farbe bei Nachrichten vom Server` ** Typ: boolesch diff --git a/doc/en/autogen/user/irc_options.txt b/doc/en/autogen/user/irc_options.txt index 1f53c1ee9..d64d9cea8 100644 --- a/doc/en/autogen/user/irc_options.txt +++ b/doc/en/autogen/user/irc_options.txt @@ -73,6 +73,11 @@ ** type: color ** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "%" for reverse, "_" for underline (default value: `default`) +* *irc.look.color_nicks_in_nicklist* +** description: `use nick color in nicklist` +** type: boolean +** values: on, off (default value: `off`) + * *irc.look.color_nicks_in_server_messages* ** description: `use nick color in messages from server` ** type: boolean diff --git a/doc/fr/autogen/user/irc_options.txt b/doc/fr/autogen/user/irc_options.txt index b5d8c66d3..7b935c130 100644 --- a/doc/fr/autogen/user/irc_options.txt +++ b/doc/fr/autogen/user/irc_options.txt @@ -73,6 +73,11 @@ ** type: couleur ** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "%" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) +* *irc.look.color_nicks_in_nicklist* +** description: `utiliser la couleur du pseudo dans la liste des pseudos` +** type: booléen +** valeurs: on, off (valeur par défaut: `off`) + * *irc.look.color_nicks_in_server_messages* ** description: `utiliser la couleur du pseudo dans les messages du serveur` ** type: booléen diff --git a/doc/it/autogen/user/irc_options.txt b/doc/it/autogen/user/irc_options.txt index 67ae16091..776773635 100644 --- a/doc/it/autogen/user/irc_options.txt +++ b/doc/it/autogen/user/irc_options.txt @@ -73,6 +73,11 @@ ** tipo: colore ** valori: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "%" for reverse, "_" for underline (valore predefinito: `default`) +* *irc.look.color_nicks_in_nicklist* +** descrizione: `use nick color in nicklist` +** tipo: bool +** valori: on, off (valore predefinito: `off`) + * *irc.look.color_nicks_in_server_messages* ** descrizione: `utilizza i colori dei nick nei messaggi dal server` ** tipo: bool @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4912,6 +4912,10 @@ msgstr "%s%s: chyba při vytváření serveru \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: chyba při vytváření volby serveru \"%s\"" +#, fuzzy +msgid "use nick color in nicklist" +msgstr "barva textu pro skupiny v seznamu přezdívek" + msgid "use nick color in messages from server" msgstr "použít barvu přezdívky ve zprávách ze serveru" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-22 19:26+0100\n" "Last-Translator: Nils G.\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5106,6 +5106,10 @@ msgstr "%s%s: Fehler bei der Erstellung des Servers \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: Fehler bei der Erstellung der Server-Option \"%s\"" +#, fuzzy +msgid "use nick color in nicklist" +msgstr "Textfarbe für Gruppen in Nickliste" + msgid "use nick color in messages from server" msgstr "Nutze Nick-Farbe bei Nachrichten vom Server" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5023,6 +5023,10 @@ msgstr "%s%s: error al crear el servidor \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: error al crear la opción \"%s\" del servidor" +#, fuzzy +msgid "use nick color in nicklist" +msgstr "color para grupos en la lista de apodos" + msgid "use nick color in messages from server" msgstr "usar color del apodo en mensajes del servidor" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" -"PO-Revision-Date: 2011-02-22 19:26+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" +"PO-Revision-Date: 2011-02-23 14:24+0100\n" "Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: French\n" @@ -5017,6 +5017,9 @@ msgstr "%s%s: erreur de création du serveur \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: erreur de création de l'option serveur \"%s\"" +msgid "use nick color in nicklist" +msgstr "utiliser la couleur du pseudo dans la liste des pseudos" + msgid "use nick color in messages from server" msgstr "utiliser la couleur du pseudo dans les messages du serveur" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4593,6 +4593,10 @@ msgid "%s%s: error creating server option \"%s\"" msgstr "%s nincs elég memória az információs pult üzenethez\n" #, fuzzy +msgid "use nick color in nicklist" +msgstr "név színe" + +#, fuzzy msgid "use nick color in messages from server" msgstr "helyi idő lekérdezése a szerverről" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-22 19:26+0100\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4937,6 +4937,10 @@ msgstr "%s%s: errore durante la creazione del server \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: errore durante la creazione dell'opzione del server \"%s\"" +#, fuzzy +msgid "use nick color in nicklist" +msgstr "colore del testo per i gruppi nella lista nick" + msgid "use nick color in messages from server" msgstr "utilizza i colori dei nick nei messaggi dal server" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5003,6 +5003,10 @@ msgstr "%s%s: błąd podczas tworzenia serwera \"%s\"" msgid "%s%s: error creating server option \"%s\"" msgstr "%s%s: błąd podczas tworzenia opcji dla serwera \"%s\"" +#, fuzzy +msgid "use nick color in nicklist" +msgstr "kolor grup na liście nicków" + msgid "use nick color in messages from server" msgstr "użyj koloru nicka w wiadomościach od serwera" diff --git a/po/pt_BR.po b/po/pt_BR.po index e079823b5..6a77420cb 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:30+0100\n" "Last-Translator: Ivan Sichmann Freitas <ivansichfreitas@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4434,6 +4434,9 @@ msgstr "" msgid "%s%s: error creating server option \"%s\"" msgstr "" +msgid "use nick color in nicklist" +msgstr "" + msgid "use nick color in messages from server" msgstr "" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: 2011-02-07 17:30+0100\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4600,6 +4600,10 @@ msgid "%s%s: error creating server option \"%s\"" msgstr "%s недостаточно памяти для сообщения в строке информации\n" #, fuzzy +msgid "use nick color in nicklist" +msgstr "цвет ника" + +#, fuzzy msgid "use nick color in messages from server" msgstr "запросить местное время сервера" diff --git a/po/weechat.pot b/po/weechat.pot index ee2b187eb..4d6a76de0 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-02-22 19:27+0100\n" +"POT-Creation-Date: 2011-02-23 16:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -3901,6 +3901,9 @@ msgstr "" msgid "%s%s: error creating server option \"%s\"" msgstr "" +msgid "use nick color in nicklist" +msgstr "" + msgid "use nick color in messages from server" msgstr "" diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c index d2c7989b0..945ba6bb9 100644 --- a/src/plugins/irc/irc-config.c +++ b/src/plugins/irc/irc-config.c @@ -50,6 +50,7 @@ struct t_config_section *irc_config_section_server = NULL; /* IRC config, look section */ +struct t_config_option *irc_config_look_color_nicks_in_nicklist; struct t_config_option *irc_config_look_color_nicks_in_server_messages; struct t_config_option *irc_config_look_color_pv_nick_like_channel; struct t_config_option *irc_config_look_server_buffer; @@ -230,6 +231,41 @@ irc_config_change_nick_colors_cb (void *data, const char *option, } /* + * irc_config_change_look_color_nicks_in_nicklist: called when the + * "color nicks in nicklist" + * option is changed + */ + +void +irc_config_change_look_color_nicks_in_nicklist (void *data, + struct t_config_option *option) +{ + struct t_irc_server *ptr_server; + struct t_irc_channel *ptr_channel; + struct t_irc_nick *ptr_nick; + + /* make C compiler happy */ + (void) data; + (void) option; + + for (ptr_server = irc_servers; ptr_server; + ptr_server = ptr_server->next_server) + { + for (ptr_channel = ptr_server->channels; ptr_channel; + ptr_channel = ptr_channel->next_channel) + { + for (ptr_nick = ptr_channel->nicks; ptr_nick; + ptr_nick = ptr_nick->next_nick) + { + irc_nick_nicklist_set (ptr_channel, ptr_nick, "color", + irc_nick_get_color_for_nicklist (ptr_server, + ptr_nick)); + } + } + } +} + +/* * irc_config_change_look_server_buffer: called when the "one server buffer" * option is changed */ @@ -1765,7 +1801,13 @@ irc_config_init () weechat_config_free (irc_config_file); return 0; } - + + irc_config_look_color_nicks_in_nicklist = weechat_config_new_option ( + irc_config_file, ptr_section, + "color_nicks_in_nicklist", "boolean", + N_("use nick color in nicklist"), + NULL, 0, 0, "off", NULL, 0, NULL, NULL, + &irc_config_change_look_color_nicks_in_nicklist, NULL, NULL, NULL); irc_config_look_color_nicks_in_server_messages = weechat_config_new_option ( irc_config_file, ptr_section, "color_nicks_in_server_messages", "boolean", diff --git a/src/plugins/irc/irc-config.h b/src/plugins/irc/irc-config.h index b835f84e3..890617df3 100644 --- a/src/plugins/irc/irc-config.h +++ b/src/plugins/irc/irc-config.h @@ -75,6 +75,7 @@ extern struct t_config_section *irc_config_section_ctcp; extern struct t_config_section *irc_config_section_server_default; extern struct t_config_section *irc_config_section_server; +extern struct t_config_option *irc_config_look_color_nicks_in_nicklist; extern struct t_config_option *irc_config_look_color_nicks_in_server_messages; extern struct t_config_option *irc_config_look_color_pv_nick_like_channel; extern struct t_config_option *irc_config_look_server_buffer; diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c index 6c69386e6..5419935f0 100644 --- a/src/plugins/irc/irc-nick.c +++ b/src/plugins/irc/irc-nick.c @@ -411,6 +411,54 @@ irc_nick_get_prefix_color (struct t_irc_server *server, } /* + * irc_nick_get_prefix_color_name: return name of color with a prefix number + */ + +const char * +irc_nick_get_prefix_color_name (int prefix_color) +{ + static char *color_for_prefix[] = { + "chat", + "irc.color.nick_prefix_op", + "irc.color.nick_prefix_halfop", + "irc.color.nick_prefix_voice", + "irc.color.nick_prefix_user", + }; + + if ((prefix_color >= 0) && (prefix_color <= 4)) + return color_for_prefix[prefix_color]; + + /* no color by default (should not happen) */ + return color_for_prefix[0]; +} + +/* + * irc_nick_get_color_for_nicklist: get nick color for nicklist + */ + +const char * +irc_nick_get_color_for_nicklist (struct t_irc_server *server, + struct t_irc_nick *nick) +{ + static char *nick_color_bar_fg = "bar_fg"; + static char *nick_color_self = "weechat.color.chat_nick_self"; + static char *nick_color_away = "weechat.color.nicklist_away"; + + if (nick->away) + return nick_color_away; + + if (weechat_config_boolean(irc_config_look_color_nicks_in_nicklist)) + { + if (weechat_strcasecmp (nick->name, server->nick) == 0) + return nick_color_self; + else + return irc_nick_find_color_name (nick->name); + } + + return nick_color_bar_fg; +} + +/* * irc_nick_nicklist_add: add nick to buffer nicklist */ @@ -421,13 +469,12 @@ irc_nick_nicklist_add (struct t_irc_server *server, { int prefix_color; struct t_gui_nick_group *ptr_group; - + ptr_group = irc_nick_get_nicklist_group (server, channel->buffer, nick); prefix_color = irc_nick_get_prefix_color (server, nick); weechat_nicklist_add_nick (channel->buffer, ptr_group, nick->name, - (nick->away) ? - "weechat.color.nicklist_away" : "bar_fg", + irc_nick_get_color_for_nicklist (server, nick), nick->prefix, irc_nick_get_prefix_color_name (prefix_color), 1); @@ -470,28 +517,6 @@ irc_nick_nicklist_set (struct t_irc_channel *channel, } /* - * irc_nick_get_prefix_color_name: return name of color with a prefix number - */ - -const char * -irc_nick_get_prefix_color_name (int prefix_color) -{ - static char *color_for_prefix[] = { - "chat", - "irc.color.nick_prefix_op", - "irc.color.nick_prefix_halfop", - "irc.color.nick_prefix_voice", - "irc.color.nick_prefix_user", - }; - - if ((prefix_color >= 0) && (prefix_color <= 4)) - return color_for_prefix[prefix_color]; - - /* no color by default (should not happen) */ - return color_for_prefix[0]; -} - -/* * irc_nick_new: allocate a new nick for a channel and add it to the nick list */ @@ -769,8 +794,7 @@ irc_nick_set_away (struct t_irc_server *server, struct t_irc_channel *channel, { nick->away = is_away; irc_nick_nicklist_set (channel, nick, "color", - (nick->away) ? - "weechat.color.nicklist_away" : "bar_fg"); + irc_nick_get_color_for_nicklist (server, nick)); } } } diff --git a/src/plugins/irc/irc-nick.h b/src/plugins/irc/irc-nick.h index 53880c559..84cb61726 100644 --- a/src/plugins/irc/irc-nick.h +++ b/src/plugins/irc/irc-nick.h @@ -58,6 +58,11 @@ extern int irc_nick_has_prefix_mode (struct t_irc_server *server, extern int irc_nick_get_prefix_color (struct t_irc_server *server, struct t_irc_nick *nick); extern const char *irc_nick_get_prefix_color_name (int prefix_color); +extern const char *irc_nick_get_color_for_nicklist (struct t_irc_server *server, + struct t_irc_nick *nick); +extern void irc_nick_nicklist_set (struct t_irc_channel *channel, + struct t_irc_nick *nick, + const char *property, const char *value); extern struct t_irc_nick *irc_nick_new (struct t_irc_server *server, struct t_irc_channel *channel, const char *nickname, |