diff --git a/src/chat.py b/src/chat.py index 6fe2f9242014c2df3289e8e43e0dbfb5ad3b6af1..6f51ef715c2a536516d599e1e44e14e3c6d4fc9c 100644 --- a/src/chat.py +++ b/src/chat.py @@ -691,8 +691,8 @@ def make_link_menu(self, event, kind, text): self.on_join_group_chat_menuitem_activate, text) allow_add = False - if self.plugin.roster.contacts[self.account].has_key(text): - c = self.plugin.roster.contacts[self.account][text][0] + if gajim.contacts[self.account].has_key(text): + c = gajim.contacts[self.account][text][0] if _('not in the roster') in c.groups: allow_add = True else: # he's not at all in the account contacts diff --git a/src/common/gajim.py b/src/common/gajim.py index f22c0461fce0e7ff2d4df129e2563685afc9afc4..ea8f4b081273195cf98238d16a078136e6652fc0 100644 --- a/src/common/gajim.py +++ b/src/common/gajim.py @@ -44,3 +44,17 @@ last_message_time = {} # list of time of the latest incomming message # {acct1: {jid1: time1, jid2: time2}, } encrypted_chats = {} # list of encrypted chats {acct1: [jid1, jid2], ..} + +contacts = {} # list of contacts {acct: {jid1: [C1, C2]}, } one Contact per resource +groups = {} # list of groups +newly_added = {} # list of contacts that has just signed in +to_be_removed = {} # list of contacts that has just signed out +awaiting_messages = {} # list of messages reveived but not printed +nicks = {} # list of our nick names in each account +allow_notifications = {} # do we allow notifications for each account ? +con_types = {} # type of each connection (ssl, tls, tcp, ...) +sleeper_state = {} #whether we pass auto away / xa or not +#0:don't use sleeper for this account +#1:online and use sleeper +#2:autoaway and use sleeper +#3:autoxa and use sleeper diff --git a/src/config.py b/src/config.py index b918ed89cb42eb47df1e9bdc1dc5f6d93603ca43..7da38d8d82b8e991f6c48a1f532c0bc705b02155 100644 --- a/src/config.py +++ b/src/config.py @@ -491,7 +491,7 @@ def merge_windows(self, kind): #open new tabbed chat windows for jid in jids: if kind == 'chats': - user = self.plugin.roster.contacts[acct][jid][0] + user = gajim.contacts[acct][jid][0] self.plugin.roster.new_chat(user, acct) if kind == 'gc': self.plugin.roster.new_room(jid, saved_var[jid]['nick'], acct) @@ -524,7 +524,7 @@ def split_windows(self, kind): #open new tabbed chat windows for jid in jids: if kind == 'chats': - user = self.plugin.roster.contacts[acct][jid][0] + user = gajim.contacts[acct][jid][0] self.plugin.roster.new_chat(user, acct) if kind == 'gc': self.plugin.roster.new_room(jid, saved_var[jid]['nick'], acct) @@ -1165,20 +1165,16 @@ def on_save_button_clicked(self, widget): if name != self.account: #update variables self.plugin.windows[name] = self.plugin.windows[self.account] - self.plugin.queues[name] = self.plugin.queues[self.account] - self.plugin.nicks[name] = self.plugin.nicks[self.account] - self.plugin.allow_notifications[name] = \ - self.plugin.allow_notifications[self.account] - self.plugin.roster.groups[name] = \ - self.plugin.roster.groups[self.account] - self.plugin.roster.contacts[name] = \ - self.plugin.roster.contacts[self.account] - self.plugin.roster.newly_added[name] = \ - self.plugin.roster.newly_added[self.account] - self.plugin.roster.to_be_removed[name] = \ - self.plugin.roster.to_be_removed[self.account] - self.plugin.sleeper_state[name] = \ - self.plugin.sleeper_state[self.account] + gajim.awaiting_messages[name] = \ + gajim.awaiting_messages[self.account] + gajim.nicks[name] = gajim.nicks[self.account] + gajim.allow_notifications[name] = \ + gajim.allow_notifications[self.account] + gajim.groups[name] = gajim.groups[self.account] + gajim.contacts[name] = gajim.contacts[self.account] + gajim.newly_added[name] = gajim.newly_added[self.account] + gajim.to_be_removed[name] = gajim.to_be_removed[self.account] + gajim.sleeper_state[name] = gajim.sleeper_state[self.account] gajim.encrypted_chats[name] = gajim.encrypted_chats[self.account] gajim.last_message_time[name] = \ gajim.last_message_time[self.account] @@ -1195,12 +1191,14 @@ def on_save_button_clicked(self, widget): list[0] = name del self.plugin.windows[self.account] - del self.plugin.queues[self.account] - del self.plugin.nicks[self.account] - del self.plugin.allow_notifications[self.account] - del self.plugin.roster.groups[self.account] - del self.plugin.roster.contacts[self.account] - del self.plugin.sleeper_state[self.account] + del gajim.awaiting_messages[self.account] + del gajim.nicks[self.account] + del gajim.allow_notifications[self.account] + del gajim.groups[self.account] + del gajim.contacts[self.account] + del gajim.newly_added[self.account] + del gajim.to_be_removed[self.account] + del gajim.sleeper_state[self.account] del gajim.encrypted_chats[self.account] del gajim.last_message_time[self.account] gajim.connections[self.account].name = name @@ -1243,15 +1241,15 @@ def on_save_button_clicked(self, widget): #update variables self.plugin.windows[name] = {'infos': {}, 'chats': {}, 'gc': {}, \ 'gc_config': {}} - self.plugin.queues[name] = {} + gajim.awaiting_messages[name] = {} gajim.connections[name].connected = 0 - self.plugin.roster.groups[name] = {} - self.plugin.roster.contacts[name] = {} - self.plugin.roster.newly_added[name] = [] - self.plugin.roster.to_be_removed[name] = [] - self.plugin.nicks[name] = config['name'] - self.plugin.allow_notifications[name] = False - self.plugin.sleeper_state[name] = 0 + gajim.groups[name] = {} + gajim.contacts[name] = {} + gajim.newly_added[name] = [] + gajim.to_be_removed[name] = [] + gajim.nicks[name] = config['name'] + gajim.allow_notifications[name] = False + gajim.sleeper_state[name] = 0 gajim.encrypted_chats[name] = [] gajim.last_message_time[name] = {} #refresh accounts window @@ -1272,7 +1270,7 @@ def on_change_password_button_clicked(self, widget): new_password = dialog.run() if new_password != -1: gajim.connections[self.account].change_password(new_password, \ - self.plugin.nicks[self.account]) + gajim.nicks[self.account]) if self.xml.get_widget('save_password_checkbutton').get_active(): self.xml.get_widget('password_entry').set_text(new_password) @@ -1669,7 +1667,7 @@ def on_ok_button_clicked(self, widget): user1 = Contact(jid = self.service, name = self.service, groups = [_('Transports')], show = 'offline', status = 'offline', sub = 'from') - self.plugin.roster.contacts[self.account][self.service] = [user1] + gajim.contacts[self.account][self.service] = [user1] self.plugin.roster.add_contact_to_roster(self.service, self.account) gajim.connections[self.account].register_agent(self.service, self.infos) self.window.destroy() @@ -2135,7 +2133,7 @@ def on_services_treeview_cursor_changed(self, widget): jid = model.get_value(iter, 1) node = model.get_value(iter, 2) registered_transports = [] - contacts = self.plugin.roster.contacts[self.account] + contacts = gajim.contacts[self.account] for j in contacts: if _('Transports') in contacts[j][0].groups: registered_transports.append(j) @@ -2334,13 +2332,16 @@ def on_remove_button_clicked(self, widget): gajim.config.del_per('accounts', self.account) self.plugin.save_config() del self.plugin.windows[self.account] - del self.plugin.queues[self.account] - del self.plugin.nicks[self.account] - del self.plugin.allow_notifications[self.account] - del self.plugin.roster.groups[self.account] - del self.plugin.roster.contacts[self.account] - del self.plugin.roster.to_be_removed[self.account] - del self.plugin.roster.newly_added[self.account] + del gajim.awaiting_messages[self.account] + del gajim.nicks[self.account] + del gajim.allow_notifications[self.account] + del gajim.groups[self.account] + del gajim.contacts[self.account] + del gajim.to_be_removed[self.account] + del gajim.newly_added[self.account] + del gajim.sleeper_state[self.account] + del gajim.encrypted_chats[self.account] + del gajim.last_message_time[self.account] self.plugin.roster.draw_roster() if self.plugin.windows.has_key('accounts'): self.plugin.windows['accounts'].init_accounts() diff --git a/src/dialogs.py b/src/dialogs.py index 4e14865a35ae17867ad5ed7960026233135eccee..264db0e51cfa2238526a1002567baf3326768a14 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -100,7 +100,7 @@ def group_toggled_cb(self, cell, path): def init_list(self): store = gtk.ListStore(str, bool) self.list.set_model(store) - for g in self.plugin.roster.groups[self.account].keys(): + for g in gajim.groups[self.account].keys(): if g in [_('Transports'), _('not in the roster')]: continue iter = store.append() @@ -268,8 +268,8 @@ def __init__(self, plugin, account, jid = None): liststore.append(['Jabber', '']) self.agents = ['Jabber'] jid_agents = [] - for j in self.plugin.roster.contacts[account]: - user = self.plugin.roster.contacts[account][j][0] + for j in gajim.contacts[account]: + user = gajim.contacts[account][j][0] if _('Transports') in user.groups and user.show != 'offline' and \ user.show != 'error': jid_agents.append(j) @@ -305,7 +305,7 @@ def __init__(self, plugin, account, jid = None): self.group_comboboxentry = self.xml.get_widget('group_comboboxentry') liststore = gtk.ListStore(str) self.group_comboboxentry.set_model(liststore) - for g in self.plugin.roster.groups[account].keys(): + for g in gajim.groups[account].keys(): if g != _('not in the roster') and g != _('Transports'): self.group_comboboxentry.append_text(g) @@ -698,7 +698,7 @@ def on_authorize_button_clicked(self, widget): '''accept the request''' gajim.connections[self.account].send_authorization(self.jid) self.window.destroy() - if not self.plugin.roster.contacts[self.account].has_key(self.jid): + if not gajim.contacts[self.account].has_key(self.jid): AddNewContactWindow(self.plugin, self.account, self.jid) def on_contact_info_button_clicked(self, widget): @@ -735,8 +735,7 @@ def __init__(self, plugin, account, server = '', room = ''): self.window = self.xml.get_widget('join_groupchat_window') self.xml.get_widget('server_entry').set_text(server) self.xml.get_widget('room_entry').set_text(room) - self.xml.get_widget('nickname_entry').set_text( - self.plugin.nicks[self.account]) + self.xml.get_widget('nickname_entry').set_text(gajim.nicks[self.account]) self.xml.signal_autoconnect(self) self.plugin.windows[account]['join_gc'] = self #now add us to open windows our_jid = gajim.config.get_per('accounts', self.account, 'name') + '@' + \ @@ -880,8 +879,8 @@ def __init__(self, plugin, event_type, jid, account, msg_type = ''): event_type_label.set_markup('<b>' + event_type + '</b>') - if self.jid in self.plugin.roster.contacts[account]: - txt = self.plugin.roster.contacts[account][self.jid][0].name + if self.jid in gajim.contacts[account]: + txt = gajim.contacts[account][self.jid][0].name else: txt = self.jid @@ -940,8 +939,8 @@ def adjust_height_and_move_popup_notification_windows(self): def on_popup_notification_window_button_press_event(self, widget, event): # use Contact class, new_chat expects it that way # is it in the roster? - if self.plugin.roster.contacts[self.account].has_key(self.jid): - contact = self.plugin.roster.contacts[self.account][self.jid][0] + if gajim.contacts[self.account].has_key(self.jid): + contact = gajim.contacts[self.account][self.jid][0] else: keyID = '' attached_keys = gajim.config.get_per('accounts', self.account, @@ -951,7 +950,7 @@ def on_popup_notification_window_button_press_event(self, widget, event): contact = Contact(jid = self.jid, name = self.jid.split('@')[0], groups = [_('not in the roster')], show = 'not in the roster', status = _('not in the roster'), sub = 'none', keyID = keyID) - self.plugin.roster.contacts[self.account][self.jid] = [contact] + gajim.contacts[self.account][self.jid] = [contact] self.plugin.roster.add_contact_to_roster(contact.self.jid, self.account) # FIXME: contact.self.jid ??? diff --git a/src/gajim.py b/src/gajim.py index 0830d1832c352767a0428567d0139cffc4cfddf9..8053f5531347131224ce04e55862fd5ccc970047 100755 --- a/src/gajim.py +++ b/src/gajim.py @@ -198,17 +198,17 @@ def handle_event_error_answer(self, account, array): def handle_event_con_type(self, account, con_type): # ('CON_TYPE', account, con_type) which can be 'ssl', 'tls', 'tcp' - self.con_types[account] = con_type + gajim.con_types[account] = con_type def allow_notif(self, account): - self.allow_notifications[account] = True + gajim.allow_notifications[account] = True def handle_event_status(self, account, status): # OUR status #('STATUS', account, status) if status != 'offline': gobject.timeout_add(30000, self.allow_notif, account) else: - self.allow_notifications[account] = False + gajim.allow_notifications[account] = False self.roster.on_status_changed(account, status) if self.remote: self.remote.raise_signal('AccountPresence', (status, account)) @@ -235,8 +235,8 @@ def handle_event_notify(self, account, array): else: ji = jid #Update user - if self.roster.contacts[account].has_key(ji): - luser = self.roster.contacts[account][ji] + if gajim.contacts[account].has_key(ji): + luser = gajim.contacts[account][ji] user1 = None resources = [] for u in luser: @@ -248,7 +248,7 @@ def handle_event_notify(self, account, array): if user1.show in statuss: old_show = statuss.index(user1.show) else: - user1 = self.roster.contacts[account][ji][0] + user1 = gajim.contacts[account][ji][0] if user1.show in statuss: old_show = statuss.index(user1.show) if (resources != [''] and (len(luser) != 1 or @@ -263,20 +263,20 @@ def handle_event_notify(self, account, array): user1.resource = resource if user1.jid.find('@') > 0 and len(luser) == 1: # It's not an agent if old_show == 0 and new_show > 1: - if not user1.jid in self.roster.newly_added[account]: - self.roster.newly_added[account].append(user1.jid) - if user1.jid in self.roster.to_be_removed[account]: - self.roster.to_be_removed[account].remove(user1.jid) + if not user1.jid in gajim.newly_added[account]: + gajim.newly_added[account].append(user1.jid) + if user1.jid in gajim.to_be_removed[account]: + gajim.to_be_removed[account].remove(user1.jid) gobject.timeout_add(5000, self.roster.remove_newly_added, \ user1.jid, account) if old_show > 1 and new_show == 0 and gajim.connections[account].\ connected > 1: - if not user1.jid in self.roster.to_be_removed[account]: - self.roster.to_be_removed[account].append(user1.jid) - if user1.jid in self.roster.newly_added[account]: - self.roster.newly_added[account].remove(user1.jid) + if not user1.jid in gajim.to_be_removed[account]: + gajim.to_be_removed[account].append(user1.jid) + if user1.jid in gajim.newly_added[account]: + gajim.newly_added[account].remove(user1.jid) self.roster.draw_contact(user1.jid, account) - if not self.queues[account].has_key(jid): + if not gajim.awaiting_messages[account].has_key(jid): gobject.timeout_add(5000, self.roster.really_remove_user, \ user1, account) user1.show = array[1] @@ -285,10 +285,10 @@ def handle_event_notify(self, account, array): user1.keyID = keyID if jid.find('@') <= 0: #It must be an agent - if self.roster.contacts[account].has_key(ji): + if gajim.contacts[account].has_key(ji): #Update existing iter self.roster.draw_contact(ji, account) - elif self.roster.contacts[account].has_key(ji): + elif gajim.contacts[account].has_key(ji): #It isn't an agent self.roster.chg_contact_status(user1, array[1], array[2], account) #play sound @@ -297,9 +297,9 @@ def handle_event_notify(self, account, array): 'enabled'): self.play_sound('contact_connected') if not self.windows[account]['chats'].has_key(jid) and \ - not self.queues[account].has_key(jid) and \ + not gajim.awaiting_messages[account].has_key(jid) and \ gajim.config.get('notify_on_signin') and \ - self.allow_notifications[account]: + gajim.allow_notifications[account]: show_notification = False # check OUR status and if we allow notifications for that status if gajim.config.get('autopopupaway'): # always notify @@ -318,7 +318,7 @@ def handle_event_notify(self, account, array): 'enabled'): self.play_sound('contact_disconnected') if not self.windows[account]['chats'].has_key(jid) and \ - not self.queues[account].has_key(jid) and \ + not gajim.awaiting_messages[account].has_key(jid) and \ gajim.config.get('notify_on_signout'): show_notification = False # check OUR status and if we allow notifications for that status @@ -357,7 +357,7 @@ def handle_event_msg(self, account, array): chat_win = self.windows[account]['chats'][fjid] chat_win.print_conversation(array[1], fjid, tim = array[2]) return - qs = self.queues[account] + qs = gajim.awaiting_messages[account] if not qs.has_key(fjid): qs[fjid] = [] qs[fjid].append((array[1], array[2], array[3])) @@ -371,12 +371,12 @@ def handle_event_msg(self, account, array): if gajim.config.get('ignore_unknown_contacts') and \ - not self.roster.contacts[account].has_key(jid): + not gajim.contacts[account].has_key(jid): return first = False if not self.windows[account]['chats'].has_key(jid) and \ - not self.queues[account].has_key(jid): + not gajim.awaiting_messages[account].has_key(jid): first = True if gajim.config.get('notify_on_new_message'): show_notification = False @@ -456,8 +456,8 @@ def handle_event_subscribe(self, account, array): def handle_event_subscribed(self, account, array): #('SUBSCRIBED', account, (jid, resource)) jid = array[0] - if self.roster.contacts[account].has_key(jid): - u = self.roster.contacts[account][jid][0] + if gajim.contacts[account].has_key(jid): + u = gajim.contacts[account][jid][0] u.resource = array[1] self.roster.remove_user(u, account) if _('not in the roster') in u.groups: @@ -475,7 +475,7 @@ def handle_event_subscribed(self, account, array): user1 = Contact(jid = jid, name = jid.split('@')[0], groups = [_('General')], show = 'online', status = 'online', ask = 'to', resource = array[1], keyID = keyID) - self.roster.contacts[account][jid] = [user1] + gajim.contacts[account][jid] = [user1] self.roster.add_contact_to_roster(jid, account) dialogs.InformationDialog(_('Authorization accepted'), _('The contact "%s" has authorized you to see his status.') @@ -526,15 +526,15 @@ def handle_event_acc_ok(self, account, array): if self.windows.has_key('account_modification'): self.windows['account_modification'].account_is_ok(array[0]) self.windows[name] = {'infos': {}, 'chats': {}, 'gc': {}, 'gc_config': {}} - self.queues[name] = {} + gajim.awaiting_messages[name] = {} gajim.connections[name].connected = 0 - self.nicks[name] = array[1]['name'] - self.allow_notifications[name] = False - self.roster.groups[name] = {} - self.roster.contacts[name] = {} - self.roster.newly_added[name] = [] - self.roster.to_be_removed[name] = [] - self.sleeper_state[name] = 0 + gajim.nicks[name] = array[1]['name'] + gajim.allow_notifications[name] = False + gajim.groups[name] = {} + gajim.contacts[name] = {} + gajim.newly_added[name] = [] + gajim.to_be_removed[name] = [] + gajim.sleeper_state[name] = 0 gajim.encrypted_chats[name] = [] gajim.last_message_time[name] = {} if self.windows.has_key('accounts'): @@ -551,7 +551,7 @@ def handle_event_myvcard(self, account, array): if array.has_key('NICKNAME'): nick = array['NICKNAME'] if nick: - self.nicks[account] = nick + gajim.nicks[account] = nick def handle_event_vcard(self, account, array): win = None @@ -617,12 +617,12 @@ def handle_event_bad_passphrase(self, account, array): def handle_event_roster_info(self, account, array): #('ROSTER_INFO', account, (jid, name, sub, ask, groups)) jid = array[0] - if not self.roster.contacts[account].has_key(jid): + if not gajim.contacts[account].has_key(jid): return - users = self.roster.contacts[account][jid] + users = gajim.contacts[account][jid] if not (array[2] or array[3]): self.roster.remove_user(users[0], account) - del self.roster.contacts[account][jid] + del gajim.contacts[account][jid] #TODO if it was the only one in its group, remove the group return for user in users: @@ -655,26 +655,26 @@ def read_sleepy(self): return True # renew timeout (loop for ever) state = self.sleeper.getState() for account in gajim.connections: - if not self.sleeper_state[account]: + if not gajim.sleeper_state[account]: continue if state == common.sleepy.STATE_AWAKE and \ - self.sleeper_state[account] > 1: + gajim.sleeper_state[account] > 1: #we go online self.roster.send_status(account, 'online', 'Online') - self.sleeper_state[account] = 1 + gajim.sleeper_state[account] = 1 elif state == common.sleepy.STATE_AWAY and \ - self.sleeper_state[account] == 1 and \ + gajim.sleeper_state[account] == 1 and \ gajim.config.get('autoaway'): #we go away self.roster.send_status(account, 'away', 'auto away (idle)') - self.sleeper_state[account] = 2 + gajim.sleeper_state[account] = 2 elif state == common.sleepy.STATE_XAWAY and (\ - self.sleeper_state[account] == 2 or \ - self.sleeper_state[account] == 1) and \ + gajim.sleeper_state[account] == 2 or \ + gajim.sleeper_state[account] == 1) and \ gajim.config.get('autoxa'): #we go extended away self.roster.send_status(account, 'xa', 'auto away (idle)') - self.sleeper_state[account] = 3 + gajim.sleeper_state[account] = 3 return True # renew timeout (loop for ever) def autoconnect(self): @@ -879,20 +879,16 @@ def __init__(self): gtk.about_dialog_set_email_hook(self.on_launch_browser_mailer, 'mail') gtk.about_dialog_set_url_hook(self.on_launch_browser_mailer, 'url') self.windows = {'logs':{}} - self.queues = {} - self.nicks = {} - self.allow_notifications = {} - self.con_types = {} - self.sleeper_state = {} #whether we pass auto away / xa or not for a in gajim.connections: self.windows[a] = {'infos': {}, 'chats': {}, 'gc': {}, 'gc_config': {}} - self.queues[a] = {} - self.nicks[a] = gajim.config.get_per('accounts', a, 'name') - self.allow_notifications[a] = False - self.sleeper_state[a] = 0 #0:don't use sleeper for this account - #1:online and use sleeper - #2:autoaway and use sleeper - #3:autoxa and use sleeper + gajim.contacts[a] = {} + gajim.groups[a] = {} + gajim.newly_added[a] = [] + gajim.to_be_removed[a] = [] + gajim.awaiting_messages[a] = {} + gajim.nicks[a] = gajim.config.get_per('accounts', a, 'name') + gajim.allow_notifications[a] = False + gajim.sleeper_state[a] = 0 gajim.encrypted_chats[a] = [] gajim.last_message_time[a] = {} diff --git a/src/history_window.py b/src/history_window.py index 7b3bc5153710cf15c9aa509e9c22c9b9cf995148..020c6075cff8d09d6b1c1086c22612b4616e7dbe 100644 --- a/src/history_window.py +++ b/src/history_window.py @@ -140,7 +140,7 @@ def new_line(self, date, type, data): tag_msg = 'status' elif type == 'recv': try: - name = self.plugin.roster.contacts[self.account][self.jid][0].name + name = gajim.contacts[self.account][self.jid][0].name except: name = None if not name: @@ -148,7 +148,7 @@ def new_line(self, date, type, data): msg = ':'.join(data[0:]) tag_name = 'incoming' elif type == 'sent': - name = self.plugin.nicks[self.account] + name = gajim.nicks[self.account] msg = ':'.join(data[0:]) tag_name = 'outgoing' else: @@ -173,8 +173,8 @@ def __init__(self, plugin, jid, account): self.nb_line = gajim.logger.get_nb_line(jid) xml = gtk.glade.XML(GTKGUI_GLADE, 'history_window', APP) self.window = xml.get_widget('history_window') - if account and self.plugin.roster.contacts[account].has_key(jid): - list_users = self.plugin.roster.contacts[account][self.jid] + if account and gajim.contacts[account].has_key(jid): + list_users = gajim.contacts[account][self.jid] user = list_users[0] title = 'Conversation History with ' + user.name else: diff --git a/src/remote_control.py b/src/remote_control.py index b872bf582bf4e97c6e054fedd9c8af919f9681d1..0191a83914aa8ca2c3583a9633cfc33f19e03340 100644 --- a/src/remote_control.py +++ b/src/remote_control.py @@ -73,7 +73,6 @@ class SignalObject(DbusPrototype): def __init__(self, service, plugin): self.plugin = plugin self.first_show = True - self.contacts = self.plugin.roster.contacts self.vcard_account = None # register our dbus API @@ -121,8 +120,8 @@ def send_message(self, *args): if account: self.plugin.connections[account].send_message(jid, message, keyID) else: - for account in self.contacts.keys(): - if self.contacts[account].has_key(jid): + for account in gajim.contacts.keys(): + if gajim.contacts[account].has_key(jid): gajim.connections[account].send_message(jid, message, keyID) return True @@ -138,14 +137,14 @@ def new_message(self, *args): if account: accounts = [account] else: - accounts = self.contacts.keys() + accounts = gajim.connections.keys() for account in accounts: if self.plugin.windows[account]['chats'].has_key(jid): self.plugin.windows[account]['chats'][jid].set_active_tab(jid) break - elif self.contacts[account].has_key(jid): - self.plugin.roster.new_chat(self.contacts[account][jid][0], + elif gajim.contacts[account].has_key(jid): + self.plugin.roster.new_chat(gajim.contacts[account][jid][0], account) jid_data = self.plugin.windows[account]['chats'][jid] jid_data.set_active_tab(jid) @@ -170,7 +169,7 @@ def change_status(self, *args, **keywords): status, message) else: # account not specified, so change the status of all accounts - for acc in self.contacts.keys(): + for acc in gajim.contacts.keys(): gobject.idle_add(self.plugin.roster.send_status, acc, status, message) return None @@ -190,7 +189,7 @@ def show_next_unread(self, *args): jid_tab = acc['chats'][jid] else: self.plugin.roster.new_chat( - self.contacts[account][jid][0], account) + gajim.contacts[account][jid][0], account) jid_tab = acc['chats'][jid] if jid_tab: jid_tab.set_active_tab(jid) @@ -210,11 +209,11 @@ def contact_info(self, *args): # FIXME: raise exception for missing argument (0.3+) return None - accounts = self.contacts.keys() + accounts = gajim.contacts.keys() iq = None for account in accounts: - if self.contacts[account].has_key(jid): + if gajim.contacts[account].has_key(jid): self.vcard_account = account gajim.connections[account].register_handler('VCARD', self._receive_vcard) @@ -224,8 +223,8 @@ def contact_info(self, *args): def list_accounts(self, *args): ''' list register accounts ''' - if self.contacts: - result = self.contacts.keys() + if gajim.contacts: + result = gajim.contacts.keys() if result and len(result) > 0: return result return None @@ -236,13 +235,13 @@ def list_contacts(self, *args): then return the contacts for the specified account ''' [for_account] = self._get_real_arguments(args, 1) result = [] - if not self.contacts or len(self.contacts) == 0: + if not gajim.contacts or len(gajim.contacts) == 0: return None if for_account: - if self.contacts.has_key(for_account): - for jid in self.contacts[for_account]: + if gajim.contacts.has_key(for_account): + for jid in gajim.contacts[for_account]: item = self._serialized_contacts( - self.contacts[for_account][jid]) + gajim.contacts[for_account][jid]) if item: result.append(item) else: @@ -250,9 +249,9 @@ def list_contacts(self, *args): # FIXME: there can be a return status for this [0.3+] return None else: - for account in self.contacts: - for jid in self.contacts[account]: - item = self._serialized_contacts(self.contacts[account][jid]) + for account in gajim.contacts: + for jid in gajim.contacts[account]: + item = self._serialized_contacts(gajim.contacts[account][jid]) if item: result.append(item) # dbus 0.40 does not support return result as empty list diff --git a/src/roster_window.py b/src/roster_window.py index 03aebbca2571da055b8467db5ea169c2c9f03fc4..88373b7d3ee743d9a31c8ff4cbf28c33c5f348c7 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -96,9 +96,9 @@ def add_account_to_roster(self, account): status = statuss[gajim.connections[account].connected] tls_pixbuf = None - if self.plugin.con_types.has_key(account) and\ - (self.plugin.con_types[account] == 'tls' or\ - self.plugin.con_types[account] == 'ssl'): + if gajim.con_types.has_key(account) and \ + (gajim.con_types[account] == 'tls' or \ + gajim.con_types[account] == 'ssl'): tls_pixbuf = self.window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU) # the only way to create a pixbuf from stock @@ -106,16 +106,16 @@ def add_account_to_roster(self, account): 'account', account, account, False, tls_pixbuf]) def remove_newly_added(self, jid, account): - if jid in self.newly_added[account]: - self.newly_added[account].remove(jid) + if jid in gajim.newly_added[account]: + gajim.newly_added[account].remove(jid) self.draw_contact(jid, account) def add_contact_to_roster(self, jid, account): '''Add a contact to the roster and add groups if they aren't in roster''' showOffline = gajim.config.get('showoffline') - if not self.contacts[account].has_key(jid): + if not gajim.contacts[account].has_key(jid): return - users = self.contacts[account][jid] + users = gajim.contacts[account][jid] user = users[0] if user.jid.find('@') <= 0: # if not '@' or '@' starts the jid ==> agent user.groups = [_('Transports')] @@ -125,7 +125,7 @@ def add_contact_to_roster(self, jid, account): if (user.show == 'offline' or user.show == 'error') and \ not showOffline and (not _('Transports') in user.groups or \ gajim.connections[account].connected < 2) and \ - not self.plugin.queues[account].has_key(user.jid): + not gajim.awaiting_messages[account].has_key(user.jid): return model = self.tree.get_model() @@ -135,12 +135,12 @@ def add_contact_to_roster(self, jid, account): IterAcct = self.get_account_iter(account) iterG = model.append(IterAcct, [self.jabber_state_images['closed'], g, 'group', g, account, False, None]) - if not self.groups[account].has_key(g): #It can probably never append + if not gajim.groups[account].has_key(g): #It can probably never append if account + g in self.collapsed_rows: ishidden = False else: ishidden = True - self.groups[account][g] = { 'expand': ishidden } + gajim.groups[account][g] = { 'expand': ishidden } if not account in self.collapsed_rows and \ not gajim.config.get('mergeaccounts'): self.tree.expand_row((model.get_path(iterG)[0]), False) @@ -152,18 +152,18 @@ def add_contact_to_roster(self, jid, account): model.append(iterG, [self.jabber_state_images[user.show], user.name, typestr, user.jid, account, False, None]) # FIXME None --> avatar - if self.groups[account][g]['expand']: + if gajim.groups[account][g]['expand']: self.tree.expand_row(model.get_path(iterG), False) self.draw_contact(jid, account) def really_remove_user(self, user, account): - if user.jid in self.newly_added[account]: + if user.jid in gajim.newly_added[account]: return if user.jid.find('@') < 1 and gajim.connections[account].connected > 1: # It's an agent return - if user.jid in self.to_be_removed[account]: - self.to_be_removed[account].remove(user.jid) + if user.jid in gajim.to_be_removed[account]: + gajim.to_be_removed[account].remove(user.jid) if gajim.config.get('showoffline'): self.draw_contact(user.jid, account) return @@ -171,7 +171,7 @@ def really_remove_user(self, user, account): def remove_user(self, user, account): '''Remove a user from the roster''' - if user.jid in self.to_be_removed[account]: + if user.jid in gajim.to_be_removed[account]: return model = self.tree.get_model() for i in self.get_contact_iter(user.jid, account): @@ -182,12 +182,13 @@ def remove_user(self, user, account): model.remove(parent_i) # We need to check all contacts, even offline contacts group_empty = True - for jid in self.contacts[account]: - if group in self.contacts[account][jid][0].groups: + for jid in gajim.contacts[account]: + if group in gajim.contacts[account][jid][0].groups: group_empty = False break if group_empty: - del self.groups[account][group] + del gajim.groups[account][group] + def get_transport_name_by_jid(self,jid): if not jid or not gajim.config.get('use_transports_iconsets'): return None @@ -224,7 +225,7 @@ def draw_contact(self, jid, account): iters = self.get_contact_iter(jid, account) if len(iters) == 0: return - users = self.contacts[account][jid] + users = gajim.contacts[account][jid] name = users[0].name if len(users) > 1: name += ' (' + str(len(users)) + ')' @@ -236,7 +237,7 @@ def draw_contact(self, jid, account): user = u state_images = self.get_appropriate_state_images(jid) - if self.plugin.queues[account].has_key(jid): + if gajim.awaiting_messages[account].has_key(jid): img = state_images['message'] elif jid.find('@') <= 0: # if not '@' or '@' starts the jid ==> agent img = state_images[user.show] @@ -517,15 +518,15 @@ def draw_roster(self): self.tree.get_model().clear() for acct in gajim.connections: self.add_account_to_roster(acct) - for jid in self.contacts[acct].keys(): + for jid in gajim.contacts[acct].keys(): self.add_contact_to_roster(jid, acct) def mklists(self, array, account): - '''fill self.contacts and self.groups''' - if not self.contacts.has_key(account): - self.contacts[account] = {} - if not self.groups.has_key(account): - self.groups[account] = {} + '''fill gajim.contacts and gajim.groups''' + if not gajim.contacts.has_key(account): + gajim.contacts[account] = {} + if not gajim.groups.has_key(account): + gajim.groups[account] = {} for jid in array.keys(): jids = jid.split('/') #get jid @@ -555,26 +556,26 @@ def mklists(self, array, account): # when we draw the roster, we avoid having the same contact # more than once (eg. we avoid showing it twice with 2 resources) - self.contacts[account][ji] = [user1] + gajim.contacts[account][ji] = [user1] for g in array[jid]['groups'] : - if g in self.groups[account].keys(): + if g in gajim.groups[account].keys(): continue if account + g in self.collapsed_rows: ishidden = False else: ishidden = True - self.groups[account][g] = { 'expand': ishidden } + gajim.groups[account][g] = { 'expand': ishidden } def chg_contact_status(self, user, show, status, account): '''When a contact changes his status''' showOffline = gajim.config.get('showoffline') model = self.tree.get_model() - luser = self.contacts[account][user.jid] + luser = gajim.contacts[account][user.jid] user.show = show user.status = status if (show == 'offline' or show == 'error') and \ - not self.plugin.queues[account].has_key(user.jid): + not gajim.awaiting_messages[account].has_key(user.jid): if len(luser) > 1: luser.remove(user) self.draw_contact(user.jid, account) @@ -640,7 +641,7 @@ def on_roster_treeview_motion_notify_event(self, widget, event): if self.tooltip.timeout == 0 or self.tooltip.path != props[0]: self.tooltip.path = row self.tooltip.timeout = gobject.timeout_add(500, - self.show_tooltip, self.contacts[account][jid]) + self.show_tooltip, gajim.contacts[account][jid]) def on_agent_logging(self, widget, jid, state, account): '''When an agent is requested to log in or off''' @@ -659,14 +660,14 @@ def on_remove_agent(self, widget, contact, account): # remove transport from treeview self.remove_user(contact, account) # remove transport's contacts from treeview - for jid, contacts in self.contacts[account].items(): + for jid, contacts in gajim.contacts[account].items(): contact = contacts[0] if jid.endswith('@' + contact.jid): gajim.log.debug( 'Removing contact %s due to unregistered transport %s'\ % (contact.jid, contact.name)) self.remove_user(contact, account) - del self.contacts[account][contact.jid] + del gajim.contacts[account][contact.jid] def on_rename(self, widget, iter, path): model = self.tree.get_model() @@ -694,7 +695,7 @@ def on_assign_pgp_key(self, widget, user, account): del keys[user.jid] else: keys[user.jid] = keyID[0] - for u in self.contacts[account][user.jid]: + for u in gajim.contacts[account][user.jid]: u.keyID = keyID[0] if self.plugin.windows[account]['chats'].has_key(user.jid): self.plugin.windows[account]['chats'][user.jid].draw_widgets(user) @@ -724,7 +725,7 @@ def mk_menu_user(self, event, iter): jid = model.get_value(iter, 3) path = model.get_path(iter) account = model.get_value(iter, 4) - contact = self.contacts[account][jid][0] + contact = gajim.contacts[account][jid][0] xml = gtk.glade.XML(GTKGUI_GLADE, 'roster_contact_context_menu', APP) @@ -818,14 +819,14 @@ def mk_menu_agent(self, event, iter): jid = model.get_value(iter, 3) path = model.get_path(iter) account = model.get_value(iter, 4) - user = self.contacts[account][jid][0] + user = gajim.contacts[account][jid][0] menu = gtk.Menu() item = gtk.ImageMenuItem(_('_Log on')) icon = gtk.image_new_from_stock(gtk.STOCK_YES, gtk.ICON_SIZE_MENU) item.set_image(icon) menu.append(item) - show = self.contacts[account][jid][0].show + show = gajim.contacts[account][jid][0].show if show != 'offline' and show != 'error': item.set_sensitive(False) item.connect('activate', self.on_agent_logging, jid, None, account) @@ -961,7 +962,7 @@ def req_sub(self, widget, jid, txt, account, group=None, pseudo=None): gajim.connections[account].request_subscription(jid, txt) if not group: group = _('General') - if not self.contacts[account].has_key(jid): + if not gajim.contacts[account].has_key(jid): keyID = '' attached_keys = gajim.config.get_per('accounts', account, 'attached_gpg_keys').split() @@ -970,9 +971,9 @@ def req_sub(self, widget, jid, txt, account, group=None, pseudo=None): user1 = Contact(jid = jid, name = pseudo, groups = [group], show = 'requested', status = 'requested', ask = 'none', sub = 'subscribe', keyID = keyID) - self.contacts[account][jid] = [user1] + gajim.contacts[account][jid] = [user1] else: - user1 = self.contacts[account][jid][0] + user1 = gajim.contacts[account][jid][0] if not _('not in the roster') in user1.groups: dialogs.InformationDialog(_('Subscription request has been sent'), _('If "%s" accepts this request you will know his status.') %jid).get_response() @@ -1010,7 +1011,7 @@ def on_roster_treeview_key_press_event(self, widget, event): jid = model.get_value(iter, 3) account = model.get_value(iter, 4) type = model.get_value(iter, 2) - user = self.contacts[account][jid][0] + user = gajim.contacts[account][jid][0] if type == 'contact': self.on_req_usub(widget, user, account) elif type == 'agent': @@ -1074,8 +1075,8 @@ def on_roster_treeview_button_press_event(self, widget, event): jid = model.get_value(iter, 3) if self.plugin.windows[account]['chats'].has_key(jid): self.plugin.windows[account]['chats'][jid].set_active_tab(jid) - elif self.contacts[account].has_key(jid): - self.new_chat(self.contacts[account][jid][0], account) + elif gajim.contacts[account].has_key(jid): + self.new_chat(gajim.contacts[account][jid][0], account) self.plugin.windows[account]['chats'][jid].set_active_tab(jid) self.plugin.windows[account]['chats'][jid].window.present() return True @@ -1103,14 +1104,14 @@ def on_req_usub(self, widget, user, account): _('By removing this contact you also remove authorization. Contact "%s" will always see you as offline.') % user.name) if window.get_response() == gtk.RESPONSE_OK: gajim.connections[account].unsubscribe(user.jid) - for u in self.contacts[account][user.jid]: + for u in gajim.contacts[account][user.jid]: self.remove_user(u, account) - del self.contacts[account][u.jid] + del gajim.contacts[account][u.jid] if user.jid in self.plugin.windows[account]['chats']: user1 = Contact(jid = user.jid, name = user.name, groups = [_('not in the roster')], show = _('not in the roster'), status = _('not in the roster'), ask = 'none', keyID = user.keyID) - self.contacts[account][user.jid] = [user1] + gajim.contacts[account][user.jid] = [user1] self.add_contact_to_roster(user.jid, account) def forget_gpg_passphrase(self, keyid): @@ -1187,9 +1188,9 @@ def send_status(self, account, status, txt, sync = False): txt) if status == 'online' and self.plugin.sleeper.getState() != \ common.sleepy.STATE_UNKNOWN: - self.plugin.sleeper_state[account] = 1 + gajim.sleeper_state[account] = 1 else: - self.plugin.sleeper_state[account] = 0 + gajim.sleeper_state[account] = 0 def get_status_message(self, show): if (show == 'online' and not gajim.config.get('ask_online_status')) or \ @@ -1254,15 +1255,15 @@ def update_status_comboxbox(self): def on_status_changed(self, account, status): '''the core tells us that our status has changed''' - if not self.contacts.has_key(account): + if not gajim.contacts.has_key(account): return model = self.tree.get_model() accountIter = self.get_account_iter(account) if accountIter: model.set_value(accountIter, 0, self.jabber_state_images[status]) if status == 'offline': - for jid in self.contacts[account]: - luser = self.contacts[account][jid] + for jid in gajim.contacts[account]: + luser = gajim.contacts[account][jid] luser_copy = [] for user in luser: luser_copy.append(user) @@ -1286,8 +1287,8 @@ def new_chat(self, user, account): tabbed_chat_window.TabbedChatWindow(user, self.plugin, account) def new_chat_from_jid(self, account, jid): - if self.contacts[account].has_key(jid): - user = self.contacts[account][jid][0] + if gajim.contacts[account].has_key(jid): + user = gajim.contacts[account][jid][0] else: keyID = '' attached_keys = gajim.config.get_per('accounts', account, @@ -1297,7 +1298,7 @@ def new_chat_from_jid(self, account, jid): user = Contact(jid = jid, name = jid.split('@')[0], groups = [_('not in the roster')], show = _('not in the roster'), status = _('not in the roster'), sub = 'none', keyID = keyID) - self.contacts[account][jid] = [user] + gajim.contacts[account][jid] = [user] self.add_contact_to_roster(user.jid, account) if not self.plugin.windows[account]['chats'].has_key(jid): @@ -1322,7 +1323,7 @@ def new_room(self, jid, nick, account): def on_message(self, jid, msg, tim, account, encrypted = False,\ msg_type = '', subject = None): '''when we receive a message''' - if not self.contacts[account].has_key(jid): + if not gajim.contacts[account].has_key(jid): keyID = '' attached_keys = gajim.config.get_per('accounts', account, 'attached_gpg_keys').split() @@ -1331,7 +1332,7 @@ def on_message(self, jid, msg, tim, account, encrypted = False,\ user1 = Contact(jid = jid, name = jid.split('@')[0], groups = [_('not in the roster')], show = _('not in the roster'), status = _('not in the roster'), ask = 'none', keyID = keyID) - self.contacts[account][jid] = [user1] + gajim.contacts[account][jid] = [user1] self.add_contact_to_roster(jid, account) iters = self.get_contact_iter(jid, account) @@ -1346,13 +1347,13 @@ def on_message(self, jid, msg, tim, account, encrypted = False,\ if msg_type == 'normal': # it's single message #FIXME: take into account autopopup and autopopupaway # if user doesn't want to be bugged do it as we do the 'chat' - contact = self.contacts[account][jid][0] + contact = gajim.contacts[account][jid][0] dialogs.SingleMessageWindow(self.plugin, account, contact, action = 'receive', from_whom = jid, subject = subject, message = msg) return # Do we have a queue? - qs = self.plugin.queues[account] + qs = gajim.awaiting_messages[account] no_queue = True if qs.has_key(jid): no_queue = False @@ -1385,7 +1386,7 @@ def on_message(self, jid, msg, tim, account, encrypted = False,\ self.tree.set_cursor(path) else: if not self.plugin.windows[account]['chats'].has_key(jid): - self.new_chat(self.contacts[account][jid][0], account) + self.new_chat(gajim.contacts[account][jid][0], account) if path: self.tree.expand_row(path[0:1], False) self.tree.expand_row(path[0:2], False) @@ -1540,8 +1541,8 @@ def on_roster_treeview_row_activated(self, widget, path, col = 0): else: if self.plugin.windows[account]['chats'].has_key(jid): self.plugin.windows[account]['chats'][jid].set_active_tab(jid) - elif self.contacts[account].has_key(jid): - self.new_chat(self.contacts[account][jid][0], account) + elif gajim.contacts[account].has_key(jid): + self.new_chat(gajim.contacts[account][jid][0], account) self.plugin.windows[account]['chats'][jid].set_active_tab(jid) self.plugin.windows[account]['chats'][jid].window.present() @@ -1557,21 +1558,20 @@ def on_roster_treeview_row_expanded(self, widget, iter, path): model.set_value(iter, 0, self.jabber_state_images['opened']) jid = model.get_value(iter, 3) for account in accounts: - if self.groups[account].has_key(jid): # This account has this group - self.groups[account][jid]['expand'] = True + if gajim.groups[account].has_key(jid): # This account has this group + gajim.groups[account][jid]['expand'] = True if account + jid in self.collapsed_rows: self.collapsed_rows.remove(account + jid) elif type == 'account': account = accounts[0] # There is only one cause we don't use merge if account in self.collapsed_rows: self.collapsed_rows.remove(account) - for g in self.groups[account]: + for g in gajim.groups[account]: groupIter = self.get_group_iter(g, account) - if groupIter and self.groups[account][g]['expand']: + if groupIter and gajim.groups[account][g]['expand']: pathG = model.get_path(groupIter) self.tree.expand_row(pathG, False) - - + def on_roster_treeview_row_collapsed(self, widget, iter, path): '''When a row is collapsed : change the icon of the arrow''' @@ -1585,8 +1585,8 @@ def on_roster_treeview_row_collapsed(self, widget, iter, path): model.set_value(iter, 0, self.jabber_state_images['closed']) jid = model.get_value(iter, 3) for account in accounts: - if self.groups[account].has_key(jid): # This account has this group - self.groups[account][jid]['expand'] = False + if gajim.groups[account].has_key(jid): # This account has this group + gajim.groups[account][jid]['expand'] = False if not account + jid in self.collapsed_rows: self.collapsed_rows.append(account + jid) elif type == 'account': @@ -1610,17 +1610,17 @@ def on_cell_edited(self, cell, row, new_text): jid = model.get_value(iter, 3) type = model.get_value(iter, 2) if type == 'contact': - old_text = self.contacts[account][jid][0].name + old_text = gajim.contacts[account][jid][0].name if old_text != new_text: - for u in self.contacts[account][jid]: + for u in gajim.contacts[account][jid]: u.name = new_text gajim.connections[account].update_contact(jid, new_text, u.groups) self.draw_contact(jid, account) elif type == 'group': old_name = model.get_value(iter, 1) #get all users in that group - for jid in self.contacts[account]: - user = self.contacts[account][jid][0] + for jid in gajim.contacts[account]: + user = gajim.contacts[account][jid][0] if old_name in user.groups: #set them in the new one and remove it from the old self.remove_user(user, account) @@ -1723,9 +1723,9 @@ def iconCellDataFunc(self, column, renderer, model, iter, data = None): else: jid = model.get_value(iter, 3) account = model.get_value(iter, 4) - if jid in self.newly_added[account]: + if jid in gajim.newly_added[account]: renderer.set_property('cell-background', '#adc3c6') - elif jid in self.to_be_removed[account]: + elif jid in gajim.to_be_removed[account]: renderer.set_property('cell-background', '#ab6161') else: renderer.set_property('cell-background', @@ -1758,9 +1758,9 @@ def nameCellDataFunc(self, column, renderer, model, iter, data = None): account = model.get_value(iter, 4) renderer.set_property('foreground', gajim.config.get_per('themes', theme, 'contacttextcolor')) - if jid in self.newly_added[account]: + if jid in gajim.newly_added[account]: renderer.set_property('cell-background', '#adc3c6') - elif jid in self.to_be_removed[account]: + elif jid in gajim.to_be_removed[account]: renderer.set_property('cell-background', '#ab6161') else: renderer.set_property('cell-background', @@ -1781,9 +1781,9 @@ def fill_secondary_pixbuf_rederer(self, column, renderer, model, iter, data=None else: jid = model.get_value(iter, 3) account = model.get_value(iter, 4) - if jid in self.newly_added[account]: + if jid in gajim.newly_added[account]: renderer.set_property('cell-background', '#adc3c6') - elif jid in self.to_be_removed[account]: + elif jid in gajim.to_be_removed[account]: renderer.set_property('cell-background', '#ab6161') else: renderer.set_property('cell-background', @@ -1823,8 +1823,8 @@ def compareIters(self, model, iter1, iter2, data = None): if account and model.get_value(iter2, 4) == account: jid1 = model.get_value(iter1, 3) jid2 = model.get_value(iter2, 3) - luser1 = self.contacts[account][jid1] - luser2 = self.contacts[account][jid2] + luser1 = gajim.contacts[account][jid1] + luser2 = gajim.contacts[account][jid2] cshow = {'online':0, 'chat': 1, 'away': 2, 'xa': 3, 'dnd': 4, 'invisible': 5, 'offline': 6, _('not in the roster'): 7, 'error': 8} s = self.get_show(luser1) @@ -1897,18 +1897,18 @@ def drag_data_received_data(self, treeview, context, x, y, selection, info, return # We upgrade only the first user because user2.groups is a pointer to # user1.groups - u = self.contacts[account][data][0] + u = gajim.contacts[account][data][0] u.groups.remove(grp_source) if model.iter_n_children(iter_group_source) == 1: #this was the only child model.remove(iter_group_source) #delete the group if it is empty (need to look for offline users too) group_empty = True - for jid in self.contacts[account]: - if grp_source in self.contacts[account][jid][0].groups: + for jid in gajim.contacts[account]: + if grp_source in gajim.contacts[account][jid][0].groups: group_empty = False break if group_empty: - del self.groups[account][grp_source] + del gajim.groups[account][grp_source] if not grp_dest in u.groups: u.groups.append(grp_dest) self.add_contact_to_roster(data, account) @@ -1947,20 +1947,9 @@ def __init__(self, plugin): self.window.resize(gajim.config.get('width'), gajim.config.get('height')) - self.groups = {} - # contacts[account][jid] is a list of all Contact instances: - # one per resource - self.contacts = {} - self.newly_added = {} - self.to_be_removed = {} self.popups_notification_height = 0 self.popup_notification_windows = [] self.gpg_passphrase = {} - for a in gajim.connections: - self.contacts[a] = {} - self.groups[a] = {} - self.newly_added[a] = [] - self.to_be_removed[a] = [] #(icon, name, type, jid, account, editable, secondary_pixbuf) model = gtk.TreeStore(gtk.Image, str, str, str, str, bool, gtk.gdk.Pixbuf) model.set_sort_func(1, self.compareIters) diff --git a/src/systray.py b/src/systray.py index dfec9e9051ed42d5218aa3cab126954ade2feee1..0f31ed8ebd6bd97335daed8bd9448b1a9950ca47 100644 --- a/src/systray.py +++ b/src/systray.py @@ -108,9 +108,9 @@ def start_chat(self, widget, account, jid): if self.plugin.windows[account]['chats'].has_key(jid): self.plugin.windows[account]['chats'][jid].window.present() self.plugin.windows[account]['chats'][jid].set_active_tab(jid) - elif self.plugin.roster.contacts[account].has_key(jid): + elif gajim.contacts[account].has_key(jid): self.plugin.roster.new_chat( - self.plugin.roster.contacts[account][jid][0], account) + gajim.contacts[account][jid][0], account) self.plugin.windows[account]['chats'][jid].set_active_tab(jid) def on_new_message_menuitem_activate(self, widget, account): @@ -204,7 +204,7 @@ def on_quit_menuitem_activate(self, widget): def make_groups_submenus_for_chat_with(self, account): groups_menu = gtk.Menu() - for group in self.plugin.roster.groups[account].keys(): + for group in gajim.groups[account].keys(): if group == _('Transports'): continue # at least one 'not offline' or 'without errors' in this group @@ -213,7 +213,7 @@ def make_groups_submenus_for_chat_with(self, account): groups_menu.append(item) contacts_menu = gtk.Menu() item.set_submenu(contacts_menu) - for users in self.plugin.roster.contacts[account].values(): + for users in gajim.contacts[account].values(): user = users[0] if group in user.groups and user.show != 'offline' and \ user.show != 'error': @@ -252,7 +252,7 @@ def on_clicked(self, widget, event): w = acc['chats'][jid] else: self.plugin.roster.new_chat( - self.plugin.roster.contacts[account][jid][0], account) + gajim.contacts[account][jid][0], account) acc['chats'][jid].set_active_tab(jid) acc['chats'][jid].window.present() if w: diff --git a/src/tabbed_chat_window.py b/src/tabbed_chat_window.py index 56af78cef7ae561dfc65175c15b6e3f438aa05a5..fe8126b4f392b3eaece4f5d50d096857a3ac2aef 100644 --- a/src/tabbed_chat_window.py +++ b/src/tabbed_chat_window.py @@ -154,8 +154,8 @@ def set_avatar(self, vcard): def set_state_image(self, jid): prio = 0 - if self.plugin.roster.contacts[self.account].has_key(jid): - list_users = self.plugin.roster.contacts[self.account][jid] + if gajim.contacts[self.account].has_key(jid): + list_users = gajim.contacts[self.account][jid] else: list_users = [self.users[jid]] user = list_users[0] @@ -270,7 +270,7 @@ def new_user(self, user): self.restore_conversation(user.jid) #print queued messages - if self.plugin.queues[self.account].has_key(user.jid): + if gajim.awaiting_messages[self.account].has_key(user.jid): self.read_queue(user.jid) gajim.connections[self.account].request_vcard(user.jid) @@ -362,21 +362,21 @@ def on_contact_button_clicked(self, widget): def read_queue(self, jid): """read queue and print messages containted in it""" - l = self.plugin.queues[self.account][jid] + l = gajim.awaiting_messages[self.account][jid] user = self.users[jid] for event in l: self.print_conversation(event[0], jid, tim = event[1], encrypted = event[2]) self.plugin.roster.nb_unread -= 1 self.plugin.roster.show_title() - del self.plugin.queues[self.account][jid] + del gajim.awaiting_messages[self.account][jid] self.plugin.roster.draw_contact(jid, self.account) if self.plugin.systray_enabled: self.plugin.systray.remove_jid(jid, self.account) showOffline = gajim.config.get('showoffline') if (user.show == 'offline' or user.show == 'error') and \ not showOffline: - if len(self.plugin.roster.contacts[self.account][jid]) == 1: + if len(gajim.contacts[self.account][jid]) == 1: self.plugin.roster.really_remove_user(user, self.account) def print_conversation(self, text, jid, contact = '', tim = None, @@ -404,7 +404,7 @@ def print_conversation(self, text, jid, contact = '', tim = None, self.xmls[jid].get_widget('gpg_togglebutton').set_active(encrypted) if contact: kind = 'outgoing' - name = self.plugin.nicks[self.account] + name = gajim.nicks[self.account] else: kind = 'incoming' name = user.name @@ -431,8 +431,8 @@ def restore_conversation(self, jid): count = gajim.logger.get_nb_line(jid) - if self.plugin.queues[self.account].has_key(jid): - pos = len(self.plugin.queues[self.account][jid]) + if gajim.awaiting_messages[self.account].has_key(jid): + pos = len(gajim.awaiting_messages[self.account][jid]) else: pos = 0 @@ -461,7 +461,7 @@ def restore_conversation(self, jid): for msg in lines: if msg[1] == 'sent': kind = 'outgoing' - name = self.plugin.nicks[self.account] + name = gajim.nicks[self.account] elif msg[1] == 'recv': kind = 'incoming' name = self.users[jid].name diff --git a/src/vcard.py b/src/vcard.py index 21e14abc529a02ab12f26e8f18c1d00f35623453..e3ed30573a44989cac92341b3d2c492d4b0db5ef 100644 --- a/src/vcard.py +++ b/src/vcard.py @@ -275,8 +275,8 @@ def fill_jabber_page(self): self.os_info = {0: {'resource': self.user.resource, 'client': '', 'os': ''}} i = 1 - if self.plugin.roster.contacts[self.account].has_key(self.user.jid): - for u in self.plugin.roster.contacts[self.account][self.user.jid]: + if gajim.contacts[self.account].has_key(self.user.jid): + for u in gajim.contacts[self.account][self.user.jid]: if u.resource != self.user.resource: resources += '\n' + u.resource + ' (' + str(u.priority) + ')' if not u.status: @@ -365,7 +365,7 @@ def on_publish_button_clicked(self, widget): nick = vcard['NICKNAME'] if nick == '': nick = gajim.config.get_per('accounts', self.account, 'name') - self.plugin.nicks[self.account] = nick + gajim.nicks[self.account] = nick gajim.connections[self.account].send_vcard(vcard) def on_retrieve_button_clicked(self, widget):