osrf / rqt_capabilities

rqt plugin for managing capabilities
Other
0 stars 4 forks source link

Improve behaviour when started without capability server #8

Open bit-pirate opened 10 years ago

bit-pirate commented 10 years ago

Trying this rqt/the plugin seems to just wait or be stuck. Furthermore, stopping it throws an error:

$ rosrun rqt_capabilities rqt_capabilities
^CPluginHandler.save_settings() plugin "rqt_capabilities/CapabilityGraph#0" raised an exception:
Traceback (most recent call last):                                                                                                                                                 
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_handler.py", line 181, in save_settings                                                                           
    self._save_settings(plugin_settings, instance_settings)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_handler_direct.py", line 109, in _save_settings
    self.emit_save_settings_completed()
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_handler.py", line 196, in emit_save_settings_completed
    callback(self._instance_id)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 422, in _close_application_save_callback
    self._close_application_shutdown_plugins()
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 429, in _close_application_shutdown_plugins
    self._shutdown_plugin(info['instance_id'], self._close_application_shutdown_callback)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 318, in _shutdown_plugin
    handler.close_signal.disconnect(self.unload_plugin)
TypeError: disconnect() failed between 'close_signal' and 'unload_plugin

Plus requiring a hard stop (Ctrl + \) to really stop.

^\Quit (core dumped)

Is there a more intuitive and cleaner way to do this?

For example, showing a message saying "waiting for the capability server to start" and allowing a clean shutdown, when no capability server is available.