-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProjectWidgetItemDelegate.cpp
41 lines (33 loc) · 1.28 KB
/
ProjectWidgetItemDelegate.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "ProjectWidgetItemDelegate.h"
#include "ProjectWidget.h"
#include <QPainter>
#include <QPaintDevice>
#include <QPaintEngine>
#include <QStyleOptionViewItemV4>
ProjectWidgetItemDelegate::ProjectWidgetItemDelegate(QObject *parent) :
QItemDelegate(parent)
{
}
void ProjectWidgetItemDelegate::paint ( QPainter * painter,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const
{
if (index.isValid() && !index.parent().isValid())
{
QModelIndex modifiedIndex = index.sibling(index.row(), ProjectWidget::TAG_COLUMN);
QStyleOptionViewItemV4 modifiedOption(option);
modifiedOption.rect.setX(option.decorationSize.width());
int width = option.fontMetrics.width(modifiedIndex.data().toString())
+ option.decorationSize.width();
QPaintEngine* paintEngine = painter->paintEngine();
if (paintEngine != 0)
{
QPaintDevice* paintDevice = paintEngine->paintDevice();
width = paintDevice->width();
}
modifiedOption.rect.setWidth(width);
QItemDelegate::paint(painter, modifiedOption, modifiedIndex);
return;
}
QItemDelegate::paint(painter, option, index);
}