32 from dbus.service
import BusName, Object
34 from python_qt_binding.QtCore
import qDebug, qWarning
38 """DBus service of the `PluginManager` available on the unique bus name."""
40 def __init__(self, plugin_manager, application_context):
41 bus_name = BusName(application_context.dbus_unique_bus_name, dbus.SessionBus())
42 super(PluginManagerDBusInterface, self).
__init__(bus_name,
'/PluginManager')
45 @dbus.service.method(
'org.ros.qt_gui.PluginManager', in_signature=
'ss', out_signature=
'is')
47 qDebug(
'PluginManagerDBusInterface.start_plugin(%s)' % plugin_name)
50 msg =
'PluginManagerDBusInterface.start_plugin() found no plugin matching "%s"' % \
54 elif len(plugins) > 1:
55 msg =
'PluginManagerDBusInterface.start_plugin() found multiple plugins ' \
56 'matching "%s"\n%s' % (plugin_name,
'\n'.join(plugins.values()))
59 plugin_id = next(iter(plugins))
60 self.
_plugin_manager.load_plugin(plugin_id, argv=argv.split(
' ')
if argv
else [])