diff options
32 files changed, 503 insertions, 338 deletions
diff --git a/ChangeLog.asciidoc b/ChangeLog.asciidoc index fa8c0d67e..30b80da93 100644 --- a/ChangeLog.asciidoc +++ b/ChangeLog.asciidoc @@ -17,6 +17,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] === New features +* core: check bar conditions in root bars and on each update of a bar item * core: fully evaluate commands bound to keys in cursor and mouse contexts * core: add option weechat.completion.command_inline (task #12491) * core: add bar item "mouse_status", new options weechat.look.item_mouse_status diff --git a/doc/de/autogen/user/weechat_commands.asciidoc b/doc/de/autogen/user/weechat_commands.asciidoc index 612e671cf..5edd49d32 100644 --- a/doc/de/autogen/user/weechat_commands.asciidoc +++ b/doc/de/autogen/user/weechat_commands.asciidoc @@ -13,50 +13,50 @@ message: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der Abwesenheit ---- /bar list|listfull|listitems - add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...] + add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...] default [input|title|status|nicklist] del <name>|-all set <name> <option> <value> hide|show|toggle <name> scroll <name> <window> <scroll_value> - list: zeigt alle Infobars an - listfull: zeigt eine detaillierte Liste aller Infobars an (ausführlich) - listitems: zeigt alle Items an, die in den Infobars genutzt werden - add: füge eine neue Infobar hinzu - name: Name der Infobar (muss einmalig sein) - type: root: außerhalb eines Fensters, - window: innerhalb eines Fensters, mit optionalen Merkmalen (siehe unten) - condition: Merkmal(e) für eine Infobar (nur nutzbar mit Bars vom Typ "window"): - active: in einem aktiven Fenster - inactive: in einem inaktiven Fenster - nicklist: in Fenstern mit einer Benutzerliste - weitere Merkmale: siehe /help weechat.bar.xxx.conditions und /help eval - ohne Angabe von Merkmalen wird die Infobar immer angezeigt - position: bottom (unten), top (oben), left (links) oder right (rechts) - size: Größe der Infobar (in Zeichen) - separator: 1 um eine Trennlinien zu zeichnen, bei 0 oder ohne eine Angabe, wird keine Trennlinien gezeichnet - item1,...: Items die in der Infobar genutzt werden sollen (Items können durch Kommata oder Leerzeichen getrennt werden ("+" (verbindet Items)) - default: erstellt standardisierte Infobars - del: entfernt eine Infobar (alle Infobars können mit dem Argument "-all" entfernt werden). - set: setzt einen Wert für Infobar - option: Option die verändert werden soll (für eine Liste aller möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*) - value: neuer Wert für Option - hide: Infobar wird ausgeblendet - show: zeigt eine ausgeblendete Infobar an - toggle: zeigt/versteckt eine Infobar - scroll: scrollt Infobar hoch/runter - window: Nummer des Fensters (nutze '*' für aktuelles Fenster oder für die Root-Bars) - scroll_value: Werte für Scroll-Funktion: 'x' oder 'y' (optional), gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und optional % (zum scrollen der Breite/Höhe in %, ansonsten wird dieser Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll) - -Beispiele: - erstellt eine Infobar mit den Items: time, buffer number + name, und Vervollständigung: + list: list all bars + listfull: list all bars (verbose) + listitems: list all bar items + add: add a new bar + name: name of bar (must be unique) + type: root: outside windows, + window: inside windows, with optional conditions (see below) + conditions: the conditions to display the bar: + active: on active window + inactive: on inactive windows + nicklist: on windows with nicklist + other condition: see /help weechat.bar.xxx.conditions and /help eval + without conditions, the bar is always displayed + position: bottom, top, left or right + size: size of bar (in chars) + separator: 1 for using separator (line), 0 or nothing means no separator + item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items)) + default: create a default bar (all default bars if no bar name is given) + del: delete a bar (or all bars with -all) + set: set a value for a bar property + option: option to change (for options list, look at /set weechat.bar.<barname>.*) + value: new value for option + hide: hide a bar + show: show an hidden bar + toggle: hide/show a bar + scroll: scroll bar + window: window number (use '*' for current window or for root bars) + scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars) + +Examples: + create a bar with time, buffer number + name, and completion: /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion - versteckt die Infobar (meinebar): - /bar hide meinebar - scrollt die Benutzerliste im aktuellen Buffer um 10 Zeilen nach unten: + hide a bar: + /bar hide mybar + scroll nicklist 10 lines down on current buffer: /bar scroll nicklist * y+10 - scrollt zum Ende der Nicklist im aktuellen Buffer: + scroll to end of nicklist on current buffer: /bar scroll nicklist * ye ---- diff --git a/doc/de/weechat_user.de.asciidoc b/doc/de/weechat_user.de.asciidoc index 61ba38973..cdf88324a 100644 --- a/doc/de/weechat_user.de.asciidoc +++ b/doc/de/weechat_user.de.asciidoc @@ -861,9 +861,9 @@ Einige Beispiele, wie die Bar 'nicklist' dargestellt werden kann: [[bar_conditions]] ==== Bedingungen -Die Option 'conditions' ist eine Zeichenkette die direkten Einfluss darauf -nimmt, ob die Bar in einem Fenster dargestellt wird oder nicht (diese Option -kann nur für Bars vom Typ 'window' genutzt werden). +// TRANSLATION MISSING +The option 'conditions' is a string evaluated to know if the bar is displayed +or not. Folgende Zeichenketten sind möglich: diff --git a/doc/en/autogen/user/weechat_commands.asciidoc b/doc/en/autogen/user/weechat_commands.asciidoc index 0cab07924..70ef1878a 100644 --- a/doc/en/autogen/user/weechat_commands.asciidoc +++ b/doc/en/autogen/user/weechat_commands.asciidoc @@ -13,7 +13,7 @@ message: message for away (if no message is given, away status is removed) ---- /bar list|listfull|listitems - add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...] + add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...] default [input|title|status|nicklist] del <name>|-all set <name> <option> <value> @@ -27,12 +27,12 @@ message: message for away (if no message is given, away status is removed) name: name of bar (must be unique) type: root: outside windows, window: inside windows, with optional conditions (see below) - condition: condition(s) for displaying bar (only for type "window"): + conditions: the conditions to display the bar: active: on active window inactive: on inactive windows nicklist: on windows with nicklist other condition: see /help weechat.bar.xxx.conditions and /help eval - without condition, the bar is always displayed + without conditions, the bar is always displayed position: bottom, top, left or right size: size of bar (in chars) separator: 1 for using separator (line), 0 or nothing means no separator diff --git a/doc/en/weechat_user.en.asciidoc b/doc/en/weechat_user.en.asciidoc index ee454ea92..1f9ae5099 100644 --- a/doc/en/weechat_user.en.asciidoc +++ b/doc/en/weechat_user.en.asciidoc @@ -855,7 +855,7 @@ Some examples of filling for bar 'nicklist': ==== Conditions The option 'conditions' is a string evaluated to know if the bar is displayed -or not in the window (it is used only for bars with type 'window'). +or not. The string can be: diff --git a/doc/fr/autogen/user/weechat_commands.asciidoc b/doc/fr/autogen/user/weechat_commands.asciidoc index d43f2443a..e254338bb 100644 --- a/doc/fr/autogen/user/weechat_commands.asciidoc +++ b/doc/fr/autogen/user/weechat_commands.asciidoc @@ -27,7 +27,7 @@ message : message pour l'absence (si pas de message donné, le statut d'absence nom : nom de la barre (doit être unique) type : root : en dehors des fenêtres window : dans les fenêtres, avec condition(s) optionnelle(s) (voir ci-dessous) - condition : condition(s) pour afficher cette barre (seulement pour le type "window") : + conditions : les conditions pour afficher la barre : active : sur la fenêtre active inactive : sur les fenêtres inactives nicklist : sur les fenêtres avec liste de pseudos diff --git a/doc/fr/weechat_user.fr.asciidoc b/doc/fr/weechat_user.fr.asciidoc index 174dbcfae..c047d5e13 100644 --- a/doc/fr/weechat_user.fr.asciidoc +++ b/doc/fr/weechat_user.fr.asciidoc @@ -877,8 +877,7 @@ Quelques exemples de remplissage pour la barre 'nicklist' : ==== Conditions L'option 'conditions' est une chaîne évaluée pour savoir si la barre doit être -affichée ou non dans la fenêtre (elle est utilisée seulement pour les barres -avec type 'window'). +affichée ou non. La chaîne peut être : diff --git a/doc/it/autogen/user/weechat_commands.asciidoc b/doc/it/autogen/user/weechat_commands.asciidoc index 0fd27d73c..72050cfcb 100644 --- a/doc/it/autogen/user/weechat_commands.asciidoc +++ b/doc/it/autogen/user/weechat_commands.asciidoc @@ -13,12 +13,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r ---- /bar list|listfull|listitems - add <nome> <type>[,<condizione>] <posizione> <dimensione> <separatore> <item1>[,<item2>...] + add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...] default [input|title|status|nicklist] - del <nome>|-all - set <nome> <opzione> <valore> - hide|show|toggle <nome> - scroll <nome> <finestra> <scroll_value> + del <name>|-all + set <name> <option> <value> + hide|show|toggle <name> + scroll <name> <window> <scroll_value> list: list all bars listfull: list all bars (verbose) @@ -27,12 +27,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r name: name of bar (must be unique) type: root: outside windows, window: inside windows, with optional conditions (see below) - condition: condition(s) for displaying bar (only for type "window"): + conditions: the conditions to display the bar: active: on active window inactive: on inactive windows nicklist: on windows with nicklist other condition: see /help weechat.bar.xxx.conditions and /help eval - without condition, the bar is always displayed + without conditions, the bar is always displayed position: bottom, top, left or right size: size of bar (in chars) separator: 1 for using separator (line), 0 or nothing means no separator diff --git a/doc/it/weechat_user.it.asciidoc b/doc/it/weechat_user.it.asciidoc index 90536044b..c9f126ed0 100644 --- a/doc/it/weechat_user.it.asciidoc +++ b/doc/it/weechat_user.it.asciidoc @@ -895,8 +895,9 @@ Some examples of filling for bar 'nicklist': [[bar_conditions]] ==== Conditions +// TRANSLATION MISSING The option 'conditions' is a string evaluated to know if the bar is displayed -or not in the window (it is used only for bars with type 'window'). +or not. The string can be: diff --git a/doc/ja/autogen/user/weechat_commands.asciidoc b/doc/ja/autogen/user/weechat_commands.asciidoc index 361d59e42..3ff776b4c 100644 --- a/doc/ja/autogen/user/weechat_commands.asciidoc +++ b/doc/ja/autogen/user/weechat_commands.asciidoc @@ -13,50 +13,50 @@ message: 離席メッセージ (メッセージが無い場合は、離席状態 ---- /bar list|listfull|listitems - add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...] + add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...] default [input|title|status|nicklist] del <name>|-all set <name> <option> <value> hide|show|toggle <name> scroll <name> <window> <scroll_value> - list: 全てのバーをリストアップ - listfull: 全てのバーをリストアップ (詳細) - listitems: 全てのバーアイテムをリストアップ - add: 新しいバーを追加 - name: バーの名称 (ユニークな) - type: root: 外側のウィンドウ、 - window: 内側のウィンドウ、任意の状態を取れる (以下を参照) - condition: バーの表示状態 (タイプが "window" のバー以外は無効): - active: アクティブウィンドウに表示 - inactive: 非アクティブウィンドウに表示 - nicklist: ニックネームリストを持つウィンドウに表示 - その他の状態: /help weechat.bar.xxx.conditions と /help eval を参照してください - 表示状態の指定が無ければ、バーは常に表示されます。 - position: bottom、top、left、right - size: バーのサイズ (文字数で指定) - separator: 1 はセパレータ (線) を使用、0 または指定無しはセパレータ無し - item1,...: バーのアイテム (アイテムはコンマ (アイテム間にスペース) または "+" (アイテム間にスペース無し) で区切ります) - default: デフォルトバーを作成 (バーの名前が無ければ全てのデフォルトバーが作成されます) - del: バーを削除 (-all を付ければ全てのバーを削除) - set: バー属性に値を設定 - option: 変更するオプション (オプション一覧は /set weechat.bar.<barname>.* を参照) - value: オプションの新しい値 - hide: バーを隠す - show: 隠されたバーを表示 - toggle: バーの非表示/表示を切り替え - scroll: バーをスクロール - window: ウィンドウ番号 (現在のウィンドウかルートバーを指定するには '*' を使う) - scroll_value: スクロールする量: 'x' または 'y' (任意)の後に、'+' か '-' か 'b' (最初) か 'e' (最後)の後に、値 (+/- を付けて)、任意で % (スクロールする幅/高さの割合、% が無ければ値は文字数と解釈されます) - -例: - 時間、バー番号 + 名前、補完候補からなるバーを作成: + list: list all bars + listfull: list all bars (verbose) + listitems: list all bar items + add: add a new bar + name: name of bar (must be unique) + type: root: outside windows, + window: inside windows, with optional conditions (see below) + conditions: the conditions to display the bar: + active: on active window + inactive: on inactive windows + nicklist: on windows with nicklist + other condition: see /help weechat.bar.xxx.conditions and /help eval + without conditions, the bar is always displayed + position: bottom, top, left or right + size: size of bar (in chars) + separator: 1 for using separator (line), 0 or nothing means no separator + item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items)) + default: create a default bar (all default bars if no bar name is given) + del: delete a bar (or all bars with -all) + set: set a value for a bar property + option: option to change (for options list, look at /set weechat.bar.<barname>.*) + value: new value for option + hide: hide a bar + show: show an hidden bar + toggle: hide/show a bar + scroll: scroll bar + window: window number (use '*' for current window or for root bars) + scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars) + +Examples: + create a bar with time, buffer number + name, and completion: /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion - バーを隠す: + hide a bar: /bar hide mybar - 現在のバッファに対応したニックネームリストを 10 行分、下方向にスクロール: + scroll nicklist 10 lines down on current buffer: /bar scroll nicklist * y+10 - 現在のバッファに対応したニックネームリストを最後までスクロール: + scroll to end of nicklist on current buffer: /bar scroll nicklist * ye ---- diff --git a/doc/ja/weechat_user.ja.asciidoc b/doc/ja/weechat_user.ja.asciidoc index 41e9738c9..c38f53ac4 100644 --- a/doc/ja/weechat_user.ja.asciidoc +++ b/doc/ja/weechat_user.ja.asciidoc @@ -853,8 +853,9 @@ WeeChat を起動したターミナルの例: [[bar_conditions]] ==== 状態 -'conditions' オプションはバーをウィンドウ内に表示するか否かを評価する文字列です -(このオプションは 'window' 型のバーだけに有効です)。 +// TRANSLATION MISSING +The option 'conditions' is a string evaluated to know if the bar is displayed +or not. 文字列は以下のいずれか: diff --git a/doc/pl/autogen/user/weechat_commands.asciidoc b/doc/pl/autogen/user/weechat_commands.asciidoc index 4d7b45a97..5129ba7b7 100644 --- a/doc/pl/autogen/user/weechat_commands.asciidoc +++ b/doc/pl/autogen/user/weechat_commands.asciidoc @@ -13,50 +13,50 @@ wiadomość: powód nieobecności (jeśli nie podano wiadomości status nieobecn ---- /bar list|listfull|listitems - add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> <separator> <element1>[,<element2>...] + add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...] default [input|title|status|nicklist] - del <nazwa>|-all - set <nazwa> <opcja> <wartość> - hide|show|toggle <nazwa> - scroll <nazwa> <okno> <wartość_przewinięcia> - - list: lista wszystkich pasków - listfull: lista wszystkich pasków (z polami) - listitems: lista wszystkich elementów pasków - add: dodaj nowy pasek - nazwa: nazwa paska (musi być unikalna) - typ: root: poza oknami, - window: wewnątrz okien, z opcjonalnymi warunkami (patrz niżej) - warunek: warunek(i) dla wyświetlenia paska (tylko dla typu "window"): - active: w aktywnym oknie - inactive: w nieaktywnym oknie - nicklist: w oknach z listą nicków - inne warunki: zobacz /help weechat.bar.xxx.conditions oraz /help eval - bez warunku pasek jest zawsze wyświetlany - pozycja: dół (bottom), góra (top), lewo (left) lub prawo (right) - rozmiar: rozmiar paska (w znakach) - separator: 1 dla użycia separatora (linia), 0 - brak separatora - element1,...: elementy dla tego paska (elementy mogą być oddzielone przecinkiem (przerwa między elementami) lub "+" (sklejone elementy)) - default: tworzy domyślne paski (wszystkie domyślne paski, jeśli nie podamy nazwy) - del: usuwa pasek (lub wszystkie z użyciem -all) - set: ustawia wartość dla właściwości paska - opcja: opcja do zmiany (listę opcji można zobaczyć dzięki /set weechat.bar.<nazwa paska>.*) - wartość: nowa wartość opcji - hide: ukrywa pasek - show: pokazuje ukryty pasek - toggle: ukrywa/pokazuje pasek - scroll: przewija pasek - okno: numer okna ('*' oznacza obecne okno lub pasek typu root) - wartość_przewinięcia: wartość dla przewinięcia: 'x' lub 'y' (opcjonalne), następnie '+', '-', 'b' (początek) lub 'e' (koniec), wartość (dla +/-), oraz opcjonalnie % (w celu przesunięcia % szerokości/wysokości, w przeciwnym wypadku wartość jest ilością znaków) - -Przykłady: - tworzy pasek z czasem, numerem + nazwą bufora i dopełnianiem: + del <name>|-all + set <name> <option> <value> + hide|show|toggle <name> + scroll <name> <window> <scroll_value> + + list: list all bars + listfull: list all bars (verbose) + listitems: list all bar items + add: add a new bar + name: name of bar (must be unique) + type: root: outside windows, + window: inside windows, with optional conditions (see below) + conditions: the conditions to display the bar: + active: on active window + inactive: on inactive windows + nicklist: on windows with nicklist + other condition: see /help weechat.bar.xxx.conditions and /help eval + without conditions, the bar is always displayed + position: bottom, top, left or right + size: size of bar (in chars) + separator: 1 for using separator (line), 0 or nothing means no separator + item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items)) + default: create a default bar (all default bars if no bar name is given) + del: delete a bar (or all bars with -all) + set: set a value for a bar property + option: option to change (for options list, look at /set weechat.bar.<barname>.*) + value: new value for option + hide: hide a bar + show: show an hidden bar + toggle: hide/show a bar + scroll: scroll bar + window: window number (use '*' for current window or for root bars) + scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars) + +Examples: + create a bar with time, buffer number + name, and completion: /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion - ukrywa pasek: + hide a bar: /bar hide mybar - przewija listę nicków a obecnym buforze o 10 linii w dół : + scroll nicklist 10 lines down on current buffer: /bar scroll nicklist * y+10 - przewija do końca listę nicków w obecnym buforze: + scroll to end of nicklist on current buffer: /bar scroll nicklist * ye ---- diff --git a/doc/pl/weechat_user.pl.asciidoc b/doc/pl/weechat_user.pl.asciidoc index 3a59d8196..fcaab621a 100644 --- a/doc/pl/weechat_user.pl.asciidoc +++ b/doc/pl/weechat_user.pl.asciidoc @@ -860,8 +860,9 @@ Przykłady wypełnień paska 'nicklist': [[bar_conditions]] ==== Warunki -Opcja 'conditions' jest ciągiem przetwarzanym w celu ustalenia czy pasek ma -zostać wyświetlony w oknie (jest używany tylko dla pasków z typem 'window'). +// TRANSLATION MISSING +The option 'conditions' is a string evaluated to know if the bar is displayed +or not. Ciąg może być: @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1016,10 +1016,10 @@ msgstr "řídit pole" #, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <jméno> <typ>[,<podmínka1>[,<podmínka2>...]] " "<pozice> <velikost> <oddělovac> <položka1>[,<položka2>...] || default [input|" @@ -1036,13 +1036,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4154,11 +4154,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "typ pole (root, window, window_active, window_inactive)" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-12-21 13:35+0100\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Language-Team: German <>\n" @@ -1029,17 +1029,19 @@ msgstr "" msgid "manage bars" msgstr "Infobars verwalten" +#, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " "<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " "del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " "scroll <name> <window> <scroll_value>" +#, fuzzy msgid "" " list: list all bars\n" " listfull: list all bars (verbose)\n" @@ -1048,13 +1050,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4868,12 +4870,13 @@ msgstr "" msgid "bar type (root, window, window_active, window_inactive)" msgstr "Bar-Typ (root, window, window_active, window_inactive)" +#, fuzzy msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" "Bedingung(en), damit eine Infobar angezeigt wird (Infobars vom Typ \"window" "\"). Eine einfache Bedingung: \"active\", \"inactive\", \"nicklist" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1018,10 +1018,10 @@ msgstr "gestionar las barras" #, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <nombre> <tipo>[,<cond1>[,<cond2>...]] " "<posición> <tamaño> <separador> <elemento1>[,<elemento2>...] || default " @@ -1038,13 +1038,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4371,11 +4371,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "tipo de barra (root, window, window_active, window_inactive)" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" -"PO-Revision-Date: 2014-12-21 11:10+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" +"PO-Revision-Date: 2014-12-28 10:53+0100\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: fr\n" @@ -1012,10 +1012,10 @@ msgid "manage bars" msgstr "gestion des barres" msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <nom> <type>[,<conditions>] <position> " "<taille> <séparateur> <objet1>[,<objet2>...] || default [input|title|status|" @@ -1030,13 +1030,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -1078,8 +1078,7 @@ msgstr "" " type : root : en dehors des fenêtres\n" " window : dans les fenêtres, avec condition(s) optionnelle(s) " "(voir ci-dessous)\n" -" condition : condition(s) pour afficher cette barre (seulement pour le " -"type \"window\") :\n" +" conditions : les conditions pour afficher la barre :\n" " active : sur la fenêtre active\n" " inactive : sur les fenêtres inactives\n" " nicklist : sur les fenêtres avec liste de pseudos\n" @@ -4758,18 +4757,18 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "type de barre (root, window, window_active, window_inactive)" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" -"condition(s) pour afficher la barre (pour les barres de type \"window\") : " -"une simple condition : \"active\", \"inactive\", \"nicklist\" (la fenêtre " -"doit être active/inactive, le tampon doit avoir une liste de pseudos), ou " -"une expression avec condition(s) (voir /help eval), comme : \"${nicklist} && " -"${window.win_width} > 100\" (les variables locales pour l'expression sont " -"${active}, ${inactive} et ${nicklist})" +"conditions pour afficher la barre : une simple condition : \"active\", " +"\"inactive\", \"nicklist\" (la fenêtre doit être active/inactive, le tampon " +"doit avoir une liste de pseudos), ou une expression avec condition(s) (voir /" +"help eval), comme : \"${nicklist} && ${window.win_width} > 100\" (les " +"variables locales pour l'expression sont ${active}, ${inactive} et " +"${nicklist})" msgid "bar position (bottom, top, left, right)" msgstr "" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1050,10 +1050,10 @@ msgid "manage bars" msgstr "pufferek kezelése" msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" msgid "" @@ -1064,13 +1064,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -3776,11 +3776,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" #, fuzzy @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -998,11 +998,12 @@ msgstr "" msgid "manage bars" msgstr "gestione delle barre" +#, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <nome> <type>[,<condizione>] <posizione> " "<dimensione> <separatore> <item1>[,<item2>...] || default [input|title|" @@ -1018,13 +1019,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4497,11 +4498,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "tipo di barra (root, window, window_active, window_inactive)" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-12-22 01:28+0900\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n" @@ -40,11 +40,11 @@ msgid "max chars" msgstr "最大文字数" msgid "" -"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 " -"italic, \"_\" for underline" +"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 italic, \"_\" for underline" msgstr "" "WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、" "brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま" @@ -992,17 +992,19 @@ msgstr "" msgid "manage bars" msgstr "バーの管理" +#, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " "<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " "del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " "scroll <name> <window> <scroll_value>" +#, fuzzy msgid "" " list: list all bars\n" " listfull: list all bars (verbose)\n" @@ -1011,13 +1013,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4554,12 +4556,13 @@ msgstr "バー優先度 (値が大きいものは最初に表示)" msgid "bar type (root, window, window_active, window_inactive)" msgstr "バー型 (root、window、window_active、window_inactive)" +#, fuzzy msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" "バーを表示する条件 (\"window\" タイプのバー): 単純な条件: \"active" "\"、\"inactive\"、\"nicklist\" (ウィンドウはアクティブ/非アクティブ、バッファ" @@ -5963,8 +5966,8 @@ msgstr "" " - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n" " - ホスト名/ポート番号又は IP アドレス/ポート番号、デフォルトの" "ポート番号は 6667\n" -" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]" -"irc.example.org[:port][/#channel1][,#channel2[...]]\n" +" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:" +"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n" " 注意: アドレス/IP/URL を指定した場合、サーバを一時的に作ります " "(保存しません)、/help irc.look.temporary_servers を参照してください。\n" " option: サーバに関するオプション (ブール型オプションでは、value は無視さ" @@ -10950,8 +10953,8 @@ msgid "" "Examples (you can also look at default triggers with /trigger listdefault):\n" " add text attributes *bold*, _underline_ and /italic/ (only in user " "messages):\n" -" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*" -"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:" +" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==" +"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:" "underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:" "italic}${re:1}${color:-italic}/\"\n" " hide nicklist bar on small terminals:\n" @@ -11027,8 +11030,8 @@ msgstr "" "\n" "例 (/trigger listdefault でデフォルトトリガを見ることができます):\n" " テキスト属性 *太字*、_下線_、/イタリック/ を追加 (ユーザメッセージのみ):\n" -" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*" -"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:" +" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==" +"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:" "underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:" "italic}${re:1}${color:-italic}/\"\n" " 狭い端末ではニックネームリストバーを隠す:\n" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-12-26 19:51+0100\n" "Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1018,17 +1018,19 @@ msgstr "" msgid "manage bars" msgstr "zarządzaj paskami" +#, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> " "<separator> <element1>[,<element2>...] || default [input|title|status|" "nicklist] || del <nazwa>|-all || set <nazwa> <opcja> <wartość> || hide|show|" "toggle <nazwa> || scroll <nazwa> <okno> <wartość_przewinięcia>" +#, fuzzy msgid "" " list: list all bars\n" " listfull: list all bars (verbose)\n" @@ -1037,13 +1039,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4661,12 +4663,13 @@ msgstr "" msgid "bar type (root, window, window_active, window_inactive)" msgstr "typ paska (root, window, window_active, window_inactive)" +#, fuzzy msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" "warunek(i) dla wyświetlania paska (dla pasków o typie \"window\"): prosty " "warunek: \"active\", \"inactive\", \"nicklist\" (okna muszą być aktywne/" diff --git a/po/pt_BR.po b/po/pt_BR.po index 737e87f82..7ad6a373a 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-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1035,11 +1035,12 @@ msgstr "" msgid "manage bars" msgstr "gerenciar barras" +#, fuzzy msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" "list|listfull|listitems || add <nome> <tipo>[,<cond1>[,<cond2>...]] " "<posição> <tamanho> <separador> <item1>[,<item2>...] || default [input|title|" @@ -1057,13 +1058,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -4252,11 +4253,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "tipo da barra (root, window, window_active, window_inactive)" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-11-09 16:23+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -1071,10 +1071,10 @@ msgid "manage bars" msgstr "управление буферами" msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" msgid "" @@ -1085,13 +1085,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -3806,11 +3806,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" #, fuzzy @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-07-25 07:50+0200\n" "Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -943,10 +943,10 @@ msgid "manage bars" msgstr "" msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" msgid "" @@ -957,13 +957,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -3408,11 +3408,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" diff --git a/po/weechat.pot b/po/weechat.pot index 33ee02dcd..870eccca1 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2014-12-21 11:09+0100\n" +"POT-Creation-Date: 2014-12-28 10:50+0100\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -947,10 +947,10 @@ msgid "manage bars" msgstr "" msgid "" -"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> " -"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || " -"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || " -"scroll <name> <window> <scroll_value>" +"list|listfull|listitems || add <name> <type>[,<conditions>] <position> " +"<size> <separator> <item1>[,<item2>...] || default [input|title|status|" +"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|" +"toggle <name> || scroll <name> <window> <scroll_value>" msgstr "" msgid "" @@ -961,13 +961,13 @@ msgid "" " name: name of bar (must be unique)\n" " type: root: outside windows,\n" " window: inside windows, with optional conditions (see below)\n" -" condition: condition(s) for displaying bar (only for type \"window\"):\n" +" conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions and /" "help eval\n" -" without condition, the bar is always displayed\n" +" without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " @@ -3403,11 +3403,11 @@ msgid "bar type (root, window, window_active, window_inactive)" msgstr "" msgid "" -"condition(s) for displaying bar (for bars of type \"window\"): a simple " -"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/" -"inactive, buffer must have a nicklist), or an expression with condition(s) " -"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local " -"variables for expression are ${active}, ${inactive} and ${nicklist})" +"conditions to display the bar: a simple condition: \"active\", \"inactive\", " +"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), " +"or an expression with condition(s) (see /help eval), like: \"${nicklist} && " +"${window.win_width} > 100\" (local variables for expression are ${active}, " +"${inactive} and ${nicklist})" msgstr "" msgid "bar position (bottom, top, left, right)" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 922eb8221..c37d12d34 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -6810,7 +6810,7 @@ command_init () NULL, "bar", N_("manage bars"), N_("list|listfull|listitems" - " || add <name> <type>[,<condition>] <position> <size> <separator> " + " || add <name> <type>[,<conditions>] <position> <size> <separator> " "<item1>[,<item2>...]" " || default [input|title|status|nicklist]" " || del <name>|-all" @@ -6825,14 +6825,13 @@ command_init () " type: root: outside windows,\n" " window: inside windows, with optional conditions " "(see below)\n" - " condition: condition(s) for displaying bar (only for type " - "\"window\"):\n" + " conditions: the conditions to display the bar:\n" " active: on active window\n" " inactive: on inactive windows\n" " nicklist: on windows with nicklist\n" " other condition: see /help weechat.bar.xxx.conditions " "and /help eval\n" - " without condition, the bar is always displayed\n" + " without conditions, the bar is always displayed\n" " position: bottom, top, left or right\n" " size: size of bar (in chars)\n" " separator: 1 for using separator (line), 0 or nothing means no " diff --git a/src/gui/curses/gui-curses-bar-window.c b/src/gui/curses/gui-curses-bar-window.c index 86d1a4f19..28b9a169c 100644 --- a/src/gui/curses/gui-curses-bar-window.c +++ b/src/gui/curses/gui-curses-bar-window.c @@ -44,6 +44,10 @@ /* * Initializes Curses windows for bar window. + * + * Returns: + * 1: OK + * 0: error */ int @@ -51,6 +55,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window) { struct t_gui_bar_window_curses_objects *new_objects; + if (!bar_window) + return 0; + new_objects = malloc (sizeof (*new_objects)); if (new_objects) { @@ -69,6 +76,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window) void gui_bar_window_objects_free (struct t_gui_bar_window *bar_window) { + if (!bar_window) + return; + if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar) { delwin (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar); @@ -88,8 +98,11 @@ gui_bar_window_objects_free (struct t_gui_bar_window *bar_window) void gui_bar_window_create_win (struct t_gui_bar_window *bar_window) { - if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN])) + if (!bar_window + || CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN])) + { return; + } if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar) { @@ -160,7 +173,7 @@ gui_bar_window_print_string (struct t_gui_bar_window *bar_window, int x_with_hidden, size_on_screen, low_char, hidden; char utf_char[16], *next_char, *output; - if (!string || !string[0]) + if (!bar_window || !string || !string[0]) return 1; wmove (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar, *y, *x); @@ -417,7 +430,7 @@ gui_bar_window_draw (struct t_gui_bar_window *bar_window, if (gui_window_bare_display) return; - if ((bar_window->x < 0) || (bar_window->y < 0)) + if (!bar_window || (bar_window->x < 0) || (bar_window->y < 0)) return; if (!str_start_input[0]) diff --git a/src/gui/curses/gui-curses-window.c b/src/gui/curses/gui-curses-window.c index af0813e86..f9fb9cf8d 100644 --- a/src/gui/curses/gui-curses-window.c +++ b/src/gui/curses/gui-curses-window.c @@ -1226,6 +1226,7 @@ gui_window_switch_to_buffer (struct t_gui_window *window, if (!weechat_upgrading && (old_buffer != buffer)) gui_hotlist_remove_buffer (buffer, 0); + /* remove unused bars and add missing bars in window */ gui_bar_window_remove_unused_bars (window); gui_bar_window_add_missing_bars (window); @@ -1304,6 +1305,8 @@ gui_window_switch (struct t_gui_window *window) old_window = gui_current_window; gui_current_window = window; + + /* remove unused bars and add missing bars in window */ changes = gui_bar_window_remove_unused_bars (old_window) || gui_bar_window_add_missing_bars (old_window); if (changes) @@ -1712,9 +1715,14 @@ gui_window_refresh_windows () old_current_window = gui_current_window; + /* remove unused bars and add missing root bars */ + gui_bar_window_remove_unused_bars (NULL); + gui_bar_window_add_missing_bars (NULL); + for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) + && ptr_bar->bar_window && !CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])) { gui_bar_window_calculate_pos_size (ptr_bar->bar_window, NULL); diff --git a/src/gui/gui-bar-item.c b/src/gui/gui-bar-item.c index ed78db4bc..d6bc7ac88 100644 --- a/src/gui/gui-bar-item.c +++ b/src/gui/gui-bar-item.c @@ -195,6 +195,9 @@ gui_bar_item_used_in_bar (struct t_gui_bar *bar, const char *item_name, { int i, j, length; + if (!bar || !item_name) + return 0; + length = strlen (item_name); for (i = 0; i < bar->items_count; i++) @@ -238,6 +241,9 @@ gui_bar_item_used_in_at_least_one_bar (const char *item_name, int partial_name, struct t_gui_bar *ptr_bar; int i, j, length; + if (!item_name) + return 0; + length = strlen (item_name); for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) @@ -371,7 +377,7 @@ gui_bar_item_get_value (struct t_gui_bar *bar, struct t_gui_window *window, struct t_gui_buffer *buffer; struct t_gui_bar_item *ptr_item; - if (!bar->items_array[item][subitem]) + if (!bar || !bar->items_array[item][subitem]) return NULL; buffer = (window) ? @@ -569,10 +575,15 @@ gui_bar_item_update (const char *item_name) struct t_gui_bar *ptr_bar; struct t_gui_window *ptr_window; struct t_gui_bar_window *ptr_bar_window; - int i, j; + int i, j, check_bar_conditions, condition_ok; + + if (!item_name) + return; for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { + check_bar_conditions = 0; + for (i = 0; i < ptr_bar->items_count; i++) { for (j = 0; j < ptr_bar->items_subcount[i]; j++) @@ -580,9 +591,15 @@ gui_bar_item_update (const char *item_name) if (ptr_bar->items_name[i][j] && (strcmp (ptr_bar->items_name[i][j], item_name) == 0)) { - if (ptr_bar->bar_window) + if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])) + check_bar_conditions = 1; + + if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) { - ptr_bar->bar_window->items_refresh_needed[i][j] = 1; + if (ptr_bar->bar_window) + { + ptr_bar->bar_window->items_refresh_needed[i][j] = 1; + } } else { @@ -604,6 +621,39 @@ gui_bar_item_update (const char *item_name) } } } + + /* + * evaluate bar conditions (if needed) to check if bar must be toggled + * (hidden if shown, or shown if hidden) + */ + if (check_bar_conditions) + { + if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) + { + condition_ok = gui_bar_check_conditions (ptr_bar, NULL); + if ((condition_ok && !ptr_bar->bar_window) + || (!condition_ok && ptr_bar->bar_window)) + { + gui_window_ask_refresh (1); + } + } + else + { + for (ptr_window = gui_windows; ptr_window; + ptr_window = ptr_window->next_window) + { + condition_ok = gui_bar_check_conditions (ptr_bar, + ptr_window); + ptr_bar_window = gui_bar_window_search_bar (ptr_window, + ptr_bar); + if ((condition_ok && !ptr_bar_window) + || (!condition_ok && ptr_bar_window)) + { + gui_window_ask_refresh (1); + } + } + } + } } } @@ -614,6 +664,9 @@ gui_bar_item_update (const char *item_name) void gui_bar_item_free (struct t_gui_bar_item *item) { + if (!item) + return; + /* force refresh of bars displaying this bar item */ gui_bar_item_update (item->name); diff --git a/src/gui/gui-bar-window.c b/src/gui/gui-bar-window.c index e5fa41ebf..6f9a3de16 100644 --- a/src/gui/gui-bar-window.c +++ b/src/gui/gui-bar-window.c @@ -96,6 +96,9 @@ gui_bar_window_search_bar (struct t_gui_window *window, struct t_gui_bar *bar) { struct t_gui_bar_window *ptr_bar_win; + if (!window) + return NULL; + for (ptr_bar_win = window->bar_windows; ptr_bar_win; ptr_bar_win = ptr_bar_win->next_bar_window) { @@ -283,6 +286,10 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window, int total_size; total_size = 0; + + if (!window) + return total_size; + for (ptr_bar_window = window->bar_windows; ptr_bar_window; ptr_bar_window = ptr_bar_window->next_bar_window) { @@ -313,6 +320,7 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window, } } } + return total_size; } @@ -327,8 +335,11 @@ gui_bar_window_calculate_pos_size (struct t_gui_bar_window *bar_window, int x1, y1, x2, y2; int add_bottom, add_top, add_left, add_right; - if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN])) + if (!bar_window + || CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN])) + { return; + } if (window) { @@ -405,6 +416,9 @@ gui_bar_window_find_pos (struct t_gui_bar *bar, struct t_gui_window *window) { struct t_gui_bar_window *ptr_bar_window; + if (!window) + return NULL; + for (ptr_bar_window = window->bar_windows; ptr_bar_window; ptr_bar_window = ptr_bar_window->next_bar_window) { @@ -426,6 +440,9 @@ gui_bar_window_content_alloc (struct t_gui_bar_window *bar_window) { int i, j; + if (!bar_window) + return; + bar_window->items_count = bar_window->bar->items_count; bar_window->items_subcount = NULL; bar_window->items_content = NULL; @@ -535,6 +552,9 @@ gui_bar_window_content_free (struct t_gui_bar_window *bar_window) { int i, j; + if (!bar_window) + return; + if (bar_window->items_content) { for (i = 0; i < bar_window->items_count; i++) @@ -571,6 +591,9 @@ gui_bar_window_content_build_item (struct t_gui_bar_window *bar_window, struct t_gui_window *window, int index_item, int index_subitem) { + if (!bar_window) + return; + if (bar_window->items_content) { if (bar_window->items_content[index_item][index_subitem]) @@ -605,6 +628,9 @@ gui_bar_window_content_build (struct t_gui_bar_window *bar_window, { int i, j; + if (!bar_window) + return; + gui_bar_window_content_free (bar_window); gui_bar_window_content_alloc (bar_window); @@ -626,6 +652,9 @@ gui_bar_window_content_get (struct t_gui_bar_window *bar_window, struct t_gui_window *window, int index_item, int index_subitem) { + if (!bar_window) + return NULL; + /* rebuild content if refresh is needed */ if (bar_window->items_refresh_needed[index_item][index_subitem]) { @@ -1075,7 +1104,7 @@ gui_bar_window_new (struct t_gui_bar *bar, struct t_gui_window *window) if (window) { if ((CONFIG_INTEGER(bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW) - && (!gui_bar_check_conditions_for_window (bar, window))) + && (!gui_bar_check_conditions (bar, window))) return; } @@ -1268,6 +1297,11 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window, if (window->last_bar_window == bar_window) window->last_bar_window = bar_window->prev_bar_window; } + else + { + if (bar_window->bar) + (bar_window->bar)->bar_window = NULL; + } /* free data */ gui_bar_window_content_free (bar_window); @@ -1281,7 +1315,10 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window, } /* - * Removes unused bars for a window. + * Removes unused bars, according to bars conditions. + * + * If window is NULL, unused root bars are removed. + * If window is not NULL, unused window bars in this window are removed. * * Returns: * 1: at least one bar was removed @@ -1293,29 +1330,51 @@ gui_bar_window_remove_unused_bars (struct t_gui_window *window) { int rc; struct t_gui_bar_window *ptr_bar_win, *next_bar_win; + struct t_gui_bar *ptr_bar; rc = 0; - ptr_bar_win = window->bar_windows; - while (ptr_bar_win) + if (window) { - next_bar_win = ptr_bar_win->next_bar_window; + /* remove unused window bars in window */ + ptr_bar_win = window->bar_windows; + while (ptr_bar_win) + { + next_bar_win = ptr_bar_win->next_bar_window; - if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW) - && (!gui_bar_check_conditions_for_window (ptr_bar_win->bar, window))) + if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW) + && (!gui_bar_check_conditions (ptr_bar_win->bar, window))) + { + gui_bar_window_free (ptr_bar_win, window); + rc = 1; + } + + ptr_bar_win = next_bar_win; + } + } + else + { + /* remove unused root bars */ + for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { - gui_bar_window_free (ptr_bar_win, window); - rc = 1; + if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) + && ptr_bar->bar_window + && (!gui_bar_check_conditions (ptr_bar, NULL))) + { + gui_bar_window_free (ptr_bar->bar_window, NULL); + rc = 1; + } } - - ptr_bar_win = next_bar_win; } return rc; } /* - * Adds missing bars for a window. + * Adds missing bars, according to bars conditions. + * + * If window is NULL, missing root bars are added. + * If window is not NULL, missing window bars in this window are added. * * Returns: * 1: at least one bar was created @@ -1330,18 +1389,34 @@ gui_bar_window_add_missing_bars (struct t_gui_window *window) rc = 0; - for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) + if (window) { - if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW) - && gui_bar_check_conditions_for_window (ptr_bar, window)) + /* add missing window bars in window */ + for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { - if (!gui_bar_window_search_bar (window, ptr_bar)) + if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW) + && (!gui_bar_window_search_bar (window, ptr_bar)) + && (gui_bar_check_conditions (ptr_bar, window))) { gui_bar_window_new (ptr_bar, window); rc = 1; } } } + else + { + /* add missing root bars */ + for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) + { + if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) + && !ptr_bar->bar_window + && (gui_bar_check_conditions (ptr_bar, NULL))) + { + gui_bar_window_new (ptr_bar, NULL); + rc = 1; + } + } + } return rc; } diff --git a/src/gui/gui-bar.c b/src/gui/gui-bar.c index 58ed2c52b..c83bf260b 100644 --- a/src/gui/gui-bar.c +++ b/src/gui/gui-bar.c @@ -369,20 +369,25 @@ gui_bar_insert (struct t_gui_bar *bar) /* * Checks if bar must be displayed in window according to conditions. * + * If window is NULL (case of root bars), the current window is used. + * * Returns: * 1: bar must be displayed * 0: bar must not be displayed */ int -gui_bar_check_conditions_for_window (struct t_gui_bar *bar, - struct t_gui_window *window) +gui_bar_check_conditions (struct t_gui_bar *bar, + struct t_gui_window *window) { int rc; char str_modifier[256], str_window[128], *str_displayed, *result; const char *conditions; struct t_hashtable *pointers, *extra_vars, *options; + if (!window) + window = gui_current_window; + /* check bar condition(s) */ conditions = CONFIG_STRING(bar->options[GUI_BAR_OPTION_CONDITIONS]); if (string_strcasecmp (conditions, "active") == 0) @@ -490,7 +495,8 @@ gui_bar_root_get_size (struct t_gui_bar *bar, enum t_gui_bar_position position) if (bar && (ptr_bar == bar)) return total_size; - if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])) + if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]) + && ptr_bar->bar_window) { if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT) && (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_POSITION]) == (int)position)) @@ -858,7 +864,6 @@ gui_bar_config_change_hidden (void *data, struct t_config_option *option) if (CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])) { gui_bar_window_free (ptr_bar->bar_window, NULL); - ptr_bar->bar_window = NULL; } else { @@ -1404,12 +1409,12 @@ gui_bar_create_option (const char *bar_name, int index_option, const char *value ptr_option = config_file_new_option ( weechat_config_file, weechat_config_section_bar, option_name, "string", - N_("condition(s) for displaying bar (for bars of type " - "\"window\"): a simple condition: \"active\", \"inactive\", " - "\"nicklist\" (window must be active/inactive, buffer must " - "have a nicklist), or an expression with condition(s) (see " - "/help eval), like: \"${nicklist} && ${window.win_width} > " - "100\" (local variables for expression are ${active}, " + N_("conditions to display the bar: a simple condition: " + "\"active\", \"inactive\", \"nicklist\" (window must be " + "active/inactive, buffer must have a nicklist), or an " + "expression with condition(s) (see /help eval), " + "like: \"${nicklist} && ${window.win_width} > 100\" " + "(local variables for expression are ${active}, " "${inactive} and ${nicklist})"), NULL, 0, 0, value, NULL, 0, NULL, NULL, &gui_bar_config_change_conditions, NULL, NULL, NULL); @@ -2231,7 +2236,6 @@ gui_bar_free_bar_windows (struct t_gui_bar *bar) if (bar->bar_window) { gui_bar_window_free (bar->bar_window, NULL); - bar->bar_window = NULL; } else { diff --git a/src/gui/gui-bar.h b/src/gui/gui-bar.h index 974a54b87..6482e75c7 100644 --- a/src/gui/gui-bar.h +++ b/src/gui/gui-bar.h @@ -116,8 +116,8 @@ extern int gui_bar_search_option (const char *option_name); extern int gui_bar_search_type (const char *type); extern int gui_bar_search_position (const char *position); extern enum t_gui_bar_filling gui_bar_get_filling (struct t_gui_bar *bar); -extern int gui_bar_check_conditions_for_window (struct t_gui_bar *bar, - struct t_gui_window *window); +extern int gui_bar_check_conditions (struct t_gui_bar *bar, + struct t_gui_window *window); extern int gui_bar_root_get_size (struct t_gui_bar *bar, enum t_gui_bar_position position); extern struct t_gui_bar *gui_bar_search (const char *name); |