From c99048b02fc0063662f8310e5707f62f90778232 Mon Sep 17 00:00:00 2001 From: Stephan Erb Date: Tue, 8 Jul 2008 19:15:54 +0000 Subject: [PATCH] Fix two caps related tracebacks: Quick fix: What does not exist cannot support anything. Fixes #4031. Fix variable referencing. Fixes #4076. --- src/common/caps.py | 2 +- src/dialogs.py | 9 +++++---- src/roster_window.py | 11 +++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/common/caps.py b/src/common/caps.py index df73baec1..3dc278602 100644 --- a/src/common/caps.py +++ b/src/common/caps.py @@ -180,7 +180,7 @@ class CapsCache(object): con.discoverInfo(jid, '%s#%s' % (node, hash)) def is_supported(self, contact, feature): - if not contact.resource: + if not contact or not contact.resource: return False # FIXME: We assume everything is supported if we got no caps. diff --git a/src/dialogs.py b/src/dialogs.py index 76ea79e4a..e2a9fd651 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -2315,9 +2315,9 @@ class SingleMessageWindow: if gajim.connections[self.account].connected <= 1: # if offline or connecting ErrorDialog(_('Connection not available'), - _('Please make sure you are connected with "%s".') % self.account) + _('Please make sure you are connected with "%s".') % self.account) return - if type(self.to) == type([]): + if isinstance(self.to, list): sender_list = [i[0].jid + '/' + i[0].resource for i in self.to] else: sender_list = [self.to_entry.get_text().decode('utf-8')] @@ -2325,14 +2325,15 @@ class SingleMessageWindow: for to_whom_jid in sender_list: if self.completion_dict.has_key(to_whom_jid): to_whom_jid = self.completion_dict[to_whom_jid].jid + subject = self.subject_entry.get_text().decode('utf-8') begin, end = self.message_tv_buffer.get_bounds() message = self.message_tv_buffer.get_text(begin, end).decode('utf-8') - if to_whom_jid.find('/announce/') != -1: + if '/announce/' in to_whom_jid: gajim.connections[self.account].send_motd(to_whom_jid, subject, message) - return + continue if self.session: session = self.session diff --git a/src/roster_window.py b/src/roster_window.py index 8f0255612..7d12086fc 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -5493,13 +5493,12 @@ class RosterWindow: if len(contact_list) > 1: # several resources invite_to_new_room_menuitem.set_submenu(self.build_resources_submenu( contact_list, account, self.on_invite_to_new_room, cap=NS_MUC)) + elif len(list_) == 1 and gajim.capscache.is_supported(contact, NS_MUC): + invite_menuitem.set_sensitive(True) + invite_to_new_room_menuitem.connect('activate', + self.on_invite_to_new_room, list_) else: - if gajim.capscache.is_supported(contact, NS_MUC): - invite_menuitem.set_sensitive(True) - invite_to_new_room_menuitem.connect('activate', - self.on_invite_to_new_room, list_) - else: - invite_menuitem.set_sensitive(False) + invite_menuitem.set_sensitive(False) # transform None in 'jabber' c_t = contacts_transport or 'jabber' muc_jid = {}