DYTSrouce/src/workspace/WorkSpaceManager.h

49 lines
1.1 KiB
C
Raw Normal View History

2025-01-04 04:12:51 +00:00
#pragma once
#include <unordered_map>
#include <QObject>
#include "app/Singleton.h"
2025-01-18 14:36:28 +00:00
#include "scene/OEScene.h"
#include "viewer/OSGRenderer.h"
2025-01-04 04:12:51 +00:00
#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();
2025-01-05 13:49:36 +00:00
WorkSpace* LoadDefaultWorkspace(class OEScene* secen);
2025-01-05 11:12:18 +00:00
void SaveDefaultWorkspace();
2025-01-04 04:12:51 +00:00
bool Contains(const QString& name) const;
2025-01-04 15:41:53 +00:00
bool Remove(const QString& name);
2025-01-05 13:49:36 +00:00
WorkSpace* LoadDyt(const QString& dyt);
WorkSpace* GetOrCreate(const QString& path, const QString& name);
2025-01-04 04:12:51 +00:00
void SetCurrent(WorkSpace* workspace);
WorkSpace* GetCurrent() const { return current_; }
void OnFrame();
2025-01-18 14:36:28 +00:00
void OnRendererLoaded(OSGRenderer* renderer);
2025-01-04 04:12:51 +00:00
signals:
void WorkSpaceChanged(WorkSpace*);
2025-01-05 11:12:18 +00:00
private:
QString GetDefaultWorkSpaceName();
2025-01-04 04:12:51 +00:00
private:
2025-01-18 14:36:28 +00:00
osg::ref_ptr<class OEScene> scene_;
osg::observer_ptr<OSGRenderer> renderer_;
2025-01-04 04:12:51 +00:00
std::unordered_map<QString, WorkSpace*> workSpaces_;
WorkSpace* current_{ nullptr };
int64_t lastTime_{ 0 };
};