Mercurial > trustbridge
view ui/textoverlaybutton.cpp @ 963:62b832d0b839
(issue89) Package help for windows
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 28 Aug 2014 12:54:28 +0200 |
parents | 57371f2e8dae |
children | 947a880ec5d3 |
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=2) * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ #include <QPaintEvent> #include <QPainter> #include <QFont> #include <QApplication> #include <QDebug> #include "textoverlaybutton.h" void TextOverlayButton::paintEvent(QPaintEvent *e) { QToolButton::paintEvent(e); if (mOverlay == "0" || mOverlay.isEmpty()) { return; } QPainter painter(this); /* Only usable if opengl is used */ painter.setRenderHint(QPainter::HighQualityAntialiasing, true); /* Else */ painter.setRenderHint(QPainter::Antialiasing, true); QRect myRect = e->rect().translated(26, -29); // circle /* old manually painted background QLinearGradient gradient(myRect.topLeft(), myRect.bottomRight()); gradient.setColorAt(0, Qt::white); gradient.setColorAt(0.7, Qt::red); QBrush brush(gradient); painter.setBrush(brush); painter.setPen(Qt::white); painter.drawEllipse(75.5, 6, 20, 20); */ painter.drawPixmap(75.5, 5, mBackground); // font QFont font; font.setPixelSize(11); font.setWeight(QFont::Bold); painter.setFont(font); painter.drawText(myRect, Qt::AlignCenter | Qt::AlignVCenter, mOverlay); return; } void TextOverlayButton::setBackgroundIcon (const QString& iconPath) { mBackground = QIcon(iconPath).pixmap(QSize(22,22)); }