From a03232e155e1d23269673cbcd2c9954ee9122340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Tue, 1 Apr 2014 16:00:44 +0200 Subject: [PATCH] core: add default key alt-'-' to toggle filters in current buffer (closes #17) --- ChangeLog.asciidoc | 2 + doc/de/autogen/plugin_api/hdata.txt | 1 + doc/de/autogen/user/weechat_commands.txt | 74 ++++++------- doc/de/weechat_user.de.txt | 2 + doc/en/autogen/plugin_api/hdata.txt | 1 + doc/en/autogen/user/weechat_commands.txt | 4 +- doc/en/weechat_user.en.txt | 1 + doc/fr/autogen/plugin_api/hdata.txt | 1 + doc/fr/autogen/user/weechat_commands.txt | 4 +- doc/fr/weechat_user.fr.txt | 1 + doc/it/autogen/plugin_api/hdata.txt | 1 + doc/it/autogen/user/weechat_commands.txt | 4 +- doc/it/weechat_user.it.txt | 2 + doc/ja/autogen/plugin_api/hdata.txt | 1 + doc/ja/autogen/user/weechat_commands.txt | 72 ++++++------- doc/ja/weechat_user.ja.txt | 2 + doc/pl/autogen/plugin_api/hdata.txt | 1 + doc/pl/autogen/user/weechat_commands.txt | 4 +- doc/pl/weechat_user.pl.txt | 2 + po/cs.po | 8 +- po/de.po | 10 +- po/es.po | 8 +- po/fr.po | 15 +-- po/hu.po | 8 +- po/it.po | 8 +- po/ja.po | 10 +- po/pl.po | 8 +- po/pt_BR.po | 8 +- po/ru.po | 8 +- po/tr.po | 8 +- po/weechat.pot | 8 +- src/core/wee-command.c | 129 +++++++++++++++-------- src/core/wee-upgrade.c | 11 ++ src/gui/curses/gui-curses-key.c | 1 + src/gui/gui-buffer.c | 32 ++++-- src/gui/gui-buffer.h | 1 + src/gui/gui-filter.c | 4 +- 37 files changed, 280 insertions(+), 185 deletions(-) diff --git a/ChangeLog.asciidoc b/ChangeLog.asciidoc index f5443ab1e..9321dba04 100644 --- a/ChangeLog.asciidoc +++ b/ChangeLog.asciidoc @@ -15,6 +15,8 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] == Version 0.4.4 (under dev) +* core: add default key key[alt--] (toggle filters in current buffer) + (closes #17) * core: add non-active merged buffers with activity in hotlist (if another merged buffer is zoomed) (task #12845) * core: fix refresh of bar item "buffer_zoom" on buffer switch diff --git a/doc/de/autogen/plugin_api/hdata.txt b/doc/de/autogen/plugin_api/hdata.txt index 2dc5ea51d..15e9797a6 100644 --- a/doc/de/autogen/plugin_api/hdata.txt +++ b/doc/de/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/de/autogen/user/weechat_commands.txt b/doc/de/autogen/user/weechat_commands.txt index 5c59939eb..7ae9ddb44 100644 --- a/doc/de/autogen/user/weechat_commands.txt +++ b/doc/de/autogen/user/weechat_commands.txt @@ -292,58 +292,58 @@ Beispiele (Bedingungen): ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] rename del |-all - list: alle Filter auflisten - enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert) -disable: Filter deaktivieren - toggle: Filter umschalten - name: Name des Filters - add: Filter hinzufügen - rename: benennt einen Filter um - del: Filter entfernen - -all: entfernt alle Filter - buffer: durch Kommata getrennte Liste von Buffer in denen der Filter aktiv sein soll: - - ist der vollständige Name eines Buffer inklusive seiner Erweiterung (Beispiel: "irc.freenode.#weechat") - - "*" anwenden auf alle Buffer - - beginnt ein Name mit '!' wird für diesen Buffer kein Filter genutzt - - ein Name darf mit '*' beginnen oder enden um mehrere Buffer auszuwählen - tags: durch Kommata getrennte Liste von Schlagwörtern. Zum Beispiel: "irc_join,irc_part,irc_quit" - - logisch "und": wird "+" zwischen den Tags verwendet (zum Beispiel: "nick_toto+irc_action") - - Tags können mit '*' beginnen oder enden - regex: erweiterter regulärer POSIX Ausdruck, um in einer Zeile zu suchen - - das Präfix (z.B. Nick) wird mittels '\t' von der Nachricht getrennt. Sonderzeichen wie '|' müssen mit einer Escapesequenz : '\|' eingebunden werden) - - wird ein regulärer Ausdruck mit '!' eingeleitet dann wird das übereinstimmende Ergebnis umgekehrt (nutze '\!' um mit '!' zu beginnen) - - es werden zwei reguläre Ausdrücke erstellt: Der erste für den Präfix und der zweite für die eigentliche Nachricht - - reguläre Ausdrücke unterscheiden nicht zwischen Groß- und Kleinschreibung. Um zwischen Groß- und Kleinschreibung zu unterscheiden müssen diese mit "(?-i)" eingeleitet werden. + list: list all filters + enable: enable filters (filters are enabled by default) +disable: disable filters + toggle: toggle filters + name: filter name ("@" = enable/disable all filters in current buffer) + add: add a filter + rename: rename a filter + del: delete a filter + -all: delete all filters + buffer: comma separated list of buffers where filter is active: + - this is full name including plugin (example: "irc.freenode.#weechat") + - "*" means all buffers + - a name starting with '!' is excluded + - name can start or end with '*' to match many buffers + tags: comma separated list of tags, for example "irc_join,irc_part,irc_quit" + - logical "and": use "+" between tags (for example: "nick_toto+irc_action") + - tags can start or end with '*' + regex: POSIX extended regular expression to search in line + - use '\t' to separate prefix from message, special chars like '|' must be escaped: '\|' + - if regex starts with '!', then matching result is reversed (use '\!' to start with '!') + - two regular expressions are created: one for prefix and one for message + - regex are case insensitive, they can start by "(?-i)" to become case sensitive -Mit der Tastenvoreinstellung alt+'=' kann die Filterfunktion (de-)aktiviert werden. +The default key alt+'=' toggles filtering on/off. -Die am häufigsten gebrauchten Schlagwörter lauten: - no_filter, no_highlight, no_log, log0..log9 (log Level), +Tags most commonly used: + no_filter, no_highlight, no_log, log0..log9 (log level), notify_none, notify_message, notify_private, notify_highlight, - nick_xxx (xxx ist durch den Nicknamen zu ersetzen), prefix_nick_ccc (ccc ist die Farbe mit der der Nick dargestellt wird), - irc_xxx (xxx ist durch einen IRC-Befehl/-Nummer zu ersetzen, siehe /server raw oder /debug tags) + nick_xxx (xxx is nick in message), prefix_nick_ccc (ccc is color of nick), + irc_xxx (xxx is command name or number, see /server raw or /debug tags), irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info. -Mittels "/debug tags" kann man sich die Tags jeder einzelnen Zeile darstellen zu lassen. +To see tags for lines in buffers: /debug tags -Beispiele: - aktiviert einen einfachen IRC Filter für join/part/quit/nick Nachrichten für alle Buffer: +Examples: + use IRC smart filter on all buffers: /filter add irc_smart * irc_smart_filter * - aktiviert einen einfachen IRC Filter für join/part/quit/nick Nachrichten der für alle Buffer genutzt wird, außer Buffer die "#weechat" im Namen tragen: + use IRC smart filter on all buffers except those with "#weechat" in name: /filter add irc_smart *,!*#weechat* irc_smart_filter * - filtert alle IRC join/part/quit Nachrichten: + filter all IRC join/part/quit messages: /filter add joinquit * irc_join,irc_part,irc_quit * - filtert Nicks wenn diese den Channel betreten oder durch den Befehl "/names" angezeigt werden: + filter nicks displayed when joining channels or with /names: /filter add nicks * irc_366 * - filtert Nick "toto" im IRC Channel #weechat: + filter nick "toto" on IRC channel #weechat: /filter add toto irc.freenode.#weechat nick_toto * - filtert IRC join/action Nachrichten von Nick "toto": + filter IRC join/action messages from nick "toto": /filter add toto * nick_toto+irc_join,nick_toto+irc_action * - filtert Zeilen die "weechat sucks" im IRC Channel #weechat enthalten: + filter lines containing "weechat sucks" on IRC channel #weechat: /filter add sucks irc.freenode.#weechat * weechat sucks ---- diff --git a/doc/de/weechat_user.de.txt b/doc/de/weechat_user.de.txt index fdf9b002a..53e0b92c7 100644 --- a/doc/de/weechat_user.de.txt +++ b/doc/de/weechat_user.de.txt @@ -1115,6 +1115,8 @@ Befehl festgelegt werden: | key[alt-]key[>] | springt zum nächsten besuchten Buffer | `/input jump_next_visited_buffer` | key[alt-/] | wechselt zum jeweils zuletzt angezeigten Buffern | `/input jump_last_buffer_displayed` | key[alt-=] | schaltet Filterfunktion an/aus | `/filter toggle` +// TRANSLATION MISSING +| key[alt--] | Toggle filters on/off in current buffer | `/filter toggle @` | key[alt-!] | schaltet einfachen Anzeigemodus an/aus | `/window bare` |=== diff --git a/doc/en/autogen/plugin_api/hdata.txt b/doc/en/autogen/plugin_api/hdata.txt index 39b62f78b..37bb23f4a 100644 --- a/doc/en/autogen/plugin_api/hdata.txt +++ b/doc/en/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/en/autogen/user/weechat_commands.txt b/doc/en/autogen/user/weechat_commands.txt index bb9fd6d3a..1c31b4168 100644 --- a/doc/en/autogen/user/weechat_commands.txt +++ b/doc/en/autogen/user/weechat_commands.txt @@ -292,7 +292,7 @@ Examples (conditions): ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] rename del |-all @@ -301,7 +301,7 @@ Examples (conditions): enable: enable filters (filters are enabled by default) disable: disable filters toggle: toggle filters - name: filter name + name: filter name ("@" = enable/disable all filters in current buffer) add: add a filter rename: rename a filter del: delete a filter diff --git a/doc/en/weechat_user.en.txt b/doc/en/weechat_user.en.txt index e07ac810a..5b132df61 100644 --- a/doc/en/weechat_user.en.txt +++ b/doc/en/weechat_user.en.txt @@ -1099,6 +1099,7 @@ The notify level for a buffer can be set with command `/buffer`: | key[alt-]key[>] | Switch to next buffer in list of visited buffers | `/input jump_next_visited_buffer` | key[alt-/] | Switch to last buffer displayed (before last jump to a buffer) | `/input jump_last_buffer_displayed` | key[alt-=] | Toggle filters on/off | `/filter toggle` +| key[alt--] | Toggle filters on/off in current buffer | `/filter toggle @` | key[alt-!] | Toggle bare display on/off | `/window bare` |=== diff --git a/doc/fr/autogen/plugin_api/hdata.txt b/doc/fr/autogen/plugin_api/hdata.txt index ad63d15ec..5295c815d 100644 --- a/doc/fr/autogen/plugin_api/hdata.txt +++ b/doc/fr/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/fr/autogen/user/weechat_commands.txt b/doc/fr/autogen/user/weechat_commands.txt index f211c5e93..7d8b36d0a 100644 --- a/doc/fr/autogen/user/weechat_commands.txt +++ b/doc/fr/autogen/user/weechat_commands.txt @@ -292,7 +292,7 @@ Exemples (conditions): ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] <étiquettes> rename del |-all @@ -301,7 +301,7 @@ Exemples (conditions): enable: activer les filtres (par défaut les filtres sont activés) disable: désactiver les filtres toggle: activer/désactiver les filtres - nom: nom de filtre + nom: nom de filtre ("@" = activer/désactiver tous les filtres dans le tampon courant) add: ajouter un filtre rename: renommer un filtre del: supprimer un filtre diff --git a/doc/fr/weechat_user.fr.txt b/doc/fr/weechat_user.fr.txt index 36bc67154..3d33bf42b 100644 --- a/doc/fr/weechat_user.fr.txt +++ b/doc/fr/weechat_user.fr.txt @@ -1128,6 +1128,7 @@ commande `/buffer` : | key[alt-]key[>] | Sauter au tampon suivant dans la liste des tampons visités | `/input jump_next_visited_buffer` | key[alt-/] | Sauter au dernier tampon affiché (avant le dernier saut vers un tampon) | `/input jump_last_buffer_displayed` | key[alt-=] | Activer/désactiver les filtres | `/filter toggle` +| key[alt--] | Activer/désactiver les filtres dans le tampon courant | `/filter toggle @` | key[alt-!] | Activer/désactiver le mode d'affichage dépouillé | `/window bare` |=== diff --git a/doc/it/autogen/plugin_api/hdata.txt b/doc/it/autogen/plugin_api/hdata.txt index 509f14973..73d7f8aa0 100644 --- a/doc/it/autogen/plugin_api/hdata.txt +++ b/doc/it/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/it/autogen/user/weechat_commands.txt b/doc/it/autogen/user/weechat_commands.txt index 073615125..a4cd409c1 100644 --- a/doc/it/autogen/user/weechat_commands.txt +++ b/doc/it/autogen/user/weechat_commands.txt @@ -292,7 +292,7 @@ Examples (conditions): ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] rename del |-all @@ -301,7 +301,7 @@ Examples (conditions): enable: enable filters (filters are enabled by default) disable: disable filters toggle: toggle filters - name: filter name + name: filter name ("@" = enable/disable all filters in current buffer) add: add a filter rename: rename a filter del: delete a filter diff --git a/doc/it/weechat_user.it.txt b/doc/it/weechat_user.it.txt index 07e3397df..3f8a5d750 100644 --- a/doc/it/weechat_user.it.txt +++ b/doc/it/weechat_user.it.txt @@ -1138,6 +1138,8 @@ Il livello di notifica per un buffer può essere impostato con il comando `/buff | key[alt-/] | Passa all'ultimo buffer mostrato (prima dell'ultimo passaggio ad un buffer) | `/input jump_last_buffer_displayed` | key[alt-=] | Attiva/disattiva filtri | `/filter toggle` // TRANSLATION MISSING +| key[alt--] | Toggle filters on/off in current buffer | `/filter toggle @` +// TRANSLATION MISSING | key[alt-!] | Toggle bare display on/off | `/window bare` |=== diff --git a/doc/ja/autogen/plugin_api/hdata.txt b/doc/ja/autogen/plugin_api/hdata.txt index 221148cd7..109ff2ebe 100644 --- a/doc/ja/autogen/plugin_api/hdata.txt +++ b/doc/ja/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/ja/autogen/user/weechat_commands.txt b/doc/ja/autogen/user/weechat_commands.txt index b873c9e33..11682be57 100644 --- a/doc/ja/autogen/user/weechat_commands.txt +++ b/doc/ja/autogen/user/weechat_commands.txt @@ -292,58 +292,58 @@ hdata と変数の名前については、"プラグイン API リファレン ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] rename del |-all - list: 全てのフィルタをリストアップ - enable: フィルタを有効化 (フィルタはデフォルトで有効になっています) -disable: フィルタを無効化 - toggle: フィルタの有効無効を切り替え - name: フィルタの名前 - add: フィルタを追加 - rename: フィルタをリネーム - del: フィルタを削除 - -all: 全てのフィルタを削除 - buffer: フィルタが有効化されているバッファのコンマ区切りリスト: - - これはプラグイン名を含む完全な名前です (例えば: "irc.freenode.#weechat") - - "*" は全てのバッファを意味します - - 名前が '!' から始まるものは除外されます - - 多くのバッファにマッチさせるためには名前を '*' から始めるか終わらせてください - tags: タグのコンマ区切りリスト、例えば "irc_join,irc_part,irc_quit" - - 論理積 "and": タグ同士を "+" でつなげる (例えば: "nick_toto+irc_action") - - タグの最初と最後には '*' を使うことができます - regex: 行単位検索の正規表現 - - '\t' を使うと、プレフィックスをメッセージから分離できます。'|' 等の特別な文字は '\|' のようにエスケープしなければいけません - - 正規表現の最初に '!' が含まれる場合は、マッチ結果が反転されます (最初の '!' にマッチさせたければ、'\!' を使ってください) - - 2 種類の正規表現があります: 一方はプレフィックス用、他方はメッセージ用 - - 正規表現は大文字小文字を区別しません、"(?-i)" から始まる場合は区別します + list: list all filters + enable: enable filters (filters are enabled by default) +disable: disable filters + toggle: toggle filters + name: filter name ("@" = enable/disable all filters in current buffer) + add: add a filter + rename: rename a filter + del: delete a filter + -all: delete all filters + buffer: comma separated list of buffers where filter is active: + - this is full name including plugin (example: "irc.freenode.#weechat") + - "*" means all buffers + - a name starting with '!' is excluded + - name can start or end with '*' to match many buffers + tags: comma separated list of tags, for example "irc_join,irc_part,irc_quit" + - logical "and": use "+" between tags (for example: "nick_toto+irc_action") + - tags can start or end with '*' + regex: POSIX extended regular expression to search in line + - use '\t' to separate prefix from message, special chars like '|' must be escaped: '\|' + - if regex starts with '!', then matching result is reversed (use '\!' to start with '!') + - two regular expressions are created: one for prefix and one for message + - regex are case insensitive, they can start by "(?-i)" to become case sensitive -デフォルトではキー alt+'=' でフィルタリングの on/off を切り替えられます。 +The default key alt+'=' toggles filtering on/off. -よく使われるタグ: +Tags most commonly used: no_filter, no_highlight, no_log, log0..log9 (log level), notify_none, notify_message, notify_private, notify_highlight, - nick_xxx (xxx はメッセージのニックネーム), prefix_nick_ccc (ccc はニックネームの色) - irc_xxx (xxx はコマンド名又は番号、/server raw または /debug tags で確認), + nick_xxx (xxx is nick in message), prefix_nick_ccc (ccc is color of nick), + irc_xxx (xxx is command name or number, see /server raw or /debug tags), irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info. -バッファ内でタグを見るには: /debug tags +To see tags for lines in buffers: /debug tags -例: - 全てのバッファで IRC スマートフィルタを使用: +Examples: + use IRC smart filter on all buffers: /filter add irc_smart * irc_smart_filter * - 名前に "#weechat" を含むバッファを除いた全てのバッファで IRC スマートフィルタを使用: + use IRC smart filter on all buffers except those with "#weechat" in name: /filter add irc_smart *,!*#weechat* irc_smart_filter * - 全ての IRC join/part/quit メッセージをフィルタ: + filter all IRC join/part/quit messages: /filter add joinquit * irc_join,irc_part,irc_quit * - チャンネルに入った時や /names で表示されるニックネームをフィルタ: + filter nicks displayed when joining channels or with /names: /filter add nicks * irc_366 * - IRC チャンネル #weechat で "toto" を含むニックネームをフィルタ: + filter nick "toto" on IRC channel #weechat: /filter add toto irc.freenode.#weechat nick_toto * - ニックネーム "toto" からの IRC の参加/アクションメッセージをフィルタ: + filter IRC join/action messages from nick "toto": /filter add toto * nick_toto+irc_join,nick_toto+irc_action * - IRC チャンネル #weechat で "weechat sucks" を含む行をフィルタ: + filter lines containing "weechat sucks" on IRC channel #weechat: /filter add sucks irc.freenode.#weechat * weechat sucks ---- diff --git a/doc/ja/weechat_user.ja.txt b/doc/ja/weechat_user.ja.txt index 112f408f5..885f2dc87 100644 --- a/doc/ja/weechat_user.ja.txt +++ b/doc/ja/weechat_user.ja.txt @@ -1098,6 +1098,8 @@ irc サーバ "freenode" に含まれる全てのバッファに対して設定 | key[alt-]key[>] | バッファ訪問履歴で次のバッファに移動 | `/input jump_next_visited_buffer` | key[alt-/] | 最後に表示したバッファに移動 (バッファ移動前に表示していたウィンドウ) | `/input jump_last_buffer_displayed` | key[alt-=] | フィルタの有効無効を切り替え | `/filter toggle` +// TRANSLATION MISSING +| key[alt--] | Toggle filters on/off in current buffer | `/filter toggle @` | key[alt-!] | 最小限表示の有効無効を切り替え | `/window bare` |=== diff --git a/doc/pl/autogen/plugin_api/hdata.txt b/doc/pl/autogen/plugin_api/hdata.txt index 2877400c7..116f37ded 100644 --- a/doc/pl/autogen/plugin_api/hdata.txt +++ b/doc/pl/autogen/plugin_api/hdata.txt @@ -494,6 +494,7 @@ *** 'print_hooks_enabled' (integer) *** 'day_change' (integer) *** 'clear' (integer) +*** 'filter' (integer) *** 'close_callback' (pointer) *** 'close_callback_data' (pointer) *** 'title' (string) diff --git a/doc/pl/autogen/user/weechat_commands.txt b/doc/pl/autogen/user/weechat_commands.txt index 59dd78bb1..dc4551679 100644 --- a/doc/pl/autogen/user/weechat_commands.txt +++ b/doc/pl/autogen/user/weechat_commands.txt @@ -292,7 +292,7 @@ Examples (conditions): ---- /filter list - enable|disable|toggle [] + enable|disable|toggle [|@] add [,...] rename del |-all @@ -301,7 +301,7 @@ Examples (conditions): enable: enable filters (filters are enabled by default) disable: disable filters toggle: toggle filters - name: filter name + name: filter name ("@" = enable/disable all filters in current buffer) add: add a filter rename: rename a filter del: delete a filter diff --git a/doc/pl/weechat_user.pl.txt b/doc/pl/weechat_user.pl.txt index b447de471..4d6700476 100644 --- a/doc/pl/weechat_user.pl.txt +++ b/doc/pl/weechat_user.pl.txt @@ -1109,6 +1109,8 @@ Poziom powiadomień dla bufora może zostać ustawiony za pomocą komendy `/buff | key[alt-/] | Przełącz na ostatnio wyświetlony bufor (przed ostatnią zmianą bufora) | `/input jump_last_buffer_displayed` | key[alt-=] | Włącz/wyłącz filtry | `/filter toggle` // TRANSLATION MISSING +| key[alt--] | Toggle filters on/off in current buffer | `/filter toggle @` +// TRANSLATION MISSING | key[alt-!] | Toggle bare display on/off | `/window bare` |=== diff --git a/po/cs.po b/po/cs.po index 9ded0d12f..710acf2f4 100644 --- a/po/cs.po +++ b/po/cs.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -1421,8 +1421,8 @@ msgstr "" #, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [," "...] || del |-all" @@ -1433,7 +1433,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/de.po b/po/de.po index 9d5743144..c37f612b1 100644 --- a/po/de.po +++ b/po/de.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-27 19:25+0100\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -1555,19 +1555,21 @@ msgstr "" "Filterfunktion um Nachrichten in Buffer aus- oder einzublenden, dazu können " "Schlagwörter oder reguläre Ausdrücke verwendet werden" +#, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [,...] " " || rename || del |-all" +#, fuzzy msgid "" " list: list all filters\n" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/es.po b/po/es.po index 2dc223118..053be2888 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -1459,8 +1459,8 @@ msgstr "" #, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [," "...] || del |-all" @@ -1471,7 +1471,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/fr.po b/po/fr.po index bb3c20b67..8c96140d4 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" -"PO-Revision-Date: 2014-04-01 14:26+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" +"PO-Revision-Date: 2014-04-01 15:41+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -1536,10 +1536,10 @@ msgstr "" "étiquettes ou expressions régulières" msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" -"list || enable|disable|toggle [] || add [,...] " +"list || enable|disable|toggle [|@] || add [,...] " "<étiquettes> || rename || del |-all" msgid "" @@ -1547,7 +1547,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" @@ -1606,7 +1606,8 @@ msgstr "" " enable: activer les filtres (par défaut les filtres sont activés)\n" " disable: désactiver les filtres\n" " toggle: activer/désactiver les filtres\n" -" nom: nom de filtre\n" +" nom: nom de filtre (\"@\" = activer/désactiver tous les filtres dans " +"le tampon courant)\n" " add: ajouter un filtre\n" " rename: renommer un filtre\n" " del: supprimer un filtre\n" diff --git a/po/hu.po b/po/hu.po index 218c494e6..1b345b377 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -1351,8 +1351,8 @@ msgid "" msgstr "" msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" msgid "" @@ -1360,7 +1360,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/it.po b/po/it.po index 84fc5591e..534a06ad4 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -1497,8 +1497,8 @@ msgstr "" #, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [,...] " " ] || del |-all" @@ -1509,7 +1509,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/ja.po b/po/ja.po index 67159d8a4..bc377a07f 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-29 20:07+0900\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" @@ -1492,19 +1492,21 @@ msgid "" "filter messages in buffers, to hide/show them according to tags or regex" msgstr "タグか正規表現に基づくバッファメッセージの非表示/表示" +#, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [,...] " " || rename || del |-all" +#, fuzzy msgid "" " list: list all filters\n" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/pl.po b/po/pl.po index b4818bc3b..0d41cf238 100644 --- a/po/pl.po +++ b/po/pl.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: weechat-dev \n" @@ -1522,8 +1522,8 @@ msgstr "" #, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [,...] " " || del |-all" @@ -1534,7 +1534,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index d4e346f1e..253f70c8a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Sergio Durigan Junior \n" "Language-Team: weechat-dev \n" @@ -1476,8 +1476,8 @@ msgstr "" #, fuzzy msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" "list || enable|disable|toggle [] || add [,...] " " || del |-all" @@ -1488,7 +1488,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/ru.po b/po/ru.po index 4f5f16100..a8a07061e 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -1373,8 +1373,8 @@ msgid "" msgstr "" msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" msgid "" @@ -1382,7 +1382,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/tr.po b/po/tr.po index 5ec8c7f6c..fcc064a77 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2014-03-24 14:23+0100\n" "Last-Translator: Hasan Kiran \n" "Language-Team: weechat-dev \n" @@ -1207,8 +1207,8 @@ msgid "" msgstr "" msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" msgid "" @@ -1216,7 +1216,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/po/weechat.pot b/po/weechat.pot index 80cb4c0d5..dfa52f6a7 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-04-01 14:23+0200\n" +"POT-Creation-Date: 2014-04-01 15:41+0200\n" "PO-Revision-Date: 2013-02-14 18:20+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: weechat-dev \n" @@ -1213,8 +1213,8 @@ msgid "" msgstr "" msgid "" -"list || enable|disable|toggle [] || add [,...] " -" || rename || del |-all" +"list || enable|disable|toggle [|@] || add [," +"...] || rename || del |-all" msgstr "" msgid "" @@ -1222,7 +1222,7 @@ msgid "" " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" -" name: filter name\n" +" name: filter name (\"@\" = enable/disable all filters in current buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index d33d4373f..f38477878 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -1823,7 +1823,6 @@ COMMAND_CALLBACK(filter) /* make C compiler happy */ (void) data; - (void) buffer; if ((argc == 1) || ((argc == 2) && (string_strcasecmp (argv[1], "list") == 0))) @@ -1860,26 +1859,41 @@ COMMAND_CALLBACK(filter) { if (argc > 2) { - /* enable a filter */ - ptr_filter = gui_filter_search_by_name (argv[2]); - if (ptr_filter) + if (strcmp (argv[2], "@") == 0) { - if (!ptr_filter->enabled) + /* enable filters in buffer */ + if (!buffer->filter) { - ptr_filter->enabled = 1; - gui_filter_all_buffers (); - gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER, - _("Filter \"%s\" enabled"), - ptr_filter->name); + buffer->filter = 1; + gui_filter_buffer (buffer, NULL); } } else { - gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER, - _("%sError: filter \"%s\" not found"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - argv[2]); - return WEECHAT_RC_OK; + /* enable a filter */ + ptr_filter = gui_filter_search_by_name (argv[2]); + if (ptr_filter) + { + if (!ptr_filter->enabled) + { + ptr_filter->enabled = 1; + gui_filter_all_buffers (); + gui_chat_printf_date_tags (NULL, 0, + GUI_FILTER_TAG_NO_FILTER, + _("Filter \"%s\" enabled"), + ptr_filter->name); + } + } + else + { + gui_chat_printf_date_tags (NULL, 0, + GUI_FILTER_TAG_NO_FILTER, + _("%sError: filter \"%s\" not " + "found"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + argv[2]); + return WEECHAT_RC_OK; + } } } else @@ -1900,26 +1914,41 @@ COMMAND_CALLBACK(filter) { if (argc > 2) { - /* disable a filter */ - ptr_filter = gui_filter_search_by_name (argv[2]); - if (ptr_filter) + if (strcmp (argv[2], "@") == 0) { - if (ptr_filter->enabled) + /* disable filters in buffer */ + if (buffer->filter) { - ptr_filter->enabled = 0; - gui_filter_all_buffers (); - gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER, - _("Filter \"%s\" disabled"), - ptr_filter->name); + buffer->filter = 0; + gui_filter_buffer (buffer, NULL); } } else { - gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER, - _("%sError: filter \"%s\" not found"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - argv[2]); - return WEECHAT_RC_OK; + /* disable a filter */ + ptr_filter = gui_filter_search_by_name (argv[2]); + if (ptr_filter) + { + if (ptr_filter->enabled) + { + ptr_filter->enabled = 0; + gui_filter_all_buffers (); + gui_chat_printf_date_tags (NULL, 0, + GUI_FILTER_TAG_NO_FILTER, + _("Filter \"%s\" disabled"), + ptr_filter->name); + } + } + else + { + gui_chat_printf_date_tags (NULL, 0, + GUI_FILTER_TAG_NO_FILTER, + _("%sError: filter \"%s\" not " + "found"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + argv[2]); + return WEECHAT_RC_OK; + } } } else @@ -1940,20 +1969,31 @@ COMMAND_CALLBACK(filter) { if (argc > 2) { - /* toggle a filter */ - ptr_filter = gui_filter_search_by_name (argv[2]); - if (ptr_filter) + if (strcmp (argv[2], "@") == 0) { - ptr_filter->enabled ^= 1; - gui_filter_all_buffers (); + /* toggle filters in buffer */ + buffer->filter ^= 1; + gui_filter_buffer (buffer, NULL); } else { - gui_chat_printf_date_tags (NULL, 0, GUI_FILTER_TAG_NO_FILTER, - _("%sError: filter \"%s\" not found"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - argv[2]); - return WEECHAT_RC_OK; + /* toggle a filter */ + ptr_filter = gui_filter_search_by_name (argv[2]); + if (ptr_filter) + { + ptr_filter->enabled ^= 1; + gui_filter_all_buffers (); + } + else + { + gui_chat_printf_date_tags (NULL, 0, + GUI_FILTER_TAG_NO_FILTER, + _("%sError: filter \"%s\" not " + "found"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + argv[2]); + return WEECHAT_RC_OK; + } } } else @@ -6872,7 +6912,7 @@ command_init () N_("filter messages in buffers, to hide/show them according to tags or " "regex"), N_("list" - " || enable|disable|toggle []" + " || enable|disable|toggle [|@]" " || add [,...] " " || rename " " || del |-all"), @@ -6880,7 +6920,8 @@ command_init () " enable: enable filters (filters are enabled by default)\n" "disable: disable filters\n" " toggle: toggle filters\n" - " name: filter name\n" + " name: filter name (\"@\" = enable/disable all filters in current " + "buffer)\n" " add: add a filter\n" " rename: rename a filter\n" " del: delete a filter\n" @@ -6936,9 +6977,9 @@ command_init () " filter lines containing \"weechat sucks\" on IRC channel #weechat:\n" " /filter add sucks irc.freenode.#weechat * weechat sucks"), "list" - " || enable %(filters_names)" - " || disable %(filters_names)" - " || toggle %(filters_names)" + " || enable %(filters_names)|@" + " || disable %(filters_names)|@" + " || toggle %(filters_names)|@" " || add %(filters_names) %(buffers_plugins_names)|*" " || rename %(filters_names) %(filters_names)" " || del %(filters_names)|-all", diff --git a/src/core/wee-upgrade.c b/src/core/wee-upgrade.c index ccc24ef37..0e1b6a242 100644 --- a/src/core/wee-upgrade.c +++ b/src/core/wee-upgrade.c @@ -481,6 +481,7 @@ upgrade_weechat_read_cb (void *data, { upgrade_current_buffer->day_change = 1; } + /* "clear" is in WeeChat >= 0.4.4 */ if (infolist_search_var (infolist, "clear")) { upgrade_current_buffer->clear = @@ -492,6 +493,16 @@ upgrade_weechat_read_cb (void *data, (upgrade_current_buffer->type == GUI_BUFFER_TYPE_FREE) ? 0 : 1; } + /* "filter" is in WeeChat >= 0.4.4 */ + if (infolist_search_var (infolist, "filter")) + { + upgrade_current_buffer->filter = + infolist_integer (infolist, "filter"); + } + else + { + upgrade_current_buffer->filter = 1; + } upgrade_current_buffer->nicklist_case_sensitive = infolist_integer (infolist, "nicklist_case_sensitive"); upgrade_current_buffer->nicklist_display_groups = diff --git a/src/gui/curses/gui-curses-key.c b/src/gui/curses/gui-curses-key.c index 167c821a6..d05e8d37f 100644 --- a/src/gui/curses/gui-curses-key.c +++ b/src/gui/curses/gui-curses-key.c @@ -199,6 +199,7 @@ gui_key_default_bindings (int context) BIND(/* m-w,m-s */ "meta-wmeta-s", "/window swap"); BIND(/* m-z */ "meta-z", "/window zoom"); BIND(/* m-= */ "meta-=", "/filter toggle"); + BIND(/* m-= */ "meta--", "/filter toggle @"); BIND(/* m-0 */ "meta-0", "/buffer *10"); BIND(/* m-1 */ "meta-1", "/buffer *1"); BIND(/* m-2 */ "meta-2", "/buffer *2"); diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index 81567bc5b..05bf6ce58 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -48,6 +48,7 @@ #include "gui-chat.h" #include "gui-color.h" #include "gui-completion.h" +#include "gui-filter.h" #include "gui-history.h" #include "gui-hotlist.h" #include "gui-input.h" @@ -77,7 +78,7 @@ char *gui_buffer_notify_string[GUI_BUFFER_NUM_NOTIFY] = char *gui_buffer_properties_get_integer[] = { "number", "layout_number", "layout_number_merge_order", "type", "notify", "num_displayed", "active", "zoomed", "print_hooks_enabled", "day_change", - "clear", "lines_hidden", "prefix_max_length", "time_for_each_line", + "clear", "filter", "lines_hidden", "prefix_max_length", "time_for_each_line", "nicklist", "nicklist_case_sensitive", "nicklist_max_length", "nicklist_display_groups", "nicklist_count", "nicklist_groups_count", "nicklist_nicks_count", "nicklist_visible_count", "input", @@ -97,12 +98,12 @@ char *gui_buffer_properties_get_pointer[] = NULL }; char *gui_buffer_properties_set[] = -{ "unread", "display", "print_hooks_enabled", "day_change", "clear", "number", - "name", "short_name", "type", "notify", "title", "time_for_each_line", - "nicklist", "nicklist_case_sensitive", "nicklist_display_groups", - "highlight_words", "highlight_words_add", "highlight_words_del", - "highlight_regex", "highlight_tags_restrict", "highlight_tags", - "hotlist_max_level_nicks", "hotlist_max_level_nicks_add", +{ "unread", "display", "print_hooks_enabled", "day_change", "clear", "filter", + "number", "name", "short_name", "type", "notify", "title", + "time_for_each_line", "nicklist", "nicklist_case_sensitive", + "nicklist_display_groups", "highlight_words", "highlight_words_add", + "highlight_words_del", "highlight_regex", "highlight_tags_restrict", + "highlight_tags", "hotlist_max_level_nicks", "hotlist_max_level_nicks_add", "hotlist_max_level_nicks_del", "input", "input_pos", "input_get_unknown_commands", NULL @@ -595,6 +596,7 @@ gui_buffer_new (struct t_weechat_plugin *plugin, new_buffer->print_hooks_enabled = 1; new_buffer->day_change = 1; new_buffer->clear = 1; + new_buffer->filter = 1; /* close callback */ new_buffer->close_callback = close_callback; @@ -987,6 +989,8 @@ gui_buffer_get_integer (struct t_gui_buffer *buffer, const char *property) return buffer->day_change; else if (string_strcasecmp (property, "clear") == 0) return buffer->clear; + else if (string_strcasecmp (property, "filter") == 0) + return buffer->filter; else if (string_strcasecmp (property, "lines_hidden") == 0) return buffer->lines->lines_hidden; else if (string_strcasecmp (property, "prefix_max_length") == 0) @@ -1768,6 +1772,16 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property, if (error && !error[0]) buffer->clear = (number) ? 1 : 0; } + else if (string_strcasecmp (property, "filter") == 0) + { + error = NULL; + number = strtol (value, &error, 10); + if (error && !error[0]) + { + buffer->filter = (number) ? 1 : 0; + gui_filter_buffer (buffer, NULL); + } + } else if (string_strcasecmp (property, "number") == 0) { error = NULL; @@ -3831,6 +3845,7 @@ gui_buffer_hdata_buffer_cb (void *data, const char *hdata_name) HDATA_VAR(struct t_gui_buffer, print_hooks_enabled, INTEGER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, day_change, INTEGER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, clear, INTEGER, 0, NULL, NULL); + HDATA_VAR(struct t_gui_buffer, filter, INTEGER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, close_callback, POINTER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, close_callback_data, POINTER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, title, STRING, 0, NULL, NULL); @@ -4011,6 +4026,8 @@ gui_buffer_add_to_infolist (struct t_infolist *infolist, return 0; if (!infolist_new_var_integer (ptr_item, "clear", buffer->clear)) return 0; + if (!infolist_new_var_integer (ptr_item, "filter", buffer->filter)) + return 0; if (!infolist_new_var_integer (ptr_item, "first_line_not_read", buffer->lines->first_line_not_read)) return 0; if (!infolist_new_var_integer (ptr_item, "lines_hidden", buffer->lines->lines_hidden)) @@ -4219,6 +4236,7 @@ gui_buffer_print_log () log_printf (" print_hooks_enabled . . : %d", ptr_buffer->print_hooks_enabled); log_printf (" day_change. . . . . . . : %d", ptr_buffer->day_change); log_printf (" clear . . . . . . . . . : %d", ptr_buffer->clear); + log_printf (" filter. . . . . . . . . : %d", ptr_buffer->filter); log_printf (" close_callback. . . . . : 0x%lx", ptr_buffer->close_callback); log_printf (" close_callback_data . . : 0x%lx", ptr_buffer->close_callback_data); log_printf (" title . . . . . . . . . : '%s'", ptr_buffer->title); diff --git a/src/gui/gui-buffer.h b/src/gui/gui-buffer.h index 98e6629f6..4c54c1c74 100644 --- a/src/gui/gui-buffer.h +++ b/src/gui/gui-buffer.h @@ -102,6 +102,7 @@ struct t_gui_buffer int day_change; /* 1 if "day change" displayed */ int clear; /* 1 if clear of buffer is allowed */ /* with command /buffer clear */ + int filter; /* 1 if filters enabled for buffer */ /* close callback */ int (*close_callback)(void *data, /* called when buffer is closed */ diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c index 8e57e58d9..b435e829b 100644 --- a/src/gui/gui-filter.c +++ b/src/gui/gui-filter.c @@ -61,8 +61,8 @@ gui_filter_check_line (struct t_gui_line_data *line_data) struct t_gui_filter *ptr_filter; int rc; - /* line is always displayed if filters are disabled */ - if (!gui_filters_enabled) + /* line is always displayed if filters are disabled (globally or in buffer) */ + if (!gui_filters_enabled || !line_data->buffer->filter) return 1; if (gui_line_has_tag_no_filter (line_data))