changeset 1350:096411233fce

Add /roster item_toggle_lock (suggested by Wolfram S.)
author Mikael Berthe <mikael@lilotux.net>
date Sat, 10 Nov 2007 22:14:57 +0100
parents 1a82a0a87fc7
children 43e777a5ff06
files mcabber/doc/help/de/hlp_roster.txt mcabber/doc/help/en/hlp_roster.txt mcabber/doc/help/fr/hlp_roster.txt mcabber/doc/help/it/hlp_roster.txt mcabber/doc/help/nl/hlp_roster.txt mcabber/doc/help/pl/hlp_roster.txt mcabber/doc/help/ru/hlp_roster.txt mcabber/doc/help/uk/hlp_roster.txt mcabber/src/commands.c
diffstat 9 files changed, 30 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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")) {