+void Trace::paint_error(QPainter &p, const ViewItemPaintParams &pp)
+{
+ const QString message = base_->get_error_message();
+
+ const int y = get_visual_y();
+
+ p.setPen(ErrorBgColor.darker());
+ p.setBrush(ErrorBgColor);
+
+ const QRectF bounding_rect = QRectF(pp.left(), INT_MIN / 2 + y, pp.right(), INT_MAX);
+
+ const QRectF text_rect = p.boundingRect(bounding_rect, Qt::AlignCenter, message);
+ const qreal r = text_rect.height() / 4;
+
+ p.drawRoundedRect(text_rect.adjusted(-r, -r, r, r), r, r, Qt::AbsoluteSize);
+
+ p.setPen(Qt::black);
+ p.drawText(text_rect, message);
+}
+
+QMenu* Trace::create_header_context_menu(QWidget *parent)
+{
+ QMenu *const menu = ViewItem::create_header_context_menu(parent);
+
+ return menu;
+}
+
+QMenu* Trace::create_view_context_menu(QWidget *parent, QPoint &click_pos)