DYTSrouce/src/workspace/WorkSpaceManager.h
2025-01-07 23:45:23 +08:00

45 lines
1006 B
C++

#pragma once
#include <unordered_map>
#include <QObject>
#include "app/Singleton.h"
#include "ui/chartPlot/DYTChart.h"
#include "ui/Table/targetlistwgt.h"
class WorkSpace;
class WorkSpaceManager : public QObject, public Singleton<WorkSpaceManager> {
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<QString, WorkSpace*> workSpaces_;
class OEScene* scene_{ nullptr };
WorkSpace* current_{ nullptr };
int64_t lastTime_{ 0 };
};