#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE #include "worker.h" #include "update.h" #include "update_dc_event.h" #define EMERGENCY_LEAVE_BL 0 class hwinf; class MainWindow : public QMainWindow { Q_OBJECT protected: void customEvent(QEvent *event) override; // bool eventFilter(QObject *obj, QEvent *ev) override; public: MainWindow(hwinf *hw, Worker *worker, Update *update, QWidget *parent = nullptr); ~MainWindow(); static const int START_PROGRESS_LOOP = -1; static const int STOP_PROGRESS_LOOP = -2; static const int BL_START_COUNT = 5; static const int BL_CHECK_COUNT = 5; static const int BL_IS_UP_COUNT = 5; static const int BL_STOP_COUNT = 5; // int progressValue() const { return m_progressValue; } hwinf *getPlugin() { return m_hw; } hwinf const *getPlugin() const { return m_hw; } Update *getUpdate() { return m_update; } Update const *getUpdate() const { return m_update; } UpdateDcEvent::UpdateStep updateStep() const { return m_updateStep; } void setUpdateStep(UpdateDcEvent::UpdateStep updateStep) { m_updateStep = updateStep; } public slots: void onAppendText(QString, QString suffix = ""); void onReplaceLast(QStringList, QString suffix = ""); void onReplaceLast(QString, QString suffix = ""); void onShowErrorMessage(QString, QString); void onShowStatusMessage(QString, QString); void onStopStartTimer(); void onRestartExitTimer(); void onEnableExit(); void onDisableExit(); #if EMERGENCY_LEAVE_BL==1 void emergencyLeaveBL(); #endif signals: #if EMERGENCY_LEAVE_BL==1 void leaveBL(); #endif private slots: void onQuit(); private: void scrollDownTextEdit(); void onShowMessage(QString, QString); Ui::MainWindow *ui; hwinf *m_hw; Worker *m_worker; int const m_width; QTimer *m_startTimer; QTimer *m_exitTimer; bool m_progressRunning; //int m_progressValue; Update *m_update; UpdateDcEvent::UpdateStep m_updateStep; }; #endif // MAINWINDOW_H