tools/templates/pixlabel.cpp
author Wuzzy <almikes@aol.com>
Sat, 23 Sep 2017 21:05:57 +0200
changeset 12510 82c75a317d48
parent 8442 535a00ca0d35
permissions -rw-r--r--
Randomized teams now can have any random hats (not just from types.ini) The predefined hat sets still work, however. There are now 3 types of hat selections: 1) Use hats from types.ini 2) Randomly select one hat for all hedgehogs 3) Randomly select hat for each hedgehog (rare)

#include <QPainter>
#include <QPen>
#include "pixlabel.h"

PixLabel::PixLabel()
        : QLabel(0)
{

}

void PixLabel::paintEvent(QPaintEvent * event)
{
    QLabel::paintEvent(event);
    QPainter p(this);

    p.fillRect(QRect(0, 0, 1024, 512), QBrush(Qt::black));

    if (rects.size())
    {
        p.setPen(QPen(Qt::lightGray));
        QVector<QPoint> centers;
        for(QList<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it)
            centers.push_back((*it).center());
        p.drawPolyline(QPolygon(centers));

        p.setPen(QPen(Qt::white));
        p.drawRects(rects.toVector());

        p.setPen(QPen(Qt::yellow));
        p.drawRect(rects.last());
    }
}

void PixLabel::mousePressEvent(QMouseEvent * e)
{
    if (!rects.empty())
    {
        if (e->button() == Qt::LeftButton)
            rects[rects.size() - 1].moveTopLeft(QPoint(e->x(), e->y()));
        else
        if (e->button() == Qt::RightButton)
            rects[rects.size() - 1].setBottomRight(QPoint(e->x(), e->y()));
        repaint();
    }
}

void PixLabel::AddRect()
{
    rects.push_back(QRect(0, 0, 1, 1));
    repaint();
}