# HG changeset patch # User Mikael Berthe # Date 1194729297 -3600 # Node ID 096411233fce798b00bc76daab2fe1a74d2d98f8 # Parent 1a82a0a87fc7ab8d5dceb90cd7a6a4d31b0d1692 Add /roster item_toggle_lock (suggested by Wolfram S.) diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/de/hlp_roster.txt --- a/mcabber/doc/help/de/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/de/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -45,6 +45,7 @@ Anzeige von dem Buddy mit der jid sichern, sodass man ihn immer sieht, egal wie sein Status ist /roster item_unlock [jid] "/roster item_lock" rückgängig machen +/roster item_toggle_lock [jid] /roster hide Den Roster verstecken, sodass das Chatfenster die ganze Breite bekommt /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/en/hlp_roster.txt --- a/mcabber/doc/help/en/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/en/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -45,6 +45,8 @@ Lock the roster item so it remains visible regardless of its status /roster item_unlock [jid] Undo the effects of item_lock +/roster item_toggle_lock [jid] + Invert the current lock flag /roster hide Hide roster (full-width chat window) /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/fr/hlp_roster.txt --- a/mcabber/doc/help/fr/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/fr/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -44,6 +44,8 @@ Affiche le contact dans le roster, même s'il est déconnecté /roster item_unlock [jid] Annule l'effet de /roster item_lock +/roster item_toggle_lock [jid] + Inverse le verrou (lock) /roster hide Cache le roster (fenêtre de discussion en pleine largeur) /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/it/hlp_roster.txt --- a/mcabber/doc/help/it/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/it/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|testo] @@ -45,6 +45,7 @@ Blocca un elemento del roster in modo che rimanga visibile a prescindere dal suo stato /roster item_unlock [jid] Cancella gli effetti di item_lock +/roster item_toggle_lock [jid] /roster hide Nasconde il roster (chat a finestra piena) /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/nl/hlp_roster.txt --- a/mcabber/doc/help/nl/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/nl/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -45,6 +45,7 @@ Bevries jid zodat deze zichtbaar blijft ongeacht diens status /roster item_unlock [jid] Maak het effect van 'item_lock' ongedaan +/roster item_toggle_lock [jid] /roster hide Verberg het roster zodat het chat venster de volle breedte kan beslaan /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/pl/hlp_roster.txt --- a/mcabber/doc/help/pl/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/pl/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -41,6 +41,7 @@ Zablokuj wyświetlanie elementu rostera, tak aby był widoczny cały czas (bez względu na jego status) /roster item_unlock [jid] Odblokuj wyświetlanie elementu rostera, element będzie widoczny ze względu na jego status +/roster item_toggle_lock [jid] /roster hide Ukrywa całą liste kontaktów /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/ru/hlp_roster.txt --- a/mcabber/doc/help/ru/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/ru/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search bud /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|text] @@ -45,6 +45,7 @@ Закрепить пользователя из списка контактов и всегда отображать независимо от его статуса /roster item_unlock [jid] Отменить функцию /roster item_lock +/roster item_toggle_lock [jid] /roster hide Скрыть список контактов (окно чата на весь экран) /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/doc/help/uk/hlp_roster.txt --- a/mcabber/doc/help/uk/hlp_roster.txt Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/doc/help/uk/hlp_roster.txt Sat Nov 10 22:14:57 2007 +0100 @@ -3,7 +3,7 @@ /ROSTER alternate|unread_first|unread_next /ROSTER search ім'я /ROSTER display|hide_offline|show_offline|toggle_offline - /ROSTER item_lock|item_unlock + /ROSTER item_lock|item_unlock|item_toggle_lock /ROSTER hide|show|toggle /ROSTER note [-|текст] @@ -44,6 +44,7 @@ Закріплює вказаний об'єкт списку так, що він завжди відображується, незважаючи на свій статус. /roster item_unlock [jid] Відміняє дію item_lock. +/roster item_toggle_lock [jid] /roster hide Сховати список. /roster show diff -r 1a82a0a87fc7 -r 096411233fce mcabber/src/commands.c --- a/mcabber/src/commands.c Fri Nov 09 23:42:41 2007 +0100 +++ b/mcabber/src/commands.c Sat Nov 10 22:14:57 2007 +0100 @@ -184,6 +184,7 @@ compl_add_category_word(COMPL_ROSTER, "toggle_offline"); compl_add_category_word(COMPL_ROSTER, "item_lock"); compl_add_category_word(COMPL_ROSTER, "item_unlock"); + compl_add_category_word(COMPL_ROSTER, "item_toggle_lock"); compl_add_category_word(COMPL_ROSTER, "alternate"); compl_add_category_word(COMPL_ROSTER, "search"); compl_add_category_word(COMPL_ROSTER, "unread_first"); @@ -457,8 +458,9 @@ return process_command(line, FALSE); } -// Helper routine for buffer item_{lock,unlock} -static void roster_buddylock(char *bjid, bool lock) +// Helper routine for buffer item_{lock,unlock,toggle_lock} +// "lock" values: 1=lock 0=unlock -1=invert +static void roster_buddylock(char *bjid, int lock) { gpointer bud = NULL; bool may_need_refresh = FALSE; @@ -491,10 +493,13 @@ // Update the ROSTER_FLAG_USRLOCK flag if (bud) { + if (lock == -1) + lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK); buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock); - if (may_need_refresh) + if (may_need_refresh) { buddylist_build(); update_roster = TRUE; + } } } @@ -657,9 +662,11 @@ } else if (!strcasecmp(subcmd, "display")) { scr_RosterDisplay(arg); } else if (!strcasecmp(subcmd, "item_lock")) { - roster_buddylock(arg, TRUE); + roster_buddylock(arg, 1); } else if (!strcasecmp(subcmd, "item_unlock")) { - roster_buddylock(arg, FALSE); + roster_buddylock(arg, 0); + } else if (!strcasecmp(subcmd, "item_toggle_lock")) { + roster_buddylock(arg, -1); } else if (!strcasecmp(subcmd, "unread_first")) { scr_RosterUnreadMessage(0); } else if (!strcasecmp(subcmd, "unread_next")) {