Ticket #123: userlist.py.diff
| File userlist.py.diff, 6.8 kB (added by gallows, 20 months ago) |
|---|
-
userlist.py
old new 13 13 self.frame = frame 14 14 self.userlist = [] 15 15 16 self.usersmodel = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_ INT, gobject.TYPE_INT, gobject.TYPE_INT)16 self.usersmodel = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_INT, gobject.TYPE_INT) 17 17 cols = InitialiseColumns(self.frame.UserList, 18 18 ["", 20, "pixbuf"], 19 [_("User"), 1 00, "text", self.CellDataFunc],19 [_("User"), 120, "text", self.CellDataFunc], 20 20 [_("Speed"), 0, "text", self.CellDataFunc], 21 21 [_("Files"), 0, "text", self.CellDataFunc], 22 22 [_("Trusted"), 0, "toggle"], 23 [_("Last seen"), 256, "text", self.CellDataFunc], 23 24 [_("Comments"), -1, "edit", self.CellDataFunc], 24 25 ) 25 cols[0].set_sort_column_id( 6)26 cols[0].set_sort_column_id(7) 26 27 cols[1].set_sort_column_id(1) 27 cols[2].set_sort_column_id( 7)28 cols[3].set_sort_column_id( 8)28 cols[2].set_sort_column_id(8) 29 cols[3].set_sort_column_id(9) 29 30 cols[4].set_sort_column_id(4) 30 31 cols[5].set_sort_column_id(5) 32 cols[6].set_sort_column_id(6) 31 33 renderers = cols[4].get_cell_renderers() 32 34 for render in renderers: 33 35 render.connect('toggled', self.cell_toggle_callback, self.frame.UserList, 4) 34 renderers = cols[ 5].get_cell_renderers()36 renderers = cols[6].get_cell_renderers() 35 37 for render in renderers: 36 render.connect('edited', self.cell_edited_callback, self.frame.UserList, 5)38 render.connect('edited', self.cell_edited_callback, self.frame.UserList, 6) 37 39 self.frame.UserList.set_model(self.usersmodel) 38 40 self.frame.UserList.set_property("rules-hint", True) 39 41 self.privileged = [] … … 43 45 if len(user) > 4: 44 46 trusted = user[4] 45 47 else: 46 trusted = 0 47 row = [self.frame.GetStatusImage(0), user[0], "0", "0", trusted, user[1], 0, 0, 0] 48 trusted = 0; 49 50 if len(user) > 5: 51 last_seen = user[5] 52 else: 53 last_seen = _("Never seen") 54 55 row = [self.frame.GetStatusImage(0), user[0], "0", "0", trusted, last_seen, user[1], 0, 0, 0] 48 56 if len(user) > 2: 49 57 if user[2]: 50 58 self.notify.append(user[0]) … … 52 60 self.privileged.append(user[0]) 53 61 if trusted: 54 62 self.trusted.append(user[0]) 63 55 64 iter = self.usersmodel.append(row) 56 self.userlist.append([user[0], user[1], iter])65 self.userlist.append([user[0], user[1], last_seen, iter]) 57 66 self.usersmodel.set_sort_column_id(1, gtk.SORT_ASCENDING) 58 67 self.popup_menu = popup = PopupMenu(frame) 59 68 popup.setup( … … 98 107 99 108 store = treeview.get_model() 100 109 iter = store.get_iter(index) 101 if pos == 5:110 if pos == 6: 102 111 self.SetComment(iter, store, value) 103 112 113 def SetLastSeen(self, user, online =False): 114 import time 115 116 last_seen = "" 117 118 if not online: 119 last_seen = time.strftime("%c") 120 121 for i in self.userlist: 122 if i[0] == user: 123 i[2] = last_seen 124 self.usersmodel.set(i[3], 5, last_seen) 125 break 126 127 if not online: 128 self.SaveUserList() 104 129 105 130 def SetComment(self, iter, store, comments=None): 106 131 user = store.get_value(iter, 1) … … 108 133 for i in self.userlist: 109 134 if i[0] == user: 110 135 i[1] = comments 111 self.usersmodel.set(i [2], 5, comments)136 self.usersmodel.set(iter, 6, comments) 112 137 break 113 138 self.SaveUserList() 114 139 115 140 def ConnClose(self): 116 141 for user in self.userlist: 117 self.usersmodel.set(user[2], 0, self.frame.GetStatusImage(0), 2, "0", 3, "0", 6, 0, 7, 0, 8, 0) 142 self.usersmodel.set(user[3], 0, self.frame.GetStatusImage(0), 2, "0", 3, "0", 7, 0, 8, 0, 9, 0) 143 144 for user in self.userlist: 145 if self.usersmodel.get(user[3], 5)[0] is "": 146 self.SetLastSeen(user[0]) 118 147 119 148 def OnPopupMenu(self, widget, event): 120 149 items = self.popup_menu.get_children() … … 143 172 self.popup_menu.popup(None, None, None, event.button, event.time) 144 173 145 174 def GetIter(self, user): 146 iters = [i[2] for i in self.userlist if i[0] == user] 175 iters = [i[3] for i in self.userlist if i[0] == user] 176 147 177 if iters: 148 178 return iters[0] 149 179 else: … … 153 183 iter = self.GetIter(msg.user) 154 184 if iter is None: 155 185 return 156 if msg.status == self.usersmodel.get_value(iter, 6):186 if msg.status == self.usersmodel.get_value(iter, 7): 157 187 return 158 188 if msg.user in self.notify: 159 189 status = [_("User %s is offline"), _("User %s is away"), _("User %s is online")][msg.status] 160 190 self.frame.logMessage(status % msg.user) 161 191 img = self.frame.GetStatusImage(msg.status) 162 self.usersmodel.set(iter, 0, img, 6, msg.status) 192 self.usersmodel.set(iter, 0, img, 7, msg.status) 193 194 if msg.status: # online 195 self.SetLastSeen(msg.user, online=True) 196 elif self.usersmodel.get(iter, 5)[0] is "": # disconnected 197 self.SetLastSeen(msg.user) 163 198 164 199 def GetUserStats(self, msg): 165 200 iter = self.GetIter(msg.user) … … 167 202 return 168 203 hspeed = Humanize(msg.avgspeed) 169 204 hfiles = Humanize(msg.files) 170 self.usersmodel.set(iter, 2, hspeed, 3, hfiles, 7, msg.avgspeed, 8, msg.files)205 self.usersmodel.set(iter, 2, hspeed, 3, hfiles, 8, msg.avgspeed, 9, msg.files) 171 206 172 207 def AddToList(self, user): 173 208 if user in [i[0] for i in self.userlist]: 174 209 return 175 176 row = [self.frame.GetStatusImage(0), user, "0", "0", False, "", 0, 0, 0]210 211 row = [self.frame.GetStatusImage(0), user, "0", "0", False, _("Never seen"), "", 0, 0, 0] 177 212 iter = self.usersmodel.append(row) 178 self.userlist.append([user, "", iter])213 self.userlist.append([user, "", _("Never seen"), iter]) 179 214 180 215 self.SaveUserList() 181 216 self.frame.np.queue.put(slskmessages.AddUser(user)) … … 199 234 for i in self.userlist: 200 235 if i[0] == user: 201 236 i[1] = comments 202 self.usersmodel.set(i[ 2], 5, comments)237 self.usersmodel.set(i[3], 6, comments) 203 238 break 204 239 self.SaveUserList() 205 240 206 241 def SaveUserList(self): 207 242 l = [] 243 208 244 for i in self.userlist: 209 l.append([i[0], i[1], (i[0] in self.notify), (i[0] in self.privileged), (i[0] in self.trusted) ])245 l.append([i[0], i[1], (i[0] in self.notify), (i[0] in self.privileged), (i[0] in self.trusted), i[2]]) 210 246 self.frame.np.config.sections["server"]["userlist"] = l 211 247 self.frame.np.config.writeConfig() 212 248 … … 220 256 for i in self.userlist: 221 257 if i[0] == user: 222 258 self.userlist.remove(i) 223 self.usersmodel.remove(i[ 2])259 self.usersmodel.remove(i[3]) 224 260 break 225 261 self.SaveUserList() 226 262 for widget in self.frame.BuddiesComboEntries: … … 259 295 self.trusted.append(user) 260 296 for i in self.userlist: 261 297 if i[0] == user: 262 self.usersmodel.set(i[ 2], 4, (user in self.trusted))298 self.usersmodel.set(i[3], 4, (user in self.trusted)) 263 299 self.SaveUserList() 264 300
