diff frontends/primitivus/contact_list.py @ 124:961e0898271f

primitivus chat window - management of one 2 one / group chat - timestamp displayed - added shortcuts for showing/hiding panels - color used - fixed vcard bug (contact displayed even if not from current profile if vcard changed/not in cache) - added VerticalSeparator widget - *List widgets can now use an other widget than SelectableText - new UnselectableText widget
author Goffi <goffi@goffi.org>
date Thu, 08 Jul 2010 19:47:54 +0800
parents 03d8bcc67182
children 8d611eb9ae48
line wrap: on
line diff
--- a/frontends/primitivus/contact_list.py	Thu Jul 08 18:29:44 2010 +0800
+++ b/frontends/primitivus/contact_list.py	Thu Jul 08 19:47:54 2010 +0800
@@ -21,7 +21,7 @@
 
 import urwid
 from quick_frontend.quick_contact_list import QuickContactList
-from custom_widgets import Password,List,InputDialog,ConfirmDialog,Alert,LabelLine,SurroundedText
+import custom_widgets
 
 
 class ContactList(urwid.WidgetWrap, QuickContactList):
@@ -30,13 +30,12 @@
     def __init__(self, host, CM, on_click=None, on_change=None, user_data=None):
         self.host = host
                
-        self.list_wid = List([], style=['single','no_first_select'], align='left', on_click=self.__contactClicked, on_change=on_change)
+        self.list_wid = custom_widgets.GenericList([], style=['single','no_first_select'], align='left', on_click=self.__contactClicked, on_change=on_change)
 
         #we now build the widget
-        body_content = urwid.SimpleListWalker([self.list_wid])
-        frame_body = urwid.ListBox(body_content)
+        frame_body = self.list_wid
         frame = urwid.Frame(frame_body)
-        self.main_widget = LabelLine(frame,SurroundedText(_("Contacts")))
+        self.main_widget = custom_widgets.LabelLine(frame, custom_widgets.SurroundedText(_("Contacts")))
         urwid.WidgetWrap.__init__(self, self.main_widget)
         if on_click:
             urwid.connect_signal(self, 'click', on_click, user_data)
@@ -44,6 +43,10 @@
             urwid.connect_signal(self, 'change', on_change, user_data)
         QuickContactList.__init__(self, CM)
 
+    def __contains__(self, jid):
+        contacts = self.list_wid.getAllValues()
+        return jid.short in contacts
+
     def __contactClicked(self, list_wid):
         self._emit('click')
 
@@ -66,7 +69,6 @@
     
     def disconnect(self, jid):
         """mark a contact disconnected"""
-        #self.host.debug()
         self.remove(jid)
     
     def remove(self, jid):