#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "Datas.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class TCPClient; class UpdateController; class RecognizeSystem; class ExternalExecuter; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); signals: void onInitializeClient(RecognizeSystem *recognizeSystem, ExternalExecuter *externalExecuter); void onSetConnect(ServerSettings* serverSettings); void onCalculateHash(); void SendClientAuthorization(); void onSendMessage(QString message); private slots: void on_loginButton_clicked(); void on_updateButton_clicked(); void on_startButton_clicked(); void on_saveServerButton_clicked(); void on_settingsButton_clicked(); private: Ui::MainWindow *ui; TCPClient *client; DataParser *dataParser; UpdateController *updateController; RecognizeSystem *recognizeSystem; ScreenChecker *screenChecker; ExternalExecuter *externalExecuter; QThread *connectionThread; QThread *updateControllerThread; quint64 maxBytesAvailable; void DebugLog(QString message); void Initialize(); void UpdateProgress(qint64 size,quint64 sended); void LoadComplete(); void SetNeedUpdate(bool flag); void LostConnection(); void CheckLoginResult(ServerAuthorization * serverAuth); void CheckAppAvailable(); }; #endif // MAINWINDOW_H