view ui/textoverlaybutton.cpp @ 1305:c56d2618aabe

Added tag 0.9.3 for changeset 82fab0c689bf
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 29 Sep 2014 16:53:49 +0200
parents 947a880ec5d3
children
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
    painter.drawPixmap(75.5, 5, mBackground);

    // font
    QFont font;
    font.setPixelSize(11);
    font.setWeight(QFont::Bold);
    painter.setFont(font);
    painter.setPen(Qt::white);
    painter.drawText(myRect, Qt::AlignCenter | Qt::AlignVCenter, mOverlay);

    return;
}

void TextOverlayButton::setBackgroundIcon (const QString& iconPath) {
    mBackground = QIcon(iconPath).pixmap(QSize(22,22));
}

http://wald.intevation.org/projects/trustbridge/