#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include "Datas.h" #include "commonbuttongroupwidget.h" #include "entrywidget.h" #include "instructorbuttongroupwidget.h" #include "mywinheader.h" #include "updatenotifywidget.h" #include "updatewidget.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class TCPClient; class UpdateController; class RecognizeSystem; class ExternalExecuter; class UpdateNotifyWidget; class HashComparer; class CommonButtonGroupWidget; class InstructorButtonGroupWidget; class EntryWidget; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); void callUpdateList(); void checkUpdate(); ~MainWindow(); void bindConnection(); signals: void sigInitializeClient(RecognizeSystem *recognizeSystem, ExternalExecuter *externalExecuter, SendSystem *sendSystem, QThread *thread); void sigSendCommand(QString command); void sigUpdateFilesOnServer(QList *fileSendList); void sigSetConnect(ServerSettings* serverSettings,QThread *thread); void sigCalculateHash(); void sigSendAutorization(); bool sigGetConnected(); public slots: void updateProgress(); void loadComplete(); void lostConnection(); void serverBlocked(); void checkLoginResult(ServerAuthorization * serverAuth); void setNeedUpdate(bool flag,quint64 size,quint64 fileCount); private slots: void on_settingsButton_clicked(); void on_languageComboBox_activated(const QString &arg1); void slotDisableNotify(); void slotConnectionState(bool flag); void slotServerDisconnect(); void on_updateListGuideLabel_linkActivated(const QString &link); void on_exitButton_clicked(); void on_offlineStartButton_clicked(); private: Ui::MainWindow *ui; MyWinHeader *header; UpdateNotifyWidget *updateWidget; CommonButtonGroupWidget *commonButtonGroupWidget; InstructorButtonGroupWidget *instructorButtonGroupWidget; EntryWidget *entryWidget; UpdateWidget *updateTextWidget; QTranslator translator; TCPClient *client; DataParser *dataParser; UpdateController *updateController; RecognizeSystem *recognizeSystem; ScreenChecker *screenChecker; ExternalExecuter *externalExecuter; SendSystem *sendSystem; HashComparer *hashComparer; QThread *connectionThread; QThread *animationThread; QTimer *timer; QMovie *movie; QLabel *movieLabel; QList *updateList; int fileCountForUpdate; int filesLoaded; bool isRecovery; void painting(); void checkAppAvailable(); void checkLanguage(QString language); void autoStart(); void loadStaticData(); void bindClient(); void createObjects(); void showUpdateInfo(); void startLoadingAnim(); void stopLoadingMovie(); void showCompleteDialogBox(); void showConnectionEmpty(); public: void initialize(); void login(); void saveServerSettingsWithConnect(); void loadToServer(); void undoCurrentChanges(); void startUnityClient(); protected: virtual void keyPressEvent(QKeyEvent *event); }; #endif // MAINWINDOW_H