33 from rosgraph_msgs.msg 
import Log
    36 from python_qt_binding.QtCore 
import QMutex, QMutexLocker, QSize, QTimer
    43 from .icon_tool_button 
import IconToolButton
    48     A widget which brings up the ROS console.    50     :param context: The plugin context to create the monitor in.    51     :type context: qt_gui.plugin_context.PluginContext    53     def __init__(self, context, icon_paths=None, minimal=True):
    54         ok_icon = [
'bg-green.svg', 
'ic-console.svg']
    55         warn_icon = [
'bg-yellow.svg', 
'ic-console.svg', 
'ol-warn-badge.svg']
    56         err_icon = [
'bg-red.svg', 
'ic-console.svg', 
'ol-err-badge.svg']
    57         stale_icon = [
'bg-grey.svg', 
'ic-console.svg', 
'ol-stale-badge.svg']
    59         icons = [ok_icon, warn_icon, err_icon, stale_icon]
    61         super(ConsoleDashWidget, self).
__init__(
'Console Widget', icons, icon_paths=icon_paths)
    64         self.setFixedSize(self._icons[0].actualSize(QSize(50, 30)))
    68         self._proxymodel.setSourceModel(self.
_datamodel)
    86         self._timer.start(100)
    89         self.setToolTip(
"Rosout")
    97                 self.context.remove_widget(self.
_console)
   100                 self.context.add_widget(self.
_console)
   107         with QMutexLocker(self.
_mutex):
   111             self._datamodel.insert_rows(msgs)
   121         if not self._console._paused:
   122             msg = Console.convert_rosgraph_log_message(log_msg)
   123             with QMutexLocker(self.
_mutex):
   124                 self._message_queue.append(msg)
   128         if (rospy.get_time() < 30.0):
   129             summary_dur = rospy.get_time() - 1.0
   131         if (summary_dur < 0):
   134         summary = self._console.get_message_summary(summary_dur)
   136         if (summary.fatal 
or summary.error):
   145             tooltip += 
"\nFatal: %s" % (summary.fatal)
   147             tooltip += 
"\nError: %s" % (summary.error)
   149             tooltip += 
"\nWarn: %s" % (summary.warn)
   151             tooltip += 
"\nInfo: %s" % (summary.info)
   153             tooltip += 
"\nDebug: %s" % (summary.debug)
   155         if (len(tooltip) == 0):
   156             tooltip = 
"Rosout: no recent activity"   158             tooltip = 
"Rosout: recent activity:" + tooltip
   160         if tooltip != self.toolTip():
   161             self.setToolTip(tooltip)
   165             self._console.cleanup_browsers_on_close()
   170             self._console.cleanup_browsers_on_close()
   172             self._subscriber.unregister()
   176         self._console.save_settings(plugin_settings, instance_settings)
   179         self._console.restore_settings(plugin_settings, instance_settings)