#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "mywinheader.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class TCPClient; class UpdateController; class RecognizeSystem; class ExternalExecuter; class UpdateNotifyWidget; class SettingsWidget; class HashComparer; class CommonButtonGroupWidget; class InstructorButtonGroupWidget; class VersionSelectWidget; class EntryWidget; class ScreenChecker; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); void callUpdateList(); void checkUpdate(); ~MainWindow(); void initialize(); void bindConnection(); void login(); void saveServerSettingsWithConnect(); void loadToServer(); void undoCurrentChanges(); void startUnityClient(); void setCurrentVersionName(StreamingVersionData *version); void disableUnsaveButton(bool flag); void activateLoadingAnimation(bool flag); void showMainFrame(bool flag); void showWarning(QString text); void setInlineDebug(QString value); signals: void sigInitializeClient(MainWindow* mainWindow, RecognizeSystem *recognizeSystem, ExternalExecuter *externalExecuter, SendSystem *sendSystem, QThread *thread); void sigRecognize(UpdateController* updateController, DataParser* dataParser, MainWindow* mainWindow, HashComparer* hashComparer, TCPClient *tcpClient); void sigSendCommand(PacketType packetType); void sigSendXMLAnswer(QString answer); void sigSetConnect(ServerSettings* serverSettings,QThread *thread); void sigCalculateHash(); void sigSendAutorization(); void sigSendCheck(); bool sigGetConnected(); void sigSendCheckUpdate(); public slots: void showUpdateInfo(); void showCompleteDialogBox(); void slotConnectionState(bool flag); void slotServerDisconnect(); void updateProgress(); void loadComplete(); void lostConnection(); void serverBlocked(); void checkLoginResult(ServerAuthorization * serverAuth); void setNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount); void showServerListWidget(QList *serverData); private slots: void on_settingsButton_clicked(); void on_languageComboBox_activated(const QString &arg1); void slotDisableNotify(); void on_exitButton_clicked(); void on_offlineStartButton_clicked(); void on_unsafeChangingButton_clicked(); private: Ui::MainWindow *ui; MyWinHeader *header; UpdateNotifyWidget *updateWidget; CommonButtonGroupWidget *commonButtonGroupWidget; EntryWidget *entryWidget; VersionSelectWidget *versionSelectWidget; WaitAnimationWidget *waitAnimationWidget; InstructorButtonGroupWidget *instructorButtonGroup; QTranslator translator; TCPClient *client; DataParser *dataParser; UpdateController *updateController; RecognizeSystem *recognizeSystem; ScreenChecker *screenChecker; ExternalExecuter *externalExecuter; SendSystem *sendSystem; HashComparer *hashComparer; VersionContainer *versionContainer; ResourceManager *resourceManager; NotifyController *notifyController; QThread *workerThread; QThread *animationThread; QTimer *timer; QList *updateList; QPixmap _background; QRect bottomRightPosition; QRect offlinePosition; int fileCountForUpdate; int filesLoaded; bool isRecovery; void checkAppAvailable(); void checkLanguage(QString language); void autoStart(); void loadStaticData(); void bindClient(); void createObjects(); void showConnectionEmpty(); void setTitle(); void setUpUi(); void setServerVersion(StreamingVersionData *version); void paintEvent(QPaintEvent *event); protected: virtual void keyPressEvent(QKeyEvent *event); }; #endif // MAINWINDOW_H