Mercurial > trustbridge
annotate ui/textoverlaybutton.cpp @ 757:9bfaced5cf59
(issue56) Do not delete the certificate immediately
When the selection changed the remove cert is triggered by
a slection change event in the certificateitem. Deleting
it immediately would delete the trigger of the call.
Instead we deleteLater so that the widget get's cleaned up
in the next mainloop iteration when it is no longer needed.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 07 Jul 2014 12:54:02 +0200 |
parents | a467204a35f5 |
children | 57371f2e8dae |
rev | line source |
---|---|
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
3 * |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=2) |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
6 * See LICENSE.txt for details. |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
8 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
9 #include <QPaintEvent> |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
10 #include <QPainter> |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
11 #include <QFont> |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
12 #include <QApplication> |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
13 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
14 #include <QDebug> |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
15 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
16 #include "textoverlaybutton.h" |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
17 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
18 void TextOverlayButton::paintEvent(QPaintEvent *e) |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
19 { |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
20 QToolButton::paintEvent(e); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
735
diff
changeset
|
21 if (mOverlay == "0" || mOverlay.isEmpty()) { |
734
f6796ff72b65
Only show overlay if it is not "0"
Andre Heinecke <andre.heinecke@intevation.de>
parents:
731
diff
changeset
|
22 return; |
f6796ff72b65
Only show overlay if it is not "0"
Andre Heinecke <andre.heinecke@intevation.de>
parents:
731
diff
changeset
|
23 } |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
24 QPainter painter(this); |
735
c92eb6298dd7
Activate antialiasing for the painter
Andre Heinecke <andre.heinecke@intevation.de>
parents:
734
diff
changeset
|
25 /* Only usable if opengl is used */ |
c92eb6298dd7
Activate antialiasing for the painter
Andre Heinecke <andre.heinecke@intevation.de>
parents:
734
diff
changeset
|
26 painter.setRenderHint(QPainter::HighQualityAntialiasing, true); |
c92eb6298dd7
Activate antialiasing for the painter
Andre Heinecke <andre.heinecke@intevation.de>
parents:
734
diff
changeset
|
27 /* Else */ |
c92eb6298dd7
Activate antialiasing for the painter
Andre Heinecke <andre.heinecke@intevation.de>
parents:
734
diff
changeset
|
28 painter.setRenderHint(QPainter::Antialiasing, true); |
c92eb6298dd7
Activate antialiasing for the painter
Andre Heinecke <andre.heinecke@intevation.de>
parents:
734
diff
changeset
|
29 |
731
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
30 QRect myRect = e->rect().translated(26, -29); |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
31 |
731
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
32 // circle |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
33 QLinearGradient gradient(myRect.topLeft(), |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
34 myRect.bottomRight()); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
35 gradient.setColorAt(0, Qt::white); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
36 gradient.setColorAt(0.7, Qt::red); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
37 QBrush brush(gradient); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
38 painter.setBrush(brush); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
39 painter.setPen(Qt::white); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
40 painter.drawEllipse(75.5, 6, 20, 20); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
41 |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
42 // font |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
43 QFont font; |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
44 font.setPixelSize(11); |
0bb54205c55a
(Issue31) Improved number formatting and refresh icon.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
45 font.setWeight(QFont::Bold); |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
46 painter.setFont(font); |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
47 painter.drawText(myRect, Qt::AlignCenter | Qt::AlignVCenter, mOverlay); |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
48 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
49 return; |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff
changeset
|
50 } |