/* * 说明: 轨迹回放工具主界面 * * 作者: 杨海洋 * 日期: 2023-05-26 */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include "HToolkit.h" #include "IToolkit.h" #include "HReplay.h" #include "ReplayWrapper.h" #include "MenuManage.h" #include "MapTrackCom.h" #include "ShowDetail.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow, public IToolkit { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); virtual ~MainWindow(); virtual void init() override; virtual void uninit() override; virtual void quitApp() override; virtual void selectTrackFile() override; virtual void loadTrackFiles(const QString& dirpath) override; virtual void mapZoom(int delta) override; virtual const QIcon& getIcon() override; virtual ReplayWrapper* getReplay() override; private: virtual void letsGo(bool click = true); virtual void sortFile(QVector& files); virtual void loadTrack(QVector& files, const QString& dirpath); virtual void setItemProperty(int index, ExamItemCode itemNo); virtual void updateItemProperty(ExamItemCode itemNo, const QColor& color); virtual QTextEdit* getItemProperty(int index); virtual void clearItemProperty(); virtual QTextEdit* findItemProperty(ExamItemCode itemNo); virtual void updateMarkProperty(const QString& text); virtual QString getMarkItemText(const TMarkRule& mark); virtual TMarkRule findMarkItemText(const TKfXm& item); virtual void updateCarzt(int carzt); virtual void updateSenser(QLabel* cg, const QString& name, int value); virtual void updateExamEvent(const QString& text, const QColor& color = KIT_RGB_GREEN); virtual QString getItemText(ExamItemCode itemNo); virtual QString itemNoToName(ExamItemCode itemNo); virtual void quitEvent(QEvent* event); virtual void playerAudio(std::string markcatalog); protected: virtual void closeEvent(QCloseEvent* event) override; virtual void keyPressEvent(QKeyEvent* event) override; virtual void mousePressEvent(QMouseEvent *event) override; signals: void sig_init(); private slots: //Q_SLOTS void updateDataImage(const QImage& img); void updateDataLog(int level, const QByteArray& log); void updateDataInitExam(const QString& info); void updateDataBeginExam(const QString& info); void updateDataRealExam(const QString& info); void updateDataArtificialMark(int itemno, const QString& serial); void updateDataArtificialItem(int itemno, int type); void updateDataCallbackRealExam(const QString& info); void updateDataCallbackPerform(const QString& info); void updateDataFrameNum(int num, int total); void updateNextDoing(); private slots: void on_btnClearLog_clicked(); void on_btnSelectTrackFile_clicked(); void on_btnRunning_clicked(); void on_btnPause_clicked(); void on_btnScalingSmall_clicked(); void on_btnScalingLarge_clicked(); void on_btnPlaySlow_clicked(); void on_btnPlayFast_clicked(); void on_btnTrackLast_clicked(); void on_btnTrackNext_clicked(); void on_frameNum_editingFinished(); void on_scalingDiploid_editingFinished(); void on_playSpeed_editingFinished(); void on_logLevel_currentIndexChanged(int index); void on_logCate_currentIndexChanged(int index); void on_logFilter_editingFinished(); void on_playTimes_editingFinished(); void on_trackFiles_currentIndexChanged(int index); void on_loop_currentIndexChanged(int index); void on_replay_currentIndexChanged(int index); void on_playSlider_sliderPressed(); void on_playSlider_sliderReleased(); void on_playSlider_valueChanged(int value); void on_initMark_highlighted(int index); void on_initSysset_highlighted(int index); void on_initModel_highlighted(int index); void on_btnArtiMark_clicked(); void on_btnArtiItem_clicked(); void on_artiItems_currentIndexChanged(int index); //void on_btnSend_clicked(); private: Ui::MainWindow* m_ui = nullptr; QThread* m_thread = nullptr; QIcon m_icon; int m_outputLogCount = 0; QString m_logFilter; ShowDetail* m_detail = nullptr; XParser* m_parser = nullptr; ReplayWrapper* m_replay = nullptr; int m_playTimes = 0; bool m_loop = false; //是否循环测试跑所有轨迹文件 QString m_logCate; int m_currGrade = 0; int m_markGrade = 0; int m_markTimes = 0; MenuManage* m_menuManage = nullptr; MapTrackCom* m_mapCom = nullptr; IMutex m_mtx; QMediaPlayer m_audio; QMediaPlaylist m_audioList; QAudioOutput m_audioOut; }; #endif // MAINWINDOW_H