MRU1/upravline.cpp
2025-07-02 08:18:27 +03:00

157 lines
2.4 KiB
C++

#include "upravline.h"
upravLine::upravLine()
{
pic = QImage();
targetNum = -1;
tar = 0;
}
QRectF upravLine::boundingRect() const
{
return QRectF(0, 0, 360, 45);
}
void upravLine::setTarget(airObj *t)
{
tar = t;
setPic(tar->pic, tar->picAlt);
setNum(tar->numer);
}
void upravLine::clear()
{
pic = QImage();
picAlt = QImage();
targetNum = -1;
}
void upravLine::setPic(QImage im, QImage im1)
{
prepareGeometryChange();
pic = im;
picAlt = im1;
}
void upravLine::setNum(int i)
{
if (i!=targetNum)
{
prepareGeometryChange();
targetNum=i;
}
}
void upravLine::paint(QPainter *p, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QBrush br;
QRectF r(6,10,20,20);
p->drawImage(r, pic);
p->save();
p->setPen(Qt::darkGray);
if (tar->priznakAction)
{
p->setPen(tar->priznakColor);
}
p->drawRect(r);
p->restore();
QPointF pf = r.topRight();
pf+=QPointF(4, 7);
p->setPen(tar->col);
QFont f = p->font();
f.setPixelSize(12);
p->setFont(f);
p->drawText(pf, QString::number(tar->numer+1));
r = QRectF(30, 20, 10,10);
p->drawImage(r, picAlt);
for (int i=0; i<6;i++)
{
pf = QPointF(69+45*i+5,25);
if (tar->CU[i+1]==1)//drawY
{
p->setPen(Qt::green);
f.setPixelSize(20);
p->setFont(f);
p->drawText(pf, "Y");
}
if (tar->CU[i+1]==2)//drawZ
{
p->setPen(Qt::red);
f.setPixelSize(20);
p->setFont(f);
p->drawText(pf, "Z");
}
if (tar->CU[i+1]==21)//drawY_invert
{
br = p->brush();
br.setStyle(Qt::SolidPattern);
br.setColor(Qt::green);
p->setBrush(br);
p->setPen(Qt::green);
p->drawRect(pf.x(),pf.y()-18, 16,18);
p->setPen(Qt::black);
f.setPixelSize(20);
p->setFont(f);
p->drawText(pf, "Y");
}
if (tar->CU[i+1]==22) //drawZ_invert
{
br = p->brush();
br.setStyle(Qt::SolidPattern);
br.setColor(Qt::red);
p->setBrush(br);
p->setPen(Qt::red);
p->drawRect(pf.x(),pf.y()-18, 16,18);
p->setPen(Qt::black);
f.setPixelSize(20);
p->setFont(f);
p->drawText(pf, "Z");
}
}
}