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

1643 lines
42 KiB
C++
Raw Permalink Blame History

#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QQueue>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ownTS = QPointF(0,0);
reper = QPointF(0,0);
curCentr = reper;
openWidget = 0;
openWidgetType = 0;
openAirTicket = 0;
curAirTicketNum = 0;
currentNum = 0;
sendCCR = false;
vklCCR = false;
ui->setupUi(this);
str2Z.clear();
QByteArray b;
currentTaskNum = 0;
QFile file(":/new/table2z/text.txt");
QString st;
if (file.open(QFile::ReadOnly))
{
for (int i=0; i<100; i++)
{
b = file.readLine() ;
b.truncate(b.size()-2);
st = QString::fromLocal8Bit(b);
str2Z << st;
}
}
file.close();
for (int i=0;i<9;i++)
grScales[i] = ui->comboBox_2->itemText(i).toInt();
groundObj *go;
KO tKO;
cmdKO.clear();
for (int i=0;i<15;i++)
{
go = new groundObj();
go->exist=(i<5);
go->n_Ab = i;
grObj<<go;
tKO.x=0;
tKO.y=0;
tKO.ZZ = 99;
cmdKO<<tKO;
}
grObj[0]->setBoegotov(true);
grObj[1]->setPos(QPointF(0, 150));
grObj[1]->setType(1);
grObj[1]->setBoegotov(false);
grObj[2]->setPos(QPointF(150, 0));
grObj[2]->setType(1);
grObj[2]->setBoegotov(false);
grObj[3]->setPos(QPointF(0, -100));
grObj[3]->setType(1);
// grObj[3]->setSektor(30,170);
grObj[3]->setBoegotov(false);
grObj[4]->setPos(QPointF(-150, 0));
grObj[4]->setType(1);
grObj[4]->setBoegotov(false);
airObj *tar;
for (int i=0; i<100; i++)
{
tar = new airObj();
tar->exist=false;
tar->numer= 0;
tar->uid = -1;
targets<<tar;
uLines[i]=0;
}
// addTarget(11, 1, 0, 320, 140, 2, -20, 5);
// addTarget(12, 12, 0, 121, 130, 11, 20, 20);
// addTarget(13, 1, 0, 201, -113, 41, 0, 0);
// addTarget(14, 1, 0, -241, -113, 123, 0, 0);
// addTarget(16, 1, 0, 261, -213, 10, 0, 0);
// targets[1]->setPriznak(3);
QFont f = ui->label->font();
f.setPointSizeF(10);
ui->label->setFont(f);
f.setBold(true);
ui->label_2->setFont(f);
ui->textEdit->setReadOnly(true);
addLogText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//////////////////////
createActions1();
createMenu1();
createActions2();
createMenu2();
/////////////////////
renewArmWin();
tmr = new QTimer(this);
connect(tmr, SIGNAL(timeout()), this, SLOT(renewArmWin()));
connect(tmr, SIGNAL(timeout()), this, SLOT(checkTargetsAndKRU()));
tmr->start(1000);
tmrCheckTaskStop = new QTimer(this);
connect(tmrCheckTaskStop, SIGNAL(timeout()), this, SLOT(stopTask()));
//////////////////////////////////
initGraph();
//////////////////////////////////
ui->comboBox_2->setCurrentIndex(4);
QTimer::singleShot(100,this, SLOT(magicTemp()));
///////////////////////////////////
initNetwork();
initUprav();
/////////////////////////////////////
tmrUpr = new QTimer(this);
connect(tmrUpr, SIGNAL(timeout()), SLOT(refreshUprTab()));
tmrUpr->start(1000);
readGroundOpt();
}
Widget::~Widget()
{
delete ui;
}
void Widget::readGroundOpt()
{
QFile f("ground.ini");
qreal a1,a2, hmin, hmax;
int alt;
bool pr;
if (f.open(QIODevice::ReadOnly ))
{
QDataStream out(&f);
for (int i=1; i<6; i++)
{
out >> pr >> a1 >> a2 >> alt >> hmin >> hmax;
grObj[i]->setSektor(a1, a2);
grObj[i]->setOgrH(alt, hmin, hmax);
grObj[i]->setPriznakSektor(pr);
}
f.close();
}
else
{
qDebug("File 'ground.ini' not found");
}
}
void Widget::writeGroundOpt()
{
QFile f("ground.ini");
groundObj *g ;
if (f.open(QIODevice::WriteOnly ))
{
QDataStream out(&f);
for (int i = 1; i<6; i++)
{
g = grObj[i];
out << g->priznakSektor << g->angle1 << g->angle2 << g->alt_n << g->hMin << g->hMax;
}
}
f.close();
}
void Widget::checkTargetsAndKRU()
{
QTime time = QTime::currentTime();
for (int i=0; i<targets.count(); i++)
{
if ( targets[i]->exist)
{
if (targets[i]->lastTime.secsTo(time)>3) {
hashIdToNum.remove(targets[i]->uid);
targets[i]->deleteTarget();
}
}
}
if ((time.second()%10) ==0)
{
for (int i=1; i<6; i++)
{
if (grObj[i]->priznakSektor)
{
sendKRU(i, 1);
}
else
{
sendKRU(i, 0);
}
}
}
}
void Widget::stopTask()
{
if (tmrCheckTaskStop->isActive()) tmrCheckTaskStop->stop();
if (tmrUpr->isActive()) tmrUpr->stop();
currentTaskNum = 0;
for (int i=0; i<7; i++)
{
if (grObj[i]->type==2) grObj[i]->activeR=1; else grObj[i]->activeR=4;
grObj[i]->hasCU.clear();
for (int i=0; i<grObj[i]->activeR; i++) grObj[i]->hasCU<<-1;
}
for (int i=0; i<100; i++)
{
if (uLines[i]!=0)
{
delete uLines[i];
uLines[i]=0;
}
targets[i]->deleteTarget();
}
hashIdToNum.clear();
gsc->update();
tmrUpr->start(1000);
// if (! nTmr->isActive()) nTmr->start(500);
}
int Widget::findTargetFromId(int id)
{
if (hashIdToNum.contains(id)) return hashIdToNum[id];
return -1;
// int ret=-1;
// for (int i=0; i<targets.count(); i++)
// {
// if (targets[i]->uid==id) {ret = i; break;}
// }
// return ret;
}
int Widget::findNextNum(int n)
{
int i;
for (i=n; i<targets.count(); i++)
if (targets[i]->exist == false) {
currentNum=i;
return i;
};
for (i=0; i<n; i++)
if (targets[i]->exist == false)
{
currentNum=i;
return i;
};
// <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
i=currentNum;
currentNum = (i+1) % (targets.count());
return i;
}
void Widget::addTarget(int id, int aType, int gType, qreal cX, qreal cY, qreal cH, qreal vX, qreal vY)
{
qreal dist;
QLineF lf;
QString st;
int num = findTargetFromId(id);
if (num<0) {
num=findNextNum(currentNum);
targets[num]->uid=id;
hashIdToNum[id]=num;
targets[num]->exist=true;
targets[num]->numer=num;
targets[num]->setGType(gType);
targets[num]->setAType(aType);
targets[num]->setSpeed(vX, vY);
targets[num]->setCoord(cX, cY, cH);
currentNum++;
}
else
{
targets[num]->setGType(gType);
targets[num]->setAType(aType);
targets[num]->setSpeed(vX, vY);
targets[num]->setCoord(cX, cY, cH);
}
// qDebug(QString::fromLocal8Bit("id = %1 num = %2").arg(id).arg(num).toAscii());
targets[num]->lastTime = QTime::currentTime();
if (vklCCR)
if (!targets[num]->haveCU())
{
for (int i=1; i<6;i++)
{
if (grObj[i]->exist)
{
lf = QLineF(grObj[i]->getPos(), targets[num]->getPos());
dist = lf.length();
if (dist<100)
{
if ((targets[num]->gType==0)||(targets[num]->gType==1))
{
targets[num]->setCU(i, 21);
break;
}
else
{
targets[num]->setCU(i, 22);
break;
}
}
}
}
}
}
void Widget::initNetwork()
{
currentTaskNum = 0;
readyForTask = 0;
udpSend = new QUdpSocket(this);
nTmr = new QTimer(this);
connect(nTmr, SIGNAL(timeout()), this, SLOT(synhrTimeout()));
nTmr->start(500);
udpNewTask = new QUdpSocket(this);
udpNewTask->bind(6691);
connect(udpNewTask, SIGNAL(readyRead()), this, SLOT(newTaskRead()));
}
void Widget::newTaskRead()
{
int len, cnt, mesType;
int nAb, code2Z, tarNum;
qint8 tByte;
qint16 tWord;
qint32 tLong;
static int counterForTargets=0;
int tarMesType;
float fx,fy,fh, tFloat;
float vx, vy, vh;
fx=fy=fh=vx=vy=vh=0;
int gosPr=0;
QString st;
QByteArray buf;
buf.clear();
int ret;
int uid; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// addLogText("newTaskRead");
groundObj *gro;
QByteArray datagram;
QDataStream d(&datagram, QIODevice::ReadOnly);
d.setByteOrder(QDataStream::LittleEndian);
while (udpNewTask->hasPendingDatagrams())
{
datagram.clear();
len = udpNewTask->pendingDatagramSize();
datagram.resize(len);
udpNewTask->readDatagram(datagram.data(), datagram.size());
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
d>>tWord;
// addLogText(QString(" init1 = %1").arg(tWord));
d>>tWord;
currentTaskNum = tWord;
// addLogText(QString(" init2 = %1").arg(tWord));
d>>tWord;
// addLogText(QString(" init3 = %1").arg(tWord));
mesType = tWord;
switch (mesType)
{
case 2: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
d>>tWord>>tLong;
d>>tWord;
ownId = tWord;
// addLogText(QString(" ownID = %1").arg(ownId));
break;
case 3: // <20><><EFBFBD><EFBFBD>
// if (nTmr->isActive()) nTmr->stop();
counterForTargets += 1;
counterForTargets = counterForTargets % 18;
if (tmrCheckTaskStop->isActive()) tmrCheckTaskStop->stop();
tmrCheckTaskStop->start(3500);
d>>tWord;
cnt = tWord;
d>>tLong;
qint16 lId;
for (int i=0;i<cnt;i++)
{
d>>lId;
d>>tWord;
tarMesType = tWord;
d>>tWord;
d>>tByte>>tByte;
d>>fx>>fy>>fh;
d>>tFloat>>tFloat>>tFloat;
d>>vx>>vy>>vh;
d>>tLong;
d>>tByte;
d>>tByte;
int CDType= tByte;
d>>tByte;
// addLogText(tr(" size = %1").arg(tByte));
buf.resize(tByte);
for (int j=0;j<buf.size(); j++)
{
d>>tByte; buf[j] = tByte;
}
gosPr = 0;
if (buf.size()==1)
{if (int(buf[0])==0) gosPr = 2; else gosPr = 1;}
// addLogText(QString(" air target = %2 %1 %3 ").arg(tarMesType).arg(lId).arg(gosPr));
if (CDType==1) {
if (counterForTargets == 1 && lId /*&& tarMesType!=13
&& tarMesType!=14*/)
{
if (tarMesType==0)
{
if (hashIdToNum.contains(lId)) {
ret = hashIdToNum[lId];
if (targets[ret]->exist) {
targets[ret]->deleteTarget();
hashIdToNum.remove(lId);
}
}
}
else
{
addTarget(lId, 1, gosPr, fx/100, -fy/100, fh/100, vx/10, -vy/10);
}
}
}
}
break;
case 6: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
gro = 0;
d>>tWord>>tLong>>tWord;
uid = tWord;
// addLogText(QString(" gr %1").arg(uid));
gro = grObj.at(uid);
gro->exist = true;
d>>tWord;
gro->setType(tWord);
d>>fx>>fy>>fh;
gro->setPos(qreal(fx/100),(qreal)-fy/100);
d>>tByte;
gro->setBoegotov(tByte);
d>>tWord;
gro->setRockets(tWord);
break;
case 9:
d>>tWord>>tLong>>tWord;
nAb = tWord;
d>>tWord;
tarNum = tWord;
d >> fx >> fy;
d >> tByte;
code2Z = tByte;
if (tarNum == 0) // <20><><EFBFBD>
{
st=QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 ZZ %2%3 '%4'").arg(nAb).arg((code2Z<10)?"0":"").arg(code2Z).arg(str2Z[code2Z]);
// st.append(QString::number(nAb));
// st.append(" ZZ ");
// if (code2Z<10) st.append("0");
// st.append(QString::number(code2Z));
// st.append(" '");
// st.append(str2Z[code2Z]);
// st.append("'");
}
else
{
tarNum = findTargetFromId(tarNum);
if (tarNum!=-1)
{
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 <20><> %2 ZZ %5 %3 '%4'").arg(nAb).arg(tarNum+1).arg(code2Z).arg(str2Z[code2Z]).arg((code2Z<10)?"0":"");
}
else
{
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> < %1 ZZ %4 %2 '%3'").arg(nAb).arg(code2Z).arg(str2Z[code2Z]).arg((code2Z<10)?"0":"");
}
}
addLogText(st);
break;
default:
break;
}
}
}
void Widget::processSendingDatagrams(QByteArray buf, int port)
{
udpSend->writeDatagram(buf.data(), buf.size(), QHostAddress("192.168.1.255"), port);
}
void Widget::sendCU(int nAb, int ZZ, int uid, qreal x, qreal y)
{
QByteArray buf;
QDataStream d(&buf, QIODevice::WriteOnly);
d.setByteOrder(QDataStream::LittleEndian);
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
d <<(qint16)25 << (qint16) currentTaskNum << (qint16)7 << (qint16)1;
d <<(qint32)0 << (qint16) nAb;
if (uid<0) uid=0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
d << (qint16) uid;
d << (float) x << (float)y; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
d << (qint8)ZZ;
if (nAb!=0) processSendingDatagrams(buf);
QString st;
if (uid && hashIdToNum.contains(uid))
{
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 <20><> %2 ZZ %3%4 '%5'").arg(nAb).arg(hashIdToNum[uid]+1).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
addLogText(st);
st = QString::fromLocal8Bit("uid = %1").arg(uid);
addLogText(st);
}
else
{
if ((nAb>0)&&(nAb<=15))
{
cmdKO[nAb].x = y/100;
cmdKO[nAb].y = -x/100;
cmdKO[nAb].ZZ = ZZ;
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 ZZ %2%3 '%4'").arg(nAb).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
if ((ZZ==77)||(ZZ==66))
{
cmdKO[nAb].ZZ=99;
}
else
addLogText(st);
}
else
{
if (nAb==0)
{
for (int ii=1;ii<cmdKO.size();ii++)
{
cmdKO[ii].x=0;
cmdKO[ii].y=0;
cmdKO[ii].ZZ=ZZ;
st = QString::fromLocal8Bit("<EFBFBD><EFBFBD> > %1 ZZ %2%3 '%4'").arg(ii).arg((ZZ<10)?"0":"").arg(ZZ).arg(str2Z[ZZ]);
if (grObj[ii]->exist)
{
addLogText(st);
buf[12]=ii;
processSendingDatagrams(buf);
}
}
}
}
}
}
void Widget::sendKRU(int nAb, int zoneType)
{
QByteArray buf;
QDataStream d(&buf, QIODevice::WriteOnly);
d.setByteOrder(QDataStream::LittleEndian);
d.setFloatingPointPrecision(QDataStream::SinglePrecision);
d<< (qint16)63 << (qint16) currentTaskNum << (qint16)8 << (qint16)1;
d<<(qint32)0 << (qint16) nAb;
groundObj *gr;
qreal an=-1, an_2=-1;
if ((nAb>0)&&(nAb<7))
{
gr = grObj[nAb];
d<<(qint8)zoneType;
an_2 = (gr->angle2-gr->angle1)/2;
an = gr->angle1+an_2;
an_2=an_2*2;
if (an_2<0) an_2+=180;
if (an<0) an+=360;
if (an>=360) an-=360;
d << (float)an << (float)an_2;
// addLogText(tr("angle [%1 %2]").arg(an).arg(an_2));
for (int i =0; i <10; i++) d<< (float)0;
}
else
{
d<<(qint8)0;
for (int i=0;i<12;i++) d << (float)0;
}
// QString s = QString("bis = ");
// s.append( QString::number(an, 'f',0));
// s.append( " len/2 = ");
// s.append(QString::number(an_2, 'f',0));
// addLogText(s);
processSendingDatagrams(buf);
}
void Widget::synhrTimeout()
{
// addLogText("synhrTime");
QByteArray buf;
QDataStream d(&buf, QIODevice::WriteOnly);
d.setByteOrder(QDataStream::LittleEndian);
d<< (qint16)20;
if (currentTaskNum==0) // <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
d << (qint16)0;
}
else
{
d<<(qint16)currentTaskNum;
}
d << (qint16)1 << (qint16)1;
QTime time = QTime::currentTime();
d << (qint8)time.hour()<<(qint8)time.minute()<<(qint8)time.second()<<((quint8) (time.msec()/10)); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 999 - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 1 <20><><EFBFBD><EFBFBD>
d << (qint16)10 << (qint16)currentTaskNum << (qint16)1 << (qint16)0 ;
processSendingDatagrams(buf, 6690);
}
void Widget::initUprav()
{
gsc1 = new QGraphicsScene(this);
gsc1->setSceneRect(0,0,360,460);
gscUprav = new QGraphicsScene(this);
gscUprav->setSceneRect(0,0,360,4600);
gvUprav = ui->graphicsView_3;
gvUprav->setScene(gsc1);
gvUprav->centerOn(0,0);
gvUprav->setLinks(&grObj, &targets);
ui->graphicsView_4->setScene(gscUprav);
ui->graphicsView_4->centerOn(0,0);
QGraphicsLineItem *li;
for (int i=69; i<gscUprav->width(); i+=45)
{
li = new QGraphicsLineItem();
li->setPen(QPen(Qt::lightGray));
li->setLine(i, 0, i, gscUprav->height());
gscUprav->addItem(li);
}
for (int i=60; i<gscUprav->height(); i+=45)
{
li = new QGraphicsLineItem();
li->setPen(QPen(Qt::lightGray));
li->setLine(0, i, gscUprav->width(), i);
gscUprav->addItem(li);
}
tmr = new QTimer(this);
connect(tmr, SIGNAL(timeout()), this, SLOT(refreshUprTab()));
tmr->start(1000);
}
void Widget::magicTemp()
{
ui->comboBox_4->setCurrentIndex(3);
}
void Widget::initGraph()
{
gsc = new QGraphicsScene(this);
gsc->setSceneRect(-11310,-11310,22610, 22610); // <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
yellowBrick = gsc->addRect(0,0,1,1,QPen(QColor(Qt::yellow)));
gv1 = ui->graphicsView;
gv2 = ui->graphicsView_2;
gv1->uid = 0x1;
gv2->uid = 0x2;
setReper(QPointF(0,0));
setOwnTS(QPointF(0,0));
curCentr = ownTS;
gv1->setScene(gsc);
gv1->centerOn(curCentr);
gv1->setDrawCoords();
gv2->setScene(gsc);
gv2->centerOn(reper);
gv2->setDrawCoords(false);
// gArc = new graphicsArcItem();
// gArc->setPos(ownTS);
// gArc->setColor(Qt::cyan);
// gArc->setAngles(15, 45);
// gArc->setRadius(400);
// gsc->addItem(gArc);
grObj[0]->setPos(ownTS);
grObj[0]->setType(0);
for (int i=0; i<grObj.count(); i++)
{
gsc->addItem(grObj[i]);
}
for (int i=0; i<targets.count(); i++)
{
gsc->addItem(targets[i]);
}
gv1->setLinks(&grObj, &targets);
gv2->setLinks(&grObj, &targets);
}
void Widget::setCentr(QPointF p)
{
curCentr = p;
int d=grScales[ui->comboBox_2->currentIndex()]*10, d2=d*2;
gv1->fitInView(curCentr.x()-d,curCentr.y()-d,d2,d2, Qt::KeepAspectRatioByExpanding);
gv1->setSceneRect(curCentr.x()-d,curCentr.y()-d,d2,d2);
QRectF r = gv1->sceneRect();
QString s = QString("%1x%2").arg(r.width()/10).arg(r.height()/10);
ui->pushButton_41->setText(s);
r.setTopLeft(r.topLeft()-QPointF(5,5));
r.setBottomRight(r.bottomRight()+QPointF(5, 5));
yellowBrick->setRect(r);
}
void Widget::setOwnTS(QPointF p)
{
ownTS = p;
}
void Widget::setReper(QPointF p)
{
reper = p;
gv1->reper = p;
gv2->reper = p;
}
void Widget::renewArmWin()
{
QDateTime curTime = QDateTime::currentDateTime();
QString s;
s = curTime.toString("dd-MM-yyyy");
ui->labelDate->setText(s);
s = curTime.toString("hh:mm:ss");
ui->labelTime->setText(s);
ui->pbARM1->setStyleSheet("background-color: rgb(0, 220, 100)");
ui->pbRLS->setStyleSheet("background-color: rgb(0, 220, 100)");
// ui->pbARM2->setStyleSheet("background-color: rgb(0, 220, 100)");
// ui->pbV1->setStyleSheet("background-color: rgb(0, 220, 100)");
}
void Widget::addLogText(QString s)
{
QDateTime t = QDateTime::currentDateTime();
s.prepend(t.toString("hh:mm:ss "));
ui->textEdit->append(s);
}
void Widget::centerOnReper()
{
setCentr(reper);
}
void Widget::centerOnTS()
{
setCentr(ownTS);
}
void Widget::createMenu1()
{
QFont font(ui->label_2->font());
font.setPointSizeF(8);
ui->label_2->setFont(font);
QList<QAction*> la;
menu1 = new QMenuBar(ui->Menu1);
menu1->setGeometry(5,25,280,28);
QFont lf = menu1->font();
lf.setPointSizeF(8);
menu1->setFont(lf);
mSelect = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m1Sel = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m1Sel_a1<<m1Sel_a2;
m1Sel->addActions(la);
mSelect->addAction(m1SelVO);
m1SelNO = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>"));
la.clear();
la<<m1SelNO_a1<<m1SelNO_a2;
m1SelNO->addActions(la);
m1Soderzh = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"));
la.clear();
la<<m1Soderzh_a1<<m1Soderzh_a2;
m1Soderzh->addActions(la);
la.clear();
la<<m1CharRLS<<m1CharTarg<<m1CharPeleng<<m1Table;
mSelect->addActions(la);
m1Coord = mSelect->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m1Coord_a1<<m1Coord_a2;
m1Coord->addActions(la);
la.clear();
la<<m1MessRLS<<m1Trace;
mSelect->addActions(la);
mParam = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
m2Centr = mParam->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m2Centr_a1<<m2Centr_a2;
m2Centr->addActions(la);
la.clear();
la<<m2Temp<<m2Draw;
mParam->addActions(la);
m2Font = mParam->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m2Font_a1<<m2Font_a2;
m2Font->addActions(la);
mParam->addAction(m2Select);
mParam->addSeparator();
mParam->addAction(m2Save);
mMap = menu1->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m3Open<<m3Bright<<m3Layers;
mMap->addActions(la);
la.clear();
}
void Widget::createActions1()
{
m1Sel_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
m1Sel_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..."), this);
m1SelVO = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>"), this);
m1SelNO_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
m1SelNO_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m1Soderzh_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>..."), this);
m1Soderzh_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m1CharRLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"), this);
m1CharTarg = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"), this);
m1CharPeleng = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m1Table = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m1Coord_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>)"), this);
m1Coord_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"), this);
m1MessRLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<>122-1"), this);
m1Trace = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m2Centr_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
connect(m2Centr_a1, SIGNAL(triggered()), this, SLOT(centerOnReper()));
m2Centr_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>"), this);
connect(m2Centr_a2, SIGNAL(triggered()), this, SLOT(centerOnTS()));
m2Temp = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m2Draw = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m2Font_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"), this);
m2Font_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m2Select = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..."), this);
m2Save = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m3Open = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m3Bright = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
m3Layers = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."), this);
}
void Widget::createMenu2()
{
QList<QAction*> la;
menu2 = new QMenuBar(ui->Menu2);
menu2->setGeometry(0,0,680,25);
QFont lf = menu2->font();
lf.setPointSizeF(8);
menu2->setFont(lf);
mPrep = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mDev = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mSopr = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."));
mObob = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mUprav = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mReg = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mTren = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
mFK = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD>"));
mExit = menu2->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m4Conf<<m4Reper<<m4Mesto<<m4Reglam<<m4TTX<<m4Date;
mPrep->addActions(la);
m4PerC = mPrep->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
la<<m4PerC_a1<<m4PerC_a2<<m4PerC_a3;
m4PerC->addActions(la);
mPrep->addAction(m4Table);
mPrep->addAction(m4Resend);
mPrep->addSeparator();
mPrep->addAction(m4Save);
mPrep->addAction(m4Load);
la.clear();
la<<m5RST<<m5RLS<<m5R910;
mDev->addActions(la);
la.clear();
la<<m6AZ<<m6AZPT<<m6Manual;
mSopr->addActions(la);
la.clear();
la<<m7Trace<<m7Otozhd<<m7Opov;
mObob->addActions(la);
m7Ukr = mObob->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
la.clear();
for (int i=0; i<8; i++) la<<m7Ukr_1[i];
m7Ukr->addActions(la);
la.clear();
for (int i=0; i<6; i++) la<<m8Upr[i];
mUprav->addActions(la);
la.clear();
for (int i=0; i<5; i++) la<<m9Reg[i];
mReg->addActions(la);
la.clear();
for (int i=0; i<7; i++) la<<m10Tren[i];
mTren->addActions(la);
m10ImitVKP = mTren->addMenu(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"));
m10ImitVKP->addAction(m10ImitVKP_a1);
m10ImitVKP->addAction(m10ImitVKP_a2);
mTren->addAction(m10Tren[7]);
la.clear();
for (int i=0; i<7; i++) la<<m11FK[i];
mFK->addActions(la);
mExit->addAction(m12Restart);
mExit->addAction(m12Exit);
connect(ui->pb_f1, SIGNAL(clicked()), this, SLOT(msAirTicket()));
connect(ui->pb_f2, SIGNAL(clicked()), this, SLOT(msAbnTicket()));
connect(ui->pb_f4, SIGNAL(clicked()), this, SLOT(msResetTarget()));
connect(ui->pb_f5, SIGNAL(clicked()), this, SLOT(msKillTarget()));
connect(ui->pb_f6, SIGNAL(clicked()), this, SLOT(msResetCmd()));
connect(ui->pb_f7, SIGNAL(clicked()), this, SLOT(msKzsTarget()));
connect(ui->pb_f8, SIGNAL(clicked()), this, SLOT(msVvod2Z()));
}
void Widget::createActions2()
{
m4Conf = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> Ctrl+11"), this);
m4Reper = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+12"), this);
m4Mesto = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+13"), this);
m4Reglam = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>-498<39><38><EFBFBD> Ctrl+14"), this);
m4TTX = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+15"), this);
m4Date = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> Ctrl+16"), this);
m4PerC_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+17"), this);
m4PerC_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+18"), this);
m4PerC_a3 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> 1 <20> <20><><EFBFBD><EFBFBD> 2 Ctrl+19"), this);
m4Table = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m4Resend = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m4Save = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m4Load = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m5RST = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+23"), this);
m5RLS = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Ctrl+24"), this);
m5R910 = new QAction(QString::fromLocal8Bit("<EFBFBD>910<EFBFBD> Ctrl+25"), this);
m6AZ = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+31"), this);
m6AZPT = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ctrl+32"), this);
m6Manual = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+33"), this);
m7Trace = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+41"), this);
m7Otozhd = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+42"), this);
m7Opov = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+43"), this);
m7Ukr_1[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[6] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m7Ukr_1[7] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m8Upr[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+51"), this);
connect(m8Upr[0], SIGNAL(triggered()), this, SLOT(msCtrlModes()));
m8Upr[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+52"), this);
connect(m8Upr[1], SIGNAL(triggered()), this, SLOT(msVvodSectOtvet()));
m8Upr[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+53"), this);
m8Upr[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ctrl+54"), this);
m8Upr[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+55"), this);
m8Upr[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> Ctrl+56"), this);
m9Reg[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+62"), this);
m9Reg[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+63"), this);
m9Reg[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+64"), this);
m9Reg[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+65"), this);
m9Reg[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+66"), this);
m10Tren[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+71"), this);
m10Tren[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+72"), this);
m10Tren[2] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+73"), this);
m10Tren[3] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+74"), this);
m10Tren[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+75"), this);
m10Tren[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+76"), this);
m10Tren[6] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
m10Tren[7] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+79"), this);
m10ImitVKP_a1 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD>, <20><>, <20><> Ctrl+77"), this);
m10ImitVKP_a2 = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+78"), this);
m11FK[0] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Ctrl+81"), this);
m11FK[1] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+82"), this);
m11FK[2] = new QAction(QString::fromLocal8Bit("<EFBFBD>911 Ctrl+83"), this);
m11FK[3] = new QAction(QString::fromLocal8Bit("<EFBFBD>-498<39><38><EFBFBD> Ctrl+84"), this);
m11FK[4] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D> Ctrl+85"), this);
m11FK[5] = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD> Ctrl+86"), this);
m11FK[6] = new QAction(QString::fromLocal8Bit("<EFBFBD>910<EFBFBD> Ctrl+89"), this);
m12Restart = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl+95"), this);
m12Exit = new QAction(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+96"), this);
}
void Widget::on_pushButton_40_clicked()
{
ui->pushButton_39->setChecked(false);
ui->pushButton_38->setChecked(false);
ui->pushButton_40->setChecked(true);
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
ui->label_2->setStyleSheet("color: black");
}
void Widget::on_pushButton_39_clicked()
{
ui->pushButton_39->setChecked(true);
ui->pushButton_38->setChecked(false);
ui->pushButton_40->setChecked(false);
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
ui->label_2->setStyleSheet("color: black");
}
void Widget::on_pushButton_38_clicked()
{
ui->pushButton_39->setChecked(false);
ui->pushButton_38->setChecked(true);
ui->pushButton_40->setChecked(false);
ui->label_2->setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"));
ui->label_2->setStyleSheet("color: red");
QMessageBox msg(this);
msg.setWindowTitle(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"));
msg.setIcon(QMessageBox::Information);
msg.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
msg.addButton(QString::fromLocal8Bit("<EFBFBD><EFBFBD>"),QMessageBox::AcceptRole);
msg.exec();
}
void Widget::on_comboBox_2_currentIndexChanged(int index)
{
setCentr(curCentr);
QTimer::singleShot(50,this, SLOT(setCentr()));
}
void Widget::on_comboBox_4_currentIndexChanged(int index)
{
int d=grScales[index]*10, d2=d*2;
gv2->fitInView(reper.x()-d,reper.y()-d,d2,d2, Qt::KeepAspectRatioByExpanding);
gv2->setSceneRect(reper.x()-d,reper.y()-d,d2,d2);
gv2->centerOn(reper);
QRectF r = gv2->sceneRect();
QString s = QString("%1x%2").arg(r.width()/10).arg(r.height()/10);
ui->pushButton_50->setText(s);
}
void Widget::keyPressEvent ( QKeyEvent *e )
{
// int c = e->key();
// static int cOld=0;
// int res = 0;
bool fl=true; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Crtl+1x, Crtl+2x, Crtl+5x <20> Crtl+9x
// if (e->modifiers() & Qt::ControlModifier)
// {
// if ((c>=0x30) && (c<=0x39))
// {
// if ((cOld==0x31)||(cOld==0x32)||(cOld==0x35)||(cOld==0x39))
// {
// res = (cOld-0x30)*10+c-0x30;
//// ui->lineEdit->setText(QString::number(res, 10));
// switch (res)
// {
// case 21:
////
// break;
// default:
// break;
// }
// }
// cOld = c;
// }
// else
// cOld = 0;
// fl =false;
// }
// if (e->modifiers() & Qt::AltModifier)
// {
// switch (c) {
// case 0x31:
// releaseKeyboard();
// break;
// case 0x32:
// releaseKeyboard();
// break;
// default:
// break;
// }
// fl = false;
// }
switch (e->key())
{
case Qt::Key_F1:
// addLogText("F1 pressed");
QTimer::singleShot(100, this, SLOT(msAirTicket()));
break;
case Qt::Key_F2:
// addLogText("F2 pressed");
QTimer::singleShot(100, this, SLOT(msAbnTicket()));
break;
case Qt::Key_F3:
// addLogText("F3 pressed");
break;
case Qt::Key_F4:
QTimer::singleShot(100, this, SLOT(msResetTarget()));
// addLogText("F4 pressed");
break;
case Qt::Key_F5:
// addLogText("F5 pressed");
QTimer::singleShot(100, this, SLOT(msKillTarget()));
break;
case Qt::Key_F6:
// addLogText("F6 pressed");
QTimer::singleShot(100, this, SLOT(msResetCmd()));
break;
case Qt::Key_F7:
//// addLogText("F7 pressed");
QTimer::singleShot(100, this, SLOT(msKzsTarget()));
break;
case Qt::Key_F8:
QTimer::singleShot(100, this, SLOT(msVvod2Z()));
// addLogText("F8 pressed");
break;
case Qt::Key_F9:
// addLogText("F9 pressed");
break;
default:
break;
}
if (fl) QWidget::keyPressEvent(e);
}
void Widget::msResetTarget()
{
vvodnomeratrace *vnt;
vnt = new vvodnomeratrace(this);
vnt->setTitle(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
vnt->exec();
int num = vnt->result();
vnt->close();
if (num>0)
{
targets[num-1]->exist = false;
targets[num-1]->uid = -1;
hashIdToNum[num]=-1;
}
}
void Widget::refreshUprTab()
{
upravLine *ul;
bool fl;
bool dbgFlag=false;
if (tmrCheckTaskStop->isActive())
{
for (int i=0;i<100; i++)
{
if (uLines[i]!=0)
{
if (uLines[i]->tar->exist)
{
if (!uLines[i]->tar->haveCU())
{
delete uLines[i];
uLines[i]=0;
}
}
else
{
delete uLines[i];
uLines[i]=0;
}
}
}
}
for (int i=0; i<targets.count(); i++)
{
if (targets[i]->exist)
{
if (targets[i]->haveCU())
{
fl = true;
for (int j=0; j<100; j++)
{
if (uLines[j]!=0)
if (uLines[j]->tar == targets[i])
{
fl = false;
break;
}
}
if (fl) // true - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
{
for (int j=0;j<100;j++)
{
if (uLines[j]==0)
{
ul = new upravLine();
ul->setTarget(targets[i]);
gscUprav->addItem(ul);
// ul->setPos(0, 60+j*45);
uLines[j]=ul;
break;
}
}
}
// if (uLines.indexOf(targets[i])==-1)
// {
// ul = new upravLine();
// ul->setTarget(targets[i]);
// gscUprav->addItem(ul);
// ul->setPos(0, 60+i*45);
// if (uLines.indexOf(0)!=-1)
// {
// uLines.at(uLines.indexOf(0)) = ul;
// }
// else
// uLines<<ul;
// }
}
else {
for (int j=0; j<100; j++)
{
if (uLines[j]!=0)
if (uLines[j]->tar == targets[i]) {
delete uLines[j];
uLines[j]=0;
dbgFlag = true;
break;
}
}
}
}
}
QQueue<int> q;
for (int i=0; i<100; ++i) {
if (uLines[i]==0)
q.enqueue(i);
else if (!q.empty()) {
int pos = q.dequeue();
std::swap(uLines[i], uLines[pos]);
q.enqueue(i);
}
}
for (int i=0; i<100; ++i)
if (uLines[i])
uLines[i]->setPos(0, 60+i*45);
gsc1->update();
gscUprav->update();
}
void Widget::msVvodSectOtvet()
{
vvodSectOtvet *l=new vvodSectOtvet(this);
l->show();
}
void Widget::msAirTicket()
{
int d;
vvodnomeratrace vv(this);
vv.exec();
d = vv.result();
if (d>0)
{
if (openAirTicket)
openAirTicket->close();
airTicket *airT = new airTicket(d-1, this );
openAirTicket = airT;
airT->show();
curAirTicketNum = d;
}
vv.close();
}
void Widget::msAirTicketFree()
{
int d = curAirTicketNum;
if ((d>=0)&&(targets.at(d)->exist))
{
if (openAirTicket)
openAirTicket->close();
airTicket *airT = new airTicket(d, this);
openAirTicket = airT;
airT->show();
}
}
void Widget::changeOpenWidget(QObject *p, int code)
{
if (openWidget) openWidget->close();
openWidgetType = code;
openWidget = (QWidget*)p;
}
void Widget::clearOpenWidget()
{
openWidget = 0;
openWidgetType = 0;
}
void Widget::msKillTarget()
{
killTarget *killT = new killTarget(this);
changeOpenWidget(killT);
killT->show();
}
void Widget::msKzsTarget()
{
kzsTarget *kzsT = new kzsTarget(this);
changeOpenWidget(kzsT);
kzsT->show();
}
void Widget::msResetCmd()
{
resetCmd *resCmd = new resetCmd(this);
changeOpenWidget(resCmd);
resCmd->show();
}
void Widget::msVvod2Z()
{
vvod2z *l=new vvod2z(this);
changeOpenWidget(l, 2);
l->show();
}
void Widget::msAbnTicket()
{
abnticket *l=new abnticket(this);
l->show();
}
void Widget::msCtrlModes()
{
ctrlMode *l = new ctrlMode(this);
changeOpenWidget(l);
l->show();
}