introduce GajimGeneralException and use that instead of RunTimeError when raising so instances are not created. This is better because python can also raise RunTimeError, which we will catch by accident and we do not want that to happen

This commit is contained in:
Nikos Kouremenos 2006-10-07 12:41:19 +00:00
parent 8dfb1a5a66
commit 01e3fc1199
6 changed files with 30 additions and 19 deletions

View file

@ -1,11 +1,7 @@
## exceptions.py ## exceptions.py
## ##
## Contributors for this file:
## - Yann Le Boulanger <asterix@lagaule.org>
## -
##
## Copyright (C) 2005-2006 Yann Le Boulanger <asterix@lagaule.org> ## Copyright (C) 2005-2006 Yann Le Boulanger <asterix@lagaule.org>
## Nikos Kouremenos <kourem@gmail.com> ## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
## ##
## This program is free software; you can redistribute it and/or modify ## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published ## it under the terms of the GNU General Public License as published
@ -48,3 +44,12 @@ class SessionBusNotPresent(Exception):
def __str__(self): def __str__(self):
return _('Session bus is not available.\nTry reading http://trac.gajim.org/wiki/GajimDBus') 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

View file

@ -39,6 +39,8 @@ from common import gajim
from common import connection from common import connection
from common import passwords from common import passwords
from common.exceptions import GajimGeneralException as GajimGeneralException
#---------- PreferencesWindow class -------------# #---------- PreferencesWindow class -------------#
class PreferencesWindow: class PreferencesWindow:
'''Class for Preferences window''' '''Class for Preferences window'''
@ -1506,7 +1508,7 @@ class AccountModificationWindow:
def on_change_password_button_clicked(self, widget): def on_change_password_button_clicked(self, widget):
try: try:
dialog = dialogs.ChangePasswordDialog(self.account) dialog = dialogs.ChangePasswordDialog(self.account)
except RuntimeError: except GajimGeneralException:
#if we showed ErrorDialog, there will not be dialog instance #if we showed ErrorDialog, there will not be dialog instance
return return

View file

@ -40,6 +40,7 @@ from advanced import AdvancedConfigurationWindow
from common import gajim from common import gajim
from common import helpers from common import helpers
from common.exceptions import GajimGeneralException as GajimGeneralException
class EditGroupsDialog: class EditGroupsDialog:
'''Class for the edit group dialog window''' '''Class for the edit group dialog window'''
@ -1089,7 +1090,7 @@ class JoinGroupchatWindow:
if room_jid in gajim.gc_connected[account] and\ if room_jid in gajim.gc_connected[account] and\
gajim.gc_connected[account][room_jid]: gajim.gc_connected[account][room_jid]:
ErrorDialog(_('You are already in room %s') % 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.account = account
self.automatic = automatic self.automatic = automatic
if nick == '': if nick == '':
@ -1097,7 +1098,7 @@ class JoinGroupchatWindow:
if gajim.connections[account].connected < 2: if gajim.connections[account].connected < 2:
ErrorDialog(_('You are not connected to the server'), ErrorDialog(_('You are not connected to the server'),
_('You can not join a group chat unless you are connected.')) _('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 = [] self._empty_required_widgets = []
@ -1255,7 +1256,7 @@ class ChangePasswordDialog:
if not account or gajim.connections[account].connected < 2: if not account or gajim.connections[account].connected < 2:
ErrorDialog(_('You are not connected to the server'), ErrorDialog(_('You are not connected to the server'),
_('Without a connection, you can not change your password.')) _('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.account = account
self.xml = gtkgui_helpers.get_glade('change_password_dialog.glade') self.xml = gtkgui_helpers.get_glade('change_password_dialog.glade')
self.dialog = self.xml.get_widget('change_password_dialog') self.dialog = self.xml.get_widget('change_password_dialog')

View file

@ -49,6 +49,7 @@ import gtkgui_helpers
from common import gajim from common import gajim
from common import xmpp from common import xmpp
from common.exceptions import GajimGeneralException as GajimGeneralException
# Dictionary mapping category, type pairs to browser class, image pairs. # Dictionary mapping category, type pairs to browser class, image pairs.
# This is a function, so we can call it after the classes are declared. # 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'): if not gajim.interface.instances[self.account].has_key('join_gc'):
try: try:
dialogs.JoinGroupchatWindow(self.account, service) dialogs.JoinGroupchatWindow(self.account, service)
except RuntimeError: except GajimGeneralException:
pass pass
else: else:
gajim.interface.instances[self.account]['join_gc'].window.present() gajim.interface.instances[self.account]['join_gc'].window.present()

View file

@ -43,9 +43,9 @@ from conversation_textview import ConversationTextview
#(status_image, type, nick, shown_nick) #(status_image, type, nick, shown_nick)
( (
C_IMG, # image to show state (online, new message etc) C_IMG, # image to show state (online, new message etc)
C_TEXT, # type of the row ('contact' or 'group') C_NICK, # contact nickame or ROLE name
C_TYPE, # text shown in the cellrenderer C_TYPE, # type of the row ('contact' or 'role')
C_NICK, # contact nickame or group name C_TEXT, # text shown in the cellrenderer
C_AVATAR, # avatar of the contact C_AVATAR, # avatar of the contact
) = range(5) ) = range(5)
@ -913,9 +913,9 @@ class GroupchatControl(ChatControlBase):
role_iter = self.get_role_iter(role) role_iter = self.get_role_iter(role)
if not role_iter: if not role_iter:
role_iter = model.append(None, role_iter = model.append(None,
(gajim.interface.roster.jabber_state_images['16']['closed'], 'role', (gajim.interface.roster.jabber_state_images['16']['closed'], role,
role, '<b>%s</b>' % role_name, None)) 'role', '<b>%s</b>' % role_name, None))
iter = model.append(role_iter, (None, 'contact', nick, 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): 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, gc_contact = gajim.contacts.create_gc_contact(room_jid = self.room_jid,
name = nick, show = show, status = status, role = role, name = nick, show = show, status = status, role = role,

View file

@ -36,6 +36,8 @@ import notify
from common import gajim from common import gajim
from common import helpers from common import helpers
from common import passwords from common import passwords
from common.exceptions import GajimGeneralException as GajimGeneralException
from message_window import MessageWindowMgr from message_window import MessageWindowMgr
from chat_control import ChatControl from chat_control import ChatControl
from groupchat_control import GroupchatControl from groupchat_control import GroupchatControl
@ -1574,7 +1576,7 @@ class RosterWindow:
dialogs.JoinGroupchatWindow(account, dialogs.JoinGroupchatWindow(account,
gajim.connections[account].muc_jid[type_], gajim.connections[account].muc_jid[type_],
automatic = {'invities': jid_list}) automatic = {'invities': jid_list})
except RuntimeError: except GajimGeneralException:
continue continue
break break
@ -2669,7 +2671,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
try: try:
gajim.interface.instances[account]['join_gc'] = \ gajim.interface.instances[account]['join_gc'] = \
dialogs.JoinGroupchatWindow(account) dialogs.JoinGroupchatWindow(account)
except RuntimeError: except GajimGeneralException:
pass pass
def on_new_message_menuitem_activate(self, widget, account): 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: try:
# Object will add itself to the window dict # Object will add itself to the window dict
disco.ServiceDiscoveryWindow(account, address_entry = True) disco.ServiceDiscoveryWindow(account, address_entry = True)
except RuntimeError: except GajimGeneralException:
pass pass
def load_iconset(self, path, pixbuf2 = None, transport = False): def load_iconset(self, path, pixbuf2 = None, transport = False):