150 lines
4.6 KiB
C++
150 lines
4.6 KiB
C++
/*
|
|
* 说明: 轨迹回放工具主界面
|
|
*
|
|
* 作者: 杨海洋
|
|
* 日期: 2023-05-26
|
|
*/
|
|
|
|
#ifndef MAINWINDOW_H
|
|
#define MAINWINDOW_H
|
|
|
|
#include <QMainWindow>
|
|
#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<QString>& files);
|
|
virtual void loadTrack(QVector<QString>& 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
|