blob: 5376c0dcdb3d266a5964ffafb230b0c252945ae0 [file] [log] [blame]
Zack Rusin18eade52011-03-26 14:23:35 -04001#include "apicalldelegate.h"
2
3#include "apitracecall.h"
4
5#include <QDebug>
6#include <QPainter>
7#include <QStaticText>
Zack Rusin96130ac2011-03-27 01:48:36 -04008#include <QStyle>
Zack Rusin18eade52011-03-26 14:23:35 -04009
10ApiCallDelegate::ApiCallDelegate(QWidget *parent)
11 : QStyledItemDelegate(parent)
12{
13}
14
Zack Rusinf6667d12011-03-30 11:03:37 -040015void ApiCallDelegate::paint(QPainter *painter,
16 const QStyleOptionViewItem &option,
Zack Rusin18eade52011-03-26 14:23:35 -040017 const QModelIndex &index) const
18{
Zack Rusin96130ac2011-03-27 01:48:36 -040019 ApiTraceCall *call = index.data().value<ApiTraceCall*>();
Zack Rusin18eade52011-03-26 14:23:35 -040020 if (call) {
21 QStaticText text = call->staticText();
22 //text.setTextWidth(option.rect.width());
Zack Rusin96130ac2011-03-27 01:48:36 -040023 QStyledItemDelegate::paint(painter, option, index);
Zack Rusin18eade52011-03-26 14:23:35 -040024 painter->drawStaticText(option.rect.topLeft(), text);
Zack Rusinf6667d12011-03-30 11:03:37 -040025 } else {
26 ApiTraceFrame *frame = index.data().value<ApiTraceFrame*>();
27 if (frame) {
28 QStaticText text = frame->staticText();
29 //text.setTextWidth(option.rect.width());
30 QStyledItemDelegate::paint(painter, option, index);
31 painter->drawStaticText(option.rect.topLeft(), text);
32 } else {
33 QStyledItemDelegate::paint(painter, option, index);
34 }
Zack Rusin18eade52011-03-26 14:23:35 -040035 }
36}
37
38QSize ApiCallDelegate::sizeHint(const QStyleOptionViewItem &option,
39 const QModelIndex &index) const
40{
Zack Rusin96130ac2011-03-27 01:48:36 -040041 ApiTraceCall *call = index.data().value<ApiTraceCall*>();
Zack Rusin18eade52011-03-26 14:23:35 -040042 if (call) {
43 QStaticText text = call->staticText();
44 //text.setTextWidth(option.rect.width());
45 return text.size().toSize();
Zack Rusinf6667d12011-03-30 11:03:37 -040046 } else {
47 ApiTraceFrame *frame = index.data().value<ApiTraceFrame*>();
48 if (frame) {
49 QStaticText text = frame->staticText();
50 //text.setTextWidth(option.rect.width());
51 return text.size().toSize();
52 }
Zack Rusin18eade52011-03-26 14:23:35 -040053 }
54 return QStyledItemDelegate::sizeHint(option, index);
55}
56
57
58#include "apicalldelegate.moc"