diff --git a/src/common/exceptions.py b/src/common/exceptions.py index 4731829f5..d2f1f8e2b 100644 --- a/src/common/exceptions.py +++ b/src/common/exceptions.py @@ -1,11 +1,7 @@ ## exceptions.py ## -## Contributors for this file: -## - Yann Le Boulanger -## - -## ## Copyright (C) 2005-2006 Yann Le Boulanger -## Nikos Kouremenos +## Copyright (C) 2005-2006 Nikos Kouremenos ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published @@ -48,3 +44,12 @@ class SessionBusNotPresent(Exception): def __str__(self): return _('Session bus is not available.\nTry reading http://trac.gajim.org/wiki/GajimDBus') + +class GajimGeneralException(Exception): + '''This exception ir our general exception''' + def __init__(self, text=''): + Exception.__init__(self) + self.text + + def __str__(self): + return self.text diff --git a/src/config.py b/src/config.py index c7cb94554..e89ccbc68 100644 --- a/src/config.py +++ b/src/config.py @@ -39,6 +39,8 @@ from common import gajim from common import connection from common import passwords +from common.exceptions import GajimGeneralException as GajimGeneralException + #---------- PreferencesWindow class -------------# class PreferencesWindow: '''Class for Preferences window''' @@ -1506,7 +1508,7 @@ class AccountModificationWindow: def on_change_password_button_clicked(self, widget): try: dialog = dialogs.ChangePasswordDialog(self.account) - except RuntimeError: + except GajimGeneralException: #if we showed ErrorDialog, there will not be dialog instance return diff --git a/src/dialogs.py b/src/dialogs.py index 00a3b643d..de826764c 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -40,6 +40,7 @@ from advanced import AdvancedConfigurationWindow from common import gajim from common import helpers +from common.exceptions import GajimGeneralException as GajimGeneralException class EditGroupsDialog: '''Class for the edit group dialog window''' @@ -1089,7 +1090,7 @@ class JoinGroupchatWindow: if room_jid in gajim.gc_connected[account] and\ gajim.gc_connected[account][room_jid]: ErrorDialog(_('You are already in room %s') % room_jid) - raise RuntimeError, 'You are already in this room' + raise GajimGeneralException, 'You are already in this room' self.account = account self.automatic = automatic if nick == '': @@ -1097,7 +1098,7 @@ class JoinGroupchatWindow: if gajim.connections[account].connected < 2: ErrorDialog(_('You are not connected to the server'), _('You can not join a group chat unless you are connected.')) - raise RuntimeError, 'You must be connected to join a groupchat' + raise GajimGeneralException, 'You must be connected to join a groupchat' self._empty_required_widgets = [] @@ -1255,7 +1256,7 @@ class ChangePasswordDialog: if not account or gajim.connections[account].connected < 2: ErrorDialog(_('You are not connected to the server'), _('Without a connection, you can not change your password.')) - raise RuntimeError, 'You are not connected to the server' + raise GajimGeneralException, 'You are not connected to the server' self.account = account self.xml = gtkgui_helpers.get_glade('change_password_dialog.glade') self.dialog = self.xml.get_widget('change_password_dialog') diff --git a/src/disco.py b/src/disco.py index 62728d8ab..c3e972a1c 100644 --- a/src/disco.py +++ b/src/disco.py @@ -49,6 +49,7 @@ import gtkgui_helpers from common import gajim from common import xmpp +from common.exceptions import GajimGeneralException as GajimGeneralException # Dictionary mapping category, type pairs to browser class, image pairs. # This is a function, so we can call it after the classes are declared. @@ -1194,7 +1195,7 @@ class ToplevelAgentBrowser(AgentBrowser): if not gajim.interface.instances[self.account].has_key('join_gc'): try: dialogs.JoinGroupchatWindow(self.account, service) - except RuntimeError: + except GajimGeneralException: pass else: gajim.interface.instances[self.account]['join_gc'].window.present() diff --git a/src/groupchat_control.py b/src/groupchat_control.py index 50ab0cf04..1ecc1b986 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -43,9 +43,9 @@ from conversation_textview import ConversationTextview #(status_image, type, nick, shown_nick) ( C_IMG, # image to show state (online, new message etc) -C_TEXT, # type of the row ('contact' or 'group') -C_TYPE, # text shown in the cellrenderer -C_NICK, # contact nickame or group name +C_NICK, # contact nickame or ROLE name +C_TYPE, # type of the row ('contact' or 'role') +C_TEXT, # text shown in the cellrenderer C_AVATAR, # avatar of the contact ) = range(5) @@ -913,9 +913,9 @@ class GroupchatControl(ChatControlBase): role_iter = self.get_role_iter(role) if not role_iter: role_iter = model.append(None, - (gajim.interface.roster.jabber_state_images['16']['closed'], 'role', - role, '%s' % role_name, None)) - iter = model.append(role_iter, (None, 'contact', nick, name, None)) + (gajim.interface.roster.jabber_state_images['16']['closed'], role, + 'role', '%s' % role_name, None)) + iter = model.append(role_iter, (None, nick, 'contact', name, None)) if not nick in gajim.contacts.get_nick_list(self.account, self.room_jid): gc_contact = gajim.contacts.create_gc_contact(room_jid = self.room_jid, name = nick, show = show, status = status, role = role, diff --git a/src/roster_window.py b/src/roster_window.py index 8e58234ba..9f15fed4c 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -36,6 +36,8 @@ import notify from common import gajim from common import helpers from common import passwords +from common.exceptions import GajimGeneralException as GajimGeneralException + from message_window import MessageWindowMgr from chat_control import ChatControl from groupchat_control import GroupchatControl @@ -1574,7 +1576,7 @@ class RosterWindow: dialogs.JoinGroupchatWindow(account, gajim.connections[account].muc_jid[type_], automatic = {'invities': jid_list}) - except RuntimeError: + except GajimGeneralException: continue break @@ -2669,7 +2671,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid) try: gajim.interface.instances[account]['join_gc'] = \ dialogs.JoinGroupchatWindow(account) - except RuntimeError: + except GajimGeneralException: pass def on_new_message_menuitem_activate(self, widget, account): @@ -3108,7 +3110,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid) try: # Object will add itself to the window dict disco.ServiceDiscoveryWindow(account, address_entry = True) - except RuntimeError: + except GajimGeneralException: pass def load_iconset(self, path, pixbuf2 = None, transport = False):