Comment 0 for bug 134181

Revision history for this message
Tommy (tom-h) wrote : Mixdown actions don't display if user has Pidgin DBUS Example plugin enabled

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):
  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!