-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
183 lines (119 loc) · 9.35 KB
/
main.cpp
File metadata and controls
183 lines (119 loc) · 9.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include <QApplication>
#include <QProcess>
#include "main_window.h"
#include "camstream.h"
#include "algorithms.h"
#include "specialthread.h"
#include "updateapp.h"
#include "downloadfile.h"
#include "regandlogin.h"
using namespace std;
int main(int argc, char *argv[])
{
QThread::msleep(1000);
QApplication a(argc, argv);
CamStream* stream=new CamStream();
Main_window m_w ( stream );
SpecialThread s_t ( &m_w );
DownloadFile down_file;
UpdateApp upd_app;
RegAndLogIn reg_and_log;
reg_and_log.show();
QObject::connect(m_w.ui_2->cmb_webcam, SIGNAL(currentIndexChanged(int)), stream, SLOT(slotSaveSettings(int)) );
QObject::connect(m_w.ui_2->cmb_lang, SIGNAL(currentIndexChanged(int)), stream, SLOT(slotSaveSettings(int)) );
QObject::connect(m_w.ui_2->checkb_autorun, SIGNAL(stateChanged(int)), stream, SLOT(slotSaveSettings(int)));
QObject::connect(m_w.ui_2->checkb_visual, SIGNAL(stateChanged(int)), stream, SLOT(slotSaveSettings(int)));
QObject::connect(m_w.ui_2->checkb_voice, SIGNAL(stateChanged(int)), stream, SLOT(slotSaveSettings(int)));
QObject::connect(m_w.ui_2->checkb_autorun, SIGNAL(toggled(bool)), stream, SLOT(slotAutoRun(bool)));
QObject::connect(&m_w, SIGNAL(sigConnectAcceptToUpd()), &m_w, SLOT(slotTellAboutDownloading()));
QObject::connect(&m_w, SIGNAL(sigConnectAcceptToUpd()), &s_t, SLOT(start()) );
QObject::connect(&m_w, SIGNAL(sigConnectAcceptToUpd()), &upd_app, SLOT(slotAcceptDownload()));
QObject::connect(&m_w, SIGNAL(sigConnectRejectToUpd()), &upd_app, SLOT(slotRejectDownload()));
QObject::connect(&m_w, SIGNAL(sigConnectRejectToUpd()), &m_w, SLOT(slotNotifClose()));
QObject::connect(m_w.ui_2->btn_accept, SIGNAL(clicked(bool)), &m_w, SLOT(slotBlockPopupMsg(bool)));
QObject::connect(&m_w, SIGNAL(sigConnectAcceptToGym()), &s_t, SLOT(start()) );
QObject::connect(&m_w, SIGNAL(sigConnectAcceptToGym()), &m_w, SLOT(slotDoGym()));
QObject::connect(&m_w, SIGNAL(sigConnectRejectToGym()), &m_w, SLOT(slotNotifClose()));
QObject::connect(m_w.ui_2->btn_notnow, SIGNAL(clicked(bool)), &m_w, SLOT(slotBlockPopupMsg(bool)));
QObject::connect(&upd_app, SIGNAL(sigUpdateOrReject()), &m_w, SLOT(slotDrawUpdWnd()), Qt::QueuedConnection);
QObject::connect(m_w.ui_2->btn_check_update, SIGNAL(clicked()), &upd_app, SLOT(slotCheckUpdate()));
QObject::connect(&down_file, SIGNAL(done(const QString&)), &upd_app, SLOT(slotDoneLoad(const QString&)));
QObject::connect(stream, SIGNAL(sigCheckUpdate()), &upd_app, SLOT(slotCheckUpdate()));
QObject::connect(DownloadFile::GetInstance(), SIGNAL(sigDownload(const QString&)), &down_file, SLOT(slotDownload(const QString&)) );
QObject::connect(m_w.ui_2->cmb_webcam, SIGNAL(currentIndexChanged(int)), &m_w, SLOT(slotChangeCam(int)) );
QObject::connect(m_w.ui_2->cmb_lang, SIGNAL(currentIndexChanged(int)), &m_w, SLOT(slotChangeLang(int)) );
QObject::connect ( m_w.tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), &m_w, SLOT(slotShowMainWindow(QSystemTrayIcon::ActivationReason)));
QObject::connect(stream, SIGNAL(UnlockCam()), &m_w, SLOT(slotUnlockCam()));
QObject::connect(stream, SIGNAL(UnlockCam()), &s_t, SLOT(start()) );
QObject::connect(stream, SIGNAL(BusyCam()), &m_w, SLOT(slotBusyCam()));
QObject::connect(stream, SIGNAL(BusyCam()), &m_w, SLOT(slotNotifOpen()));
QObject::connect(m_w.ui_2->btn_close2, SIGNAL(clicked()), m_w.ui_2->widg_options, SLOT(hide()));
QObject::connect(m_w.ui->btn_close, SIGNAL(clicked()), &m_w, SLOT(slotCloseWindow()));
QObject::connect(m_w.act_options, SIGNAL(triggered()), m_w.ui_2->widg_options, SLOT(show()));
QObject::connect(m_w.act_exit, SIGNAL(triggered()), &m_w, SLOT(slotCloseWindow()));
QObject::connect(m_w.act_feedback, SIGNAL(triggered()), &m_w, SLOT(slotSendFeedback()));
QObject::connect(m_w.act_window, SIGNAL(triggered()), m_w.ui_2->widget_3, SLOT(show()));
QObject::connect(m_w.act_gym, SIGNAL(triggered()), &m_w, SLOT(slotDoGym()));
QObject::connect(m_w.act_pause, SIGNAL(triggered()), &m_w, SLOT(slotToStopOrResume()));
QObject::connect(m_w.act_logout, SIGNAL(triggered()), ®_and_log, SLOT(slotLogout()));
QObject::connect(m_w.act_logout, SIGNAL(triggered()), m_w.ui_2->widget_3, SLOT(hide()));
QObject::connect(m_w.act_logout, SIGNAL(triggered()), ®_and_log, SLOT(slotRepeatConnect()));
QObject::connect(m_w.act_logout, SIGNAL(triggered()), ®_and_log, SLOT(show()));
QObject::connect(m_w.act_logout, SIGNAL(triggered()), stream, SLOT(stop()));
QObject::connect(m_w.ui_2->btn_close_2, SIGNAL(clicked()), m_w.ui_2->widget_3, SLOT(hide()));
QObject::connect(m_w.ui_2->btn_close_2, SIGNAL(clicked()), &m_w, SLOT(slotToTray()));
//////////////CALIBRATION/////////////////////////////////////////////////////////////////////////
QObject::connect(m_w.act_calibrate, SIGNAL(triggered()), &m_w, SIGNAL(sigRunGuiCalibrate()));
QObject::connect(&m_w, SIGNAL(sigRunGuiCalibrate()), &m_w, SLOT(slotRunGuiCalibrate()));
QObject::connect(&m_w, SIGNAL(sigAlertOff()), stream, SLOT(slotAlertOff()));
QObject::connect(&m_w, SIGNAL(sigAlertOn()), stream, SLOT(slotAlertOn()));
QObject::connect(&m_w, SIGNAL(sigShowMainWindow()), &m_w, SLOT(show()));
QObject::connect(&m_w, SIGNAL(sigShowNextTuneup()), &m_w, SLOT(slotShowNextTuneup()));
QObject::connect(&m_w, SIGNAL(sigSendCalibStage(calibration_stages)), stream, SLOT(ChangeCalibrationStage(calibration_stages)) );
QObject::connect(&m_w, SIGNAL(sigAfterCalibrate()), &m_w, SLOT(hide()) );
QObject::connect(&m_w, SIGNAL(sigAfterCalibrate()), m_w.ui_2->widget_2, SLOT(show()) );
QObject::connect(&m_w, SIGNAL(sigAfterCalibrate()), stream, SLOT(pause()) );
/////////////////////////////////////////////////////////////////////////////////////////////////
QObject::connect(m_w.ui_2->btn_start, SIGNAL(clicked()), m_w.ui_2->widget_2, SLOT(hide()) );
QObject::connect(m_w.ui_2->btn_start, SIGNAL(clicked()), &m_w, SIGNAL(sigRunFirstTray()) );
QObject::connect(m_w.ui_2->btn_start, SIGNAL(clicked()), stream, SLOT(resume()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), m_w.ui_2->widget, SLOT(show()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), &m_w, SLOT(slotNotifOpen()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), &s_t, SLOT(start()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), &m_w, SLOT(slotToTray()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), &m_w, SIGNAL(sigAlertOn()) );
QObject::connect(&m_w, SIGNAL(sigRunFirstTray()), &m_w, SLOT(slotFirstMsg()) );
QObject::connect(&m_w, SIGNAL(sigDrawAnim()), &m_w, SLOT(slotNotifClose()));
QObject::connect(m_w.ui_2->btn_options, SIGNAL(clicked()), m_w.ui_2->widg_options, SLOT(show()) );
QObject::connect(stream,SIGNAL(EyesAreTooLow()),&m_w,SLOT(TooLowAlert()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(EyesAreTooLow()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(EyesAreTooLow()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(TooMuchSquint()),&m_w,SLOT(SquintAlert()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(TooMuchSquint()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(TooMuchSquint()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(EyesAreTooNear()),&m_w,SLOT(TooNearAlert()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(EyesAreTooNear()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(EyesAreTooNear()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()),&m_w,SLOT(TooHeighAlert()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(TooFewBlink()),&m_w,SLOT(slotEyesBlink()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(TooFewBlink()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(TooFewBlink()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()),&m_w,SLOT(TooHeighAlert()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(EyesAreTooHeigh()), &m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(BadLightness()),&m_w,SLOT(slotBadLightness()),Qt::QueuedConnection );
QObject::connect(stream,SIGNAL(BadLightness()), &s_t, SLOT(start()) );
QObject::connect(stream,SIGNAL(BadLightness()),&m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(&m_w,SIGNAL(sigRunFirstTray()),&m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(&m_w,SIGNAL(sigRunGuiCalibrate()),&m_w,SLOT(slotSetDefaultWnd()));
QObject::connect(stream,SIGNAL(ImageIsReady(QImage)),&m_w,SLOT(ShowImage(QImage)),Qt::QueuedConnection);
QObject::connect(stream, SIGNAL(CheckCalibration(bool)), &m_w, SLOT(slotReceiveInfo(bool)) );
QObject::connect(®_and_log, SIGNAL(sigRunMainProgram()), &m_w, SLOT(slotWhatModeRun()) );
QObject::connect(®_and_log, SIGNAL(sigRunMainProgram()), &m_w, SLOT(slotSetSettings()) );
//for metrics
QObject::connect(®_and_log, SIGNAL(signalSaveMetrics()), stream, SLOT(slotSaveMetrics()) );
QObject::connect(stream, SIGNAL(sigDrawGymWnd()), &m_w, SLOT(slotDrawGymWnd()), Qt::QueuedConnection );
return a.exec();
}