| 273 | static QList<QString> logTypeStrings; |
| 274 | |
| 275 | LogView::LogView(ICaptureContext &ctx, QWidget *parent) |
| 276 | : QFrame(parent), ui(new Ui::LogView), m_Ctx(ctx) |
| 277 | { |
| 278 | ui->setupUi(this); |
| 279 | |
| 280 | m_ItemModel = new LogItemModel(this); |
| 281 | m_FilterModel = new LogFilterModel(this); |
| 282 | |
| 283 | m_FilterModel->setSourceModel(m_ItemModel); |
| 284 | ui->messages->setModel(m_FilterModel); |
| 285 | |
| 286 | ui->messages->viewport()->installEventFilter(this); |
| 287 | |
| 288 | m_delegate = new RichTextViewDelegate(ui->messages); |
| 289 | ui->messages->setItemDelegate(m_delegate); |
| 290 | |
| 291 | ui->messages->setMouseTracking(true); |
| 292 | |
| 293 | ui->messages->setFont(Formatter::FixedFont()); |
| 294 | |
| 295 | m_TypeModel = new QStandardItemModel(0, 1, this); |
| 296 | |
| 297 | m_TypeModel->appendRow(new QStandardItem(tr("Log Type"))); |
| 298 | |
| 299 | for(LogType type : values<LogType>()) |
| 300 | { |
| 301 | logTypeStrings.push_back(ToQStr(type)); |
| 302 | |
| 303 | QStandardItem *item = new QStandardItem(ToQStr(type)); |
| 304 | item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); |
| 305 | item->setData(Qt::Checked, Qt::CheckStateRole); |
| 306 | m_TypeModel->appendRow(item); |
| 307 | } |
| 308 | |
| 309 | ui->typeFilter->setModel(m_TypeModel); |
| 310 | |
| 311 | m_PIDModel = new QStandardItemModel(0, 1, this); |
| 312 | |
| 313 | m_PIDModel->appendRow(new QStandardItem(tr("PID"))); |
| 314 | |
| 315 | ui->pidFilter->setModel(m_PIDModel); |
| 316 | |
| 317 | ui->messages->header()->setSectionResizeMode(QHeaderView::Fixed); |
| 318 | |
| 319 | for(int c = 0; c < m_ItemModel->columnCount(); c++) |
| 320 | ui->messages->resizeColumnToContents(c); |
| 321 | |
| 322 | messages_refresh(); |
| 323 | |
| 324 | QObject::connect(m_TypeModel, &QStandardItemModel::itemChanged, this, &LogView::typeFilter_changed); |
| 325 | QObject::connect(m_PIDModel, &QStandardItemModel::itemChanged, this, &LogView::pidFilter_changed); |
| 326 | |
| 327 | QObject::connect(ui->messages, &RDTreeView::keyPress, this, &LogView::messages_keyPress); |
| 328 | |
| 329 | QObject::connect(&m_RefreshTimer, &QTimer::timeout, this, &LogView::messages_refresh); |
| 330 | m_RefreshTimer.setSingleShot(false); |
| 331 | m_RefreshTimer.setInterval(125); |
| 332 | m_RefreshTimer.start(); |
nothing calls this directly
no test coverage detected