Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TrackedElementView.cpp 1.45 KiB
#include "TrackedElementView.h"
#include "Model/TrackedComponents/TrackedElement.h"
#include "QBrush"
#include "QPainter"

TrackedElementView::TrackedElementView(QGraphicsItem *parent, IController *controller, IModel *model) :
    IViewTrackedComponent(parent, controller, model)
{
    TrackedElement *elem = dynamic_cast<TrackedElement *>(getModel());
    m_boundingRect = QRectF(0,0, 100, 100);

    setAcceptHoverEvents(true);
}

QRectF TrackedElementView::boundingRect() const
{

    return m_boundingRect;
}

void TrackedElementView::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    TrackedElement *elem = dynamic_cast<TrackedElement *>(getModel());

    QRectF rec = boundingRect();

    QBrush brush(Qt::blue);

    if(elem->getPressedStatus())
    {
        brush.setColor(Qt::red);
    }
    else
    {
        brush.setColor(Qt::green);
    }

    painter->fillRect(rec,brush);
    painter->drawRect(rec);

}

void TrackedElementView::getNotified()
{
    update();
}

void TrackedElementView::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
    TrackedElement *elem = dynamic_cast<TrackedElement *>(getModel());

    elem->pressed();
    update();

    QGraphicsObject::hoverEnterEvent(event);
}

void TrackedElementView::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
    TrackedElement *elem = dynamic_cast<TrackedElement *>(getModel());

    elem->notPressed();
    update();

    QGraphicsObject::hoverLeaveEvent(event);
}