Changeset 4

Show
Ignore:
Timestamp:
10/23/03 01:05:36 (5 years ago)
Author:
asterix86
Message:

Show offline users only if showOffline=1

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/core/core.py

    r2 r4  
    6060                        self.hub.sendPlugin('NOTIFY', \ 
    6161                        (prs.getFrom().getBasic(), show, prs.getStatus())) 
     62                if type == 'unavailable': 
     63                        self.hub.sendPlugin('NOTIFY', \ 
     64                                (prs.getFrom().getBasic(), 'offline', prs.getStatus())) 
     65                         
    6266        # END presenceCB 
    6367 
  • trunk/plugins/gtkgui.py

    r3 r4  
    105105 
    106106        def mkl_group(self): 
    107                 self.l_group = [] 
     107                """ {name:iter} """ 
     108                self.l_group = {} 
    108109                for u in self.l_contact: 
    109                         if u.group in self.l_group: 
    110                                 pass 
    111                         else: 
    112                                 self.l_group.append(u.group) 
    113  
    114         def mkroster(self): 
    115                 self.treestore.clear() 
    116                 for g in self.l_group: 
    117                         iter_g = self.treestore.append(None, (self.pixbufs['online'], g, 'group')) 
    118                         for c in self.l_contact: 
    119                                 if c.group == g: 
    120 #                                       print c.status 
    121                                         self.treestore.append(iter_g, (self.pixbufs[c.show], c.name, c.show)) 
    122 #                                       if c.status == 'Online': 
    123 #                                               self.treestore.append(iter_g, (self.pixbufs['Online'], c.name, 'Online')) 
    124 #                                       elif c.status == None: 
    125 #                                               self.treestore.append(iter_g, (self.pixbufs['away'], c.name, 'away')) 
    126  
    127         def mkroster2(self, tab): 
     110                        if not self.l_group.has_key(u.group): 
     111                                iterG = self.treestore.append(None, (self.pixbufs['online'], u.group, 'group')) 
     112                                self.l_group[u.group]=iterG 
     113 
     114        def mkroster(self, tab): 
    128115                self.l_contact = [] 
    129116                for jid in tab.keys(): 
    130117                        user1 = user(jid, 'general', tab[jid]["Show"], tab[jid]["Status"]) 
    131118                        self.l_contact.append(user1) 
     119                self.treestore.clear() 
    132120                self.mkl_group() 
    133                 self.mkroster() 
    134                 self.tree.collapse_row((0,3)) 
     121                for g in self.l_group.keys(): 
     122                        for c in self.l_contact: 
     123                                if c.group == g: 
     124                                        if c.show != 'offline' or self.showOffline: 
     125                                                self.treestore.append(self.l_group[g], (self.pixbufs[c.show], c.name, c.show)) 
    135126         
    136127        def update_iter(self, widget, path, iter, data): 
    137128                val = self.treestore.get_value(iter, 1) 
    138129                if val == data[0]: 
    139                         self.treestore.set_value(iter, 0, self.pixbufs[data[1]]) 
     130                        if data[1] == 'offline': 
     131                                self.treestore.remove(iter) 
     132                                if not self.showOffline: 
     133                                        self.found=1 
     134                        else: 
     135                                self.treestore.set_value(iter, 0, self.pixbufs[data[1]]) 
     136                                self.found=1 
     137                        return 1 
     138                return 0 
    140139         
    141140        def chg_status(self, jid, show, status): 
    142141                for u in self.l_contact: 
    143142                        if u.name == jid: 
     143                                self.found=0 
     144                                self.treestore.foreach(self.update_iter, (jid, show)) 
     145                                if self.found==0: 
     146                                        if not self.l_group.has_key(u.group): 
     147                                                iterG = self.treestore.append(None, (self.pixbufs['online'], u.group, 'group')) 
     148                                                self.l_group[u.group]=iterG 
     149                                        self.treestore.append(self.l_group[u.group], (self.pixbufs[show], u.name, show)) 
    144150                                u.show = show 
    145151                                u.status = status 
    146                                 self.treestore.foreach(self.update_iter, (jid, show)) 
     152                                return 1 
    147153         
    148154        def mk_menu_c(self, event): 
     
    220226                self.optionmenu.set_history(6) 
    221227                self.tab_messages = {} 
     228                self.showOffline=1 
    222229 
    223230                #colonnes 
     
    247254                        print ev 
    248255                        if ev[0] == 'ROSTER': 
    249                                 self.r.mkroster2(ev[1]) 
     256                                self.r.mkroster(ev[1]) 
    250257                        elif ev[0] == 'NOTIFY': 
    251258                                self.r.chg_status(ev[1][0], ev[1][1], ev[1][2]) 
     
    268275        plugin(None, None) 
    269276 
    270 print "plugin gui loaded" 
     277print "plugin gtkgui loaded"