Pidgin has an example plugin (I assume it's for developers) called, aptly, 'DBus Example'. The version of this plugin I have installed is 2.0.0, and the version of Pidgin I'm using is also 2.0.0
Jokosher Version - 0.9 from Bazaar (Launchpad - date 23/08/2007)
If Jokosher and Pidgin are both installed, and the DBus extension is installed too (regardless of whether it is enabled or not), Jokosher tries, and fails (if Pidgin isn't running), to communicate with Pidgin to change it's away message. The following exception occurs:
Traceback (most recent call last):
File "/home/tom/Documents/programming/jokosher/trunk/Jokosher/MixdownProfileDialog.py", line 474, in OnAddAction
self.ShowAddActionDialog()
File "/home/tom/Documents/programming/jokosher/trunk/Jokosher/MixdownProfileDialog.py", line 505, in ShowAddActionDialog
AddMixdownActionDialog(self)
File "/home/tom/Documents/programming/jokosher/trunk/Jokosher/MixdownProfileDialog.py", line 619, in __init__
self.PopulateActionModel()
File "/home/tom/Documents/programming/jokosher/trunk/Jokosher/MixdownProfileDialog.py", line 673, in PopulateActionModel
for action in self.ReturnAllActions():
File "/home/tom/Documents/programming/jokosher/trunk/Jokosher/MixdownProfileDialog.py", line 663, in ReturnAllActions
actionList.append( action() )
File "build/bdist.linux-i686/egg/PidginExtension/PidginExtension.py", line 41, in __init__
File "/var/lib/python-support/python2.5/dbus/_dbus.py", line 410, in get_object
follow_name_owner_changes=follow_name_owner_changes)
File "/var/lib/python-support/python2.5/dbus/proxies.py", line 230, in __init__
_dbus_bindings.UInt32(0))
File "/var/lib/python-support/python2.5/dbus/proxies.py", line 169, in __call__
reply_message = self._connection.send_message_with_reply_and_block(message, timeout)
dbus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name im.pidgin.purple.PurpleService was not provided by any .service files
Rather than just catching the exception and hiding it, Jokosher refuses to show any of the other mixdown options (although it WILL display the window from which the user would normally choose the mixdown options).
I think the only real problem is the exception handling - Jokosher needs to gracefully move on if one plugin from a list fails, rather than give up. Pidgin should probably clean up after itself too, so that Jokosher isn't even aware of the service if Pidgin isn't running.
As a free bonus suggestion - if the Mixdown options dialog is going to have no actual options for the user - it'd be a bit friendlier if a little message popped up saying something like 'No mixdown extensions installed' or something to that effect. I was a bit confused when I first saw the blank box!
Pidgin: http:// www.pidgin. im/
Pidgin has an example plugin (I assume it's for developers) called, aptly, 'DBus Example'. The version of this plugin I have installed is 2.0.0, and the version of Pidgin I'm using is also 2.0.0
Jokosher Version - 0.9 from Bazaar (Launchpad - date 23/08/2007)
If Jokosher and Pidgin are both installed, and the DBus extension is installed too (regardless of whether it is enabled or not), Jokosher tries, and fails (if Pidgin isn't running), to communicate with Pidgin to change it's away message. The following exception occurs:
Traceback (most recent call last): tom/Documents/ programming/ jokosher/ trunk/Jokosher/ MixdownProfileD ialog.py" , line 474, in OnAddAction ShowAddActionDi alog() tom/Documents/ programming/ jokosher/ trunk/Jokosher/ MixdownProfileD ialog.py" , line 505, in ShowAddActionDialog ctionDialog( self) tom/Documents/ programming/ jokosher/ trunk/Jokosher/ MixdownProfileD ialog.py" , line 619, in __init__ PopulateActionM odel() tom/Documents/ programming/ jokosher/ trunk/Jokosher/ MixdownProfileD ialog.py" , line 673, in PopulateActionModel ctions( ): tom/Documents/ programming/ jokosher/ trunk/Jokosher/ MixdownProfileD ialog.py" , line 663, in ReturnAllActions append( action() ) bdist.linux- i686/egg/ PidginExtension /PidginExtensio n.py", line 41, in __init__ python- support/ python2. 5/dbus/ _dbus.py" , line 410, in get_object name_owner_ changes= follow_ name_owner_ changes) python- support/ python2. 5/dbus/ proxies. py", line 230, in __init__ bindings. UInt32( 0)) python- support/ python2. 5/dbus/ proxies. py", line 169, in __call__ n.send_ message_ with_reply_ and_block( message, timeout) .DBus.Error. ServiceUnknown: The name im.pidgin. purple. PurpleService was not provided by any .service files
File "/home/
self.
File "/home/
AddMixdownA
File "/home/
self.
File "/home/
for action in self.ReturnAllA
File "/home/
actionList.
File "build/
File "/var/lib/
follow_
File "/var/lib/
_dbus_
File "/var/lib/
reply_message = self._connectio
dbus.DBusException: org.freedesktop
Rather than just catching the exception and hiding it, Jokosher refuses to show any of the other mixdown options (although it WILL display the window from which the user would normally choose the mixdown options).
I think the only real problem is the exception handling - Jokosher needs to gracefully move on if one plugin from a list fails, rather than give up. Pidgin should probably clean up after itself too, so that Jokosher isn't even aware of the service if Pidgin isn't running.
As a free bonus suggestion - if the Mixdown options dialog is going to have no actual options for the user - it'd be a bit friendlier if a little message popped up saying something like 'No mixdown extensions installed' or something to that effect. I was a bit confused when I first saw the blank box!