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

268 lines
5.0 KiB
C++

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QMenuBar>
#include <QTimer>
#include <QDateTime>
#include <QMessageBox>
#include <QGraphicsScene>
#include <QGraphicsItem>
#include <QKeyEvent>
#include <QWheelEvent>
#include <QScrollBar>
#include <QList>
#include <QHash>
#include <QUdpSocket>
#include "graphicsviewmod.h"
#include "graphicsarcitem.h"
#include "groundobj.h"
#include "airobj.h"
#include "upravview.h"
#include "upravline.h"
#include "vvodsectotvet.h"
#include "vvodnomeratrace.h"
#include "airticket.h"
#include "killtarget.h"
#include "kzstarget.h"
#include "resetcmd.h"
#include "vvod2z.h"
#include "abnticket.h"
#include "ctrlmode.h"
namespace Ui {
class Widget;
}
struct KO
{
int ZZ;
qreal x;
qreal y;
};
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
QTimer *tmr;
QTimer *tmrCheckTaskStop;
QTimer *tmrUpr;
int tempCurTarg;
QWidget *openWidget;
int openWidgetType;
QWidget *openAirTicket;
int curAirTicketNum;
int currentNum;
/* */
QPointF reper;
QPointF ownTS;
QPointF curCentr;
QList<KO> cmdKO;
/* Ñåòåâûå øòóêè*/
void initNetwork();
int currentTaskNum;
int readyForTask;
int ownId;
QTimer *nTmr;
void sendCU(int nAb, int ZZ, int uid=0, qreal x =0, qreal y=0);
void sendKRU(int nAb, int zoneType);
QUdpSocket *udpSocket;
QUdpSocket *udpNewTask;
QUdpSocket *udpSend;
/* ãðàôè÷åñêèå øòóêè */
int grScales[9];
QGraphicsScene *gsc;
GraphicsViewMod *gv1, *gv2;
QGraphicsRectItem *yellowBrick;
graphicsArcItem *gArc;
QList <groundObj*> grObj;
QList <airObj*> targets;
QHash<int, int> hashIdToNum;
/* Òàáëèöà óïðàâëåíèÿ */
QGraphicsScene *gscUprav;
upravView *gvUprav;
QGraphicsScene *gsc1;
upravLine* uLines[100];
/* Òàáëèöà 2Z */
QList<QString> str2Z;
/* Óïðàâëåíèå ðåæèìàìè (àâòîÖÓ) */
bool vklCCR, sendCCR;
/* Ìåíþ1 */
QMenuBar *menu1;
QMenu *mSelect;
QMenu *mParam;
QMenu *mMap;
/* Ìåíþ Ñåëåêöèÿ */
QMenu *m1Sel;
QAction *m1Sel_a1, *m1Sel_a2;
QAction *m1SelVO;
QMenu *m1SelNO;
QAction *m1SelNO_a1, *m1SelNO_a2;
QMenu *m1Soderzh;
QAction *m1Soderzh_a1, *m1Soderzh_a2;
QAction *m1CharRLS;
QAction *m1CharTarg;
QAction *m1CharPeleng;
QAction *m1Table;
QMenu *m1Coord;
QAction *m1Coord_a1, *m1Coord_a2;
QAction *m1MessRLS;
QAction *m1Trace;
/* Ìåíþ Ïàðàìåòðû */
QMenu *m2Centr;
QAction *m2Centr_a1, *m2Centr_a2;
QAction *m2Temp;
QAction *m2Draw;
QMenu *m2Font;
QAction *m2Font_a1, *m2Font_a2;
QAction *m2Select;
QAction *m2Save;
/* Ìåíþ Êàðòà*/
QAction *m3Open, *m3Bright, *m3Layers;
/*Menu2*/
QMenuBar *menu2, *menu3;
QMenu *mPrep, *mDev, *mSopr, *mObob, *mUprav, *mReg, *mTren, *mFK, *mExit;
/* Ïîäãîòîâêà*/
QAction *m4Conf, *m4Reper, *m4Mesto, *m4Reglam, *m4TTX, *m4Date;
QMenu *m4PerC;
QAction *m4PerC_a1,*m4PerC_a2,*m4PerC_a3;
QAction *m4Table, *m4Resend, *m4Save, *m4Load;
/* Óñòðîéñòâà*/
QAction *m5RST, *m5RLS, *m5R910;
/* Ñîïðîâîæäåíèå */
QAction *m6AZ, *m6AZPT, *m6Manual;
/* ÎáîáùåíèåÂÎ*/
QAction *m7Trace, *m7Otozhd, *m7Opov;
QMenu *m7Ukr;
QAction *m7Ukr_1[8];
/* Óïðàâëåíèå */
QAction *m8Upr[6];
/* Ðåãèñòðàöèÿ*/
QAction *m9Reg[5];
/* Òðåíàæ */
QAction *m10Tren[8];
QMenu *m10ImitVKP;
QAction *m10ImitVKP_a1, *m10ImitVKP_a2;
/* ÔÊ*/
QAction *m11FK[7];
/* Âûõîä */
QAction *m12Restart, *m12Exit;
void createMenu1();
void createActions1();
void createMenu2();
void createActions2();
void setReper(QPointF p);
void setOwnTS(QPointF p);
void setCentr(QPointF p);
void changeOpenWidget(QObject *p, int code=0);
void clearOpenWidget();
void addTarget(int id, int aType, int gType, qreal cX, qreal cY, qreal cH, qreal vX, qreal vY);
int findTargetFromId(int d);
int findNextNum(int d);
void readGroundOpt();
void writeGroundOpt();
public slots:
void setCentr() {setCentr(curCentr);}
void renewArmWin();
void checkTargetsAndKRU();
void addLogText(QString s);
void centerOnReper();
void centerOnTS();
void magicTemp();
void refreshUprTab();
/* ñåòåâûå ñëîòû*/
void synhrTimeout();
void newTaskRead();
void processSendingDatagrams(QByteArray buf, int port=6690);
void stopTask();
/* Ñëîòû âûçîâà ìåíþ */
void msVvodSectOtvet();
void msAirTicket();
void msAirTicketFree();
void msKillTarget();
void msKzsTarget();
void msResetTarget();
void msResetCmd();
void msVvod2Z();
void msAbnTicket();
void msCtrlModes();
private slots:
void on_pushButton_40_clicked();
void on_pushButton_39_clicked();
void on_pushButton_38_clicked();
void on_comboBox_2_currentIndexChanged(int index);
void on_comboBox_4_currentIndexChanged(int index);
private:
void initGraph();
void initUprav();
Ui::Widget *ui;
virtual void keyPressEvent ( QKeyEvent * e );
};
#endif // WIDGET_H