26 from __future__
import division
31 from python_qt_binding
import loadUi
32 from python_qt_binding.QtCore
import Qt, QTimer, Signal, Slot, QRectF, QPointF, QSize, QRect, QPoint
33 from python_qt_binding.QtWidgets
import QWidget, QPushButton, QVBoxLayout, QHBoxLayout, QLabel,\
34 QListWidgetItem, QDialog, QGraphicsView, QGraphicsScene, QGraphicsPathItem, QTableWidgetItem, QHeaderView, QStyle, QCommonStyle
35 from python_qt_binding.QtGui
import QColor, QPen, QBrush, QPainterPath, QPolygonF, QTransform,\
36 QPainter, QIcon, QPixmap, QPaintEvent, QPalette, QStandardItem, QStandardItemModel
37 from python_qt_binding.QtSvg
import QSvgGenerator
41 from rospy.exceptions
import ROSException
43 import xml.dom.minidom
as minidom
46 from rqt_topic.topic_info
import TopicInfo
59 def __loggersItemChanged(self, item):
62 logger_name = item.text()
63 check_state = item.checkState()
64 if check_state == Qt.Checked:
67 print(
'show logger "{}"'.format(logger_name))
68 elif check_state == Qt.Unchecked:
71 print(
'hide logger "{}"'.format(logger_name))
73 raise Exception(
'Wrong check_state')
76 assert isinstance(logger_list, list)
77 for logger_name
in logger_list:
78 assert isinstance( logger_name, str )
81 item = QStandardItem( logger_name )
82 check_state = Qt.Unchecked
83 item.setCheckState(check_state)
84 item.setCheckable(
True)
105 def addLog(self, logger_name, log_str, log_time):
106 self.
__logs.append( (logger_name, log_str, log_time) )
107 self.
__new_logs.append( (logger_name, log_str, log_time) )
111 for logger_name, log_str, log_time
in self.
__new_logs:
115 sec_10000 = log_time.secs%10000
116 nsec4 = int(log_time.nsecs/100000)
117 time_str =
'{}.{:04d}'.format(sec_10000, nsec4)
119 item = QStandardItem(
'{}: {}: {}'.format(time_str, logger_name, log_str) )
137 super(LogsDialog, self).
__init__(parent)
141 self.setWindowFlags(Qt.Window)
143 rp = rospkg.RosPack()
144 ui_file = os.path.join(rp.get_path(
'rqt_agent'),
'resource',
'SubsystemLogs.ui')
145 loadUi(ui_file, self)
147 self.setWindowTitle(subsystem_name +
" - state history")
149 self.pushButton_close.clicked.connect(self.
closeClick)
151 self.pushButton_update.clicked.connect(self.
updateClick)
157 pos = log_item.rfind(
'Time(')
159 return log_item,
None 161 log_str = log_item[0:pos]
162 time_str = log_item[pos+5:-1]
163 fields = time_str.split(
';')
165 return log_item,
None 169 nsec = int(fields[1])
171 return log_item,
None 172 return log_str, rospy.Time(sec, nsec)
175 assert isinstance(logs, dict)
178 self.
logs_vis.setActiveLoggers( active_loggers )
180 for logger_name, log_list
in logs.iteritems():
181 for log_item
in log_list:
183 self.
logs_vis.addLog( logger_name, log_str, log_time )
def setActiveLoggers(self, active_loggers)
def __init__(self, list_view)
def parseLogItem(self, log_item)
def __loggersItemChanged(self, item)
def __init__(self, list_view)
def __init__(self, subsystem_name, parent=None)
def getActiveLoggers(self)
def addLog(self, logger_name, log_str, log_time)
def updateLoggersList(self, logger_list)