#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(); WorkSpace* LoadDefaultWorkspace(class OEScene* secen); void SaveDefaultWorkspace(); bool Contains(const QString& name) const; bool Remove(const QString& name); WorkSpace* LoadDyt(const QString& dyt); WorkSpace* GetOrCreate(const QString& path, const QString& name); void SetCurrent(WorkSpace* workspace); WorkSpace* GetCurrent() const { return current_; } void OnFrame(); signals: void WorkSpaceChanged(WorkSpace*); private: QString GetDefaultWorkSpaceName(); private: std::unordered_map workSpaces_; class OEScene* scene_{ nullptr }; WorkSpace* current_{ nullptr }; int64_t lastTime_{ 0 }; };