#pragma once #include #include #include "app/Singleton.h" #include "ui/chartPlot/DYTChart.h" #include "ui/Table/targetlistwgt.h" class WorkSpace; class WorkSpaceManager : public QObject, public Singleton { Q_OBJECT public: explicit WorkSpaceManager(QObject* parent = nullptr); ~WorkSpaceManager(); void OnDestory(); bool Contains(const QString& name) const; bool Remove(const QString& name); WorkSpace* LoadDyt(const QString& dyt, class OsgView* view); WorkSpace* GetOrCreate(const QString& path); void SetCurrent(WorkSpace* workspace); WorkSpace* GetCurrent() const { return current_; } bool SetDYTWaveFile(const QString& file) { m_waveFile = file; return true; } bool SetDYTReportFile(const QString& file) { m_reportFile = file; return true; } bool SetDYTRDFile(const QString& file) { m_rdFile = file; return true; } QString GetDYTWaveFile() { return m_waveFile; } QString GetDYTReportFile() { return m_reportFile; } QString GetDYTRDFile() { return m_rdFile; } void OnFrame(); signals: void WorkSpaceChanged(WorkSpace*); private: std::unordered_map workSpaces_; WorkSpace* current_{ nullptr }; int64_t lastTime_{ 0 }; QString m_waveFile; QString m_reportFile; QString m_rdFile; };