#ifndef DIALOG_UPDATEPROGRESS_H #define DIALOG_UPDATEPROGRESS_H #include #include "base/HGThread.h" #include "base/HGDll.h" #include "version/HGVersion.h" #include "mainwindow.h" namespace Ui { class Dialog_updateProgress; } class Dialog_updateProgress : public QDialog { Q_OBJECT public: explicit Dialog_updateProgress(HGDll dll, HGVersionMgr mgr, const QString &url, const QString &versionNum, const QString &md5, QWidget *parent = nullptr); ~Dialog_updateProgress(); private: static HGInt HttpDownloadThreadFunc(HGULonglong totalSize, HGULonglong nowSize, HGPointer param); static void ThreadFunc(HGThread thread, HGPointer param); signals: void updateProgress(int value); void finish(); void upgradeApp(); private slots: void on_updateProgress(int value); void on_finish(); void on_pushButton_clicked(); bool isFileExists(const std::string& filepath); protected: virtual void closeEvent(QCloseEvent* e); private: Ui::Dialog_updateProgress *ui; HGDll m_versionDll; HGVersionMgr m_versionMgr; QString m_url; QString m_versionNum; QString m_md5; bool m_stopThread; HGThread m_thread; }; #endif // DIALOG_UPDATEPROGRESS_H