1 #include "apicalldelegate.h"
3 #include "apitracecall.h"
4 #include "apitracemodel.h"
6 #include <QApplication>
12 ApiCallDelegate::ApiCallDelegate(QWidget *parent)
13 : QStyledItemDelegate(parent),
14 m_stateEmblem(":/resources/dialog-information.png")
18 void ApiCallDelegate::paint(QPainter *painter,
19 const QStyleOptionViewItem &option,
20 const QModelIndex &index) const
22 QVariant var = index.data(ApiTraceModel::EventRole);
23 ApiTraceEvent *event = var.value<ApiTraceEvent*>();
25 Q_ASSERT(index.column() == 0);
29 QStaticText text = event->staticText();
30 //text.setTextWidth(option.rect.width());
31 //QStyledItemDelegate::paint(painter, option, index);
32 QStyle *style = QApplication::style();
33 style->drawControl(QStyle::CE_ItemViewItem, &option, painter, 0);
34 if (!event->state().isEmpty()) {
35 QPixmap px = m_stateEmblem.pixmap(option.rect.height(), option.rect.height());
36 painter->drawPixmap(option.rect.topLeft(), px);
37 offset = QPoint(option.rect.height() + 5, 0);
39 painter->drawStaticText(option.rect.topLeft() + offset, text);
41 QStyledItemDelegate::paint(painter, option, index);
45 QSize ApiCallDelegate::sizeHint(const QStyleOptionViewItem &option,
46 const QModelIndex &index) const
48 ApiTraceEvent *event =
49 index.data(ApiTraceModel::EventRole).value<ApiTraceEvent*>();
51 Q_ASSERT(index.column() == 0);
54 QStaticText text = event->staticText();
55 //text.setTextWidth(option.rect.width());
56 //qDebug()<<"text size = "<<text.size();
57 return text.size().toSize();
59 return QStyledItemDelegate::sizeHint(option, index);
63 #include "apicalldelegate.moc"