Mercurial > trustbridge
annotate ui/separatoritemdelegate.cpp @ 722:b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 02 Jul 2014 18:35:30 +0200 |
parents | 17e1c8f37d72 |
children |
rev | line source |
---|---|
404 | 1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU GPL (v>=2) | |
5 * and comes with ABSOLUTELY NO WARRANTY! | |
6 * See LICENSE.txt for details. | |
7 */ | |
273
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 #include <QtWidgets> |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 #include "separatoritemdelegate.h" |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 void SeparatorItemDelegate::paint(QPainter *painter, |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 const QStyleOptionViewItem &option, const QModelIndex &index) const |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 { |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 // Save the current painter. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 painter->save(); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 // Get the position for separator line. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 int topLeftY = option.rect.topLeft().y(); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 int height = option.rect.height(); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 int middle = topLeftY + (height / 2); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 // Draw the first part. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 QPen linePen(Qt::black, 2, Qt::SolidLine); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 painter->setPen(linePen); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 painter->drawLine(10, middle, 80, middle); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 // Draw the text. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 QString text = index.data().toString(); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 QRect rect = option.rect.adjusted(85, -2, 0, -2); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 painter->drawText(rect.left(), rect.top(), rect.width(), rect.height(), |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 Qt::AlignVCenter|Qt::AlignLeft, text, &rect); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 // Draw the second part. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 painter->drawLine(rect.topRight().x() + 5, middle, rect.topRight().x() + 75, middle); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 // Restore the painter to have an unmodified painter for the next draw |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 // action. |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 painter->restore(); |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 return; |
b6c2fa8457b6
Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 } |