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

142 lines
3.3 KiB
C++

#include "killtarget.h"
#include "ui_killtarget.h"
killTarget::killTarget(QWidget *parent) :
QDialog(parent),
ui(new Ui::killTarget)
{
ui->setupUi(this);
ui->label_4->hide();
ui->label_5->hide();
ui->label_6->setText(QString::fromLocal8Bit("Òðàññà: îò 1 äî 255"));
ui->lineEdit->setText("0");
ui->lineEdit_2->setText("0");
QTimer *tmr = new QTimer(this);
connect(tmr, SIGNAL(timeout()), this, SLOT(msTick()));
tmr->start(500);
}
killTarget::~killTarget()
{
delete ui;
}
void killTarget::msTick()
{
airObj *target=0;
groundObj *grO=0;
int n_ab = ui->lineEdit->text().toInt();
int n_tr = ui->lineEdit_2->text().toInt();
if ((n_tr<1)||(n_tr>99))
{
ui->label_4->hide();
ui->label_5->hide();
ui->label_6->setText(QString::fromLocal8Bit("Òðàññà: îò 1 äî 99"));
}
else
{
target = ((Widget*)parent())->targets.at(n_tr-1);
if (target->exist == false)
{
ui->label_4->hide();
ui->label_5->hide();
ui->label_6->setText(QString::fromLocal8Bit("Òðàññà %1 íå ñóùåñòâóåò").arg(n_tr));
}
if ((n_ab<0)||(n_ab>6))
{
ui->label_4->hide();
ui->label_5->hide();
ui->label_6->setText(QString::fromLocal8Bit("Íîìåð àáîíåíòà îò 0 äî 6"));
}
else
{
grO = ((Widget*)parent())->grObj.at(n_ab);
if (grO->exist==false)
{
ui->label_4->hide();
ui->label_5->hide();
ui->label_6->setText(QString::fromLocal8Bit("Íåò òî÷êè ñòîÿíèÿ àáîíåíòà %1").arg(n_ab));
}
else
{
if (target->exist)
{
QPointF pt = target->getPos();
QPointF p0 = grO->getPos();
QLineF lf = QLineF(p0,pt);
qreal dist = lf.length()/10;
qreal azim = 90-lf.angle();
if (azim<0) azim+=360;
int du = azim/6;
QString s;
ui->label_4->setText(QString::fromLocal8Bit("%1 ÄÓ").arg(du));
ui->label_4->show();
s.setNum(azim, 'f', 0);
s.append("°");
ui->label_5->setText(s);
ui->label_5->show();
s.setNum(dist, 'f', 1);
s.prepend(QString::fromLocal8Bit("Àçèìóò: Äàëüíîñòü: "));
ui->label_6->setText(s);
}
}
}
}
}
void killTarget::on_pushButton_2_clicked()
{
close();
((Widget*)parent())->clearOpenWidget();
}
void killTarget::on_pushButton_clicked()
{
int grNum = ui->lineEdit->text().toInt(); // àáîíåíò
int tarNum = ui->lineEdit_2->text().toInt(); // íîìåð òðàññû
airObj *ao, *ao_temp;
ao = ((Widget*)parent())->targets[tarNum-1];
ao->setCU(grNum);
((Widget*)parent())->sendCU(grNum, 11, ao->uid);
int ret = ((Widget*)parent())->grObj[grNum]->addCU(ao->uid);
if (ret>=0)
{
foreach (ao_temp, ((Widget*)parent())->targets)
if (ao_temp->uid == ret) ao_temp->clearCU(grNum);
}
close();
((Widget*)parent())->clearOpenWidget();
}