DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAppProject.h
1#ifndef DAAPPPROJECT_H
2#define DAAPPPROJECT_H
3#include <QObject>
4#include <QDomElement>
5#include <QDomDocument>
6#include <QTemporaryDir>
7#include "DAProjectInterface.h"
8#include "DAGlobals.h"
9#include "DAAbstractNodeLinkGraphicsItem.h"
10#include <QThread>
11#include "DAXmlHelper.h"
12#include "DAZipArchiveThreadWrapper.h"
13#include "DAChartItemsManager.h"
14
15namespace DA
16{
17class DAAbstractArchiveTask;
18class DAZipArchiveThreadWrapper;
19class DAWorkFlowOperateWidget;
20class DAWorkFlowGraphicsScene;
21class DADataOperateWidget;
22class DAChartOperateWidget;
23class DAAppPluginManager;
31{
32 Q_OBJECT
33public:
34 DAAppProject(DACoreInterface* c, QObject* p = nullptr);
36 // 工作流操作窗口
37 DAWorkFlowOperateWidget* getWorkFlowOperateWidget() const;
38 // 数据操作窗口
40 // 绘图窗口
42 // 追加一个工厂的工作流进入本工程中,注意这个操作不会清空当前的工作流
43 bool appendWorkflowInProject(const QDomDocument& doc, bool skipIndex = false);
44 bool appendWorkflowInProject(const QByteArray& data, bool skipIndex = false);
45 // 把绘图信息添加到工程
46 bool appendChartsInProject(const QDomDocument& doc, DAChartItemsManager* chartmanager);
47 // 繁忙状态判断
48 virtual bool isBusy() const override;
49 // 生成一个数据文件对应的临时文件位置
50 QString makeDataTemporaryFilePath(const QString& dataName);
51 // 把数据名称转换为zip文档中的相对路径位置
52 static QString makeDataArchiveFilePath(const QString& dataName);
53 // 设置插件
54 void setPluginMgr(DAAppPluginManager* plugin);
55public Q_SLOTS:
56 // 清除工程
57 virtual void clear() override;
58 // 保存工程,保存成功后需要发射projectSaved信号
59 virtual bool save(const QString& path) override;
60 // 加载工程,加载完成后需要发射projectLoaded信号
61 virtual bool load(const QString& path) override;
62 // 请求保存,会弹出保存对话框让用户选择保存路径保存
63 virtual bool requestSave();
64
65protected:
66 // 保存系统信息
68 // 保存工作流的任务
70 // 保存数据的任务
72 // 创建保存绘图的任务
74 // 保存workflow相关内容(以xml形式)
75 QDomDocument createWorkflowUIDomDocument();
76 // 保存charts相关内容(以xml形式)
77 QDomDocument createChartsUIDomDocument(DAChartItemsManager& chartItems);
78 bool loadWorkflowUI(const QByteArray& data);
79
80private Q_SLOTS:
81 void onBeginSave(const QString& path);
82 void onBeginLoad(const QString& path);
83 // 任务进度
84 void onTaskProgress(std::shared_ptr< DA::DAAbstractArchiveTask > t, int mode);
85 // 保存任务结束
86 void onSaveFinish(bool success);
87 // 保存任务结束
88 void onLoadFinish(bool success);
89
90private:
91 void loadedWorkflowInfo(const std::shared_ptr< DAAbstractArchiveTask >& t);
92 void loadedDataManager(const std::shared_ptr< DAAbstractArchiveTask >& t);
93 void loadedChartsInfo(const std::shared_ptr< DAAbstractArchiveTask >& t);
94 void setStatusBarInBusy(const QString& info = QString());
95 void setStatusBarNotBusy(const QString& info = QString());
96 void setCurrentStatusText(const QString& info);
97
98private:
99 DAZipArchiveThreadWrapper* mArchive { nullptr };
100 DAXmlHelper mXml;
101 std::unique_ptr< QTemporaryDir > mTempDir;
102 DAChartItemsManager mChartItemManager;
103 DAAppPluginManager* m_pluginMgr { nullptr };
104};
105
106} // namespace DA
107#endif // FCPROJECT_H
此app的插件管理类
Definition DAAppPluginManager.h:24
负责整个节点的工程管理
Definition DAAppProject.h:31
void makeSaveWorkFlowTask(DAZipArchiveThreadWrapper *archive)
创建保存工作流相关的保存任务
Definition DAAppProject.cpp:544
void makeSaveSystemInfoTask(DAZipArchiveThreadWrapper *archive)
保存系统信息
Definition DAAppProject.cpp:524
static QString makeDataArchiveFilePath(const QString &dataName)
根据数据文件名字,创建这个数据文件在zip文件的位置
Definition DAAppProject.cpp:339
bool appendChartsInProject(const QDomDocument &doc, DAChartItemsManager *chartmanager)
把绘图信息添加到工程
Definition DAAppProject.cpp:299
DADataOperateWidget * getDataOperateWidget() const
数据操作窗口
Definition DAAppProject.cpp:212
void setPluginMgr(DAAppPluginManager *plugin)
设置插件管理器
Definition DAAppProject.cpp:348
virtual void clear() override
清除工程
Definition DAAppProject.cpp:356
void makeSaveChartTask(DAZipArchiveThreadWrapper *archive)
添加保存绘图任务
Definition DAAppProject.cpp:620
virtual bool isBusy() const override
繁忙状态判断
Definition DAAppProject.cpp:316
virtual bool load(const QString &path) override
加载
Definition DAAppProject.cpp:441
virtual bool save(const QString &path) override
保存工程
Definition DAAppProject.cpp:388
DAChartOperateWidget * getChartOperateWidget() const
绘图窗口
Definition DAAppProject.cpp:221
QString makeDataTemporaryFilePath(const QString &dataName)
根据数据文件名字,创建这个数据文件在本地的临时文件位置
Definition DAAppProject.cpp:326
QDomDocument createChartsUIDomDocument(DAChartItemsManager &chartItems)
创建绘图xml
Definition DAAppProject.cpp:659
void makeSaveDataManagerTask(DAZipArchiveThreadWrapper *archive)
保存数据的任务
Definition DAAppProject.cpp:559
这个类用于管理和记录整个绘图的所有QwtPlotItem,主要用于持久化的时候,记录QwtPlotItem和key的对应关系
Definition DAChartItemsManager.h:17
绘图操作窗口
Definition DAChartOperateWidget.h:23
APP的核心接口
Definition DACoreInterface.h:24
数据操作窗口,负责数据区域操作
Definition DADataOperateWidget.h:24
负责总体工程的接口
Definition DAProjectInterface.h:21
工作流绘图建模窗口
Definition DAWorkFlowOperateWidget.h:26
DAProjectInterface::getProjectVersion的版本号会通过setVersionNumber设置进DAXmlHelper DAXmlHelper会根据QVersionNumb...
Definition DAXmlHelper.h:50
DAZipArchive的多线程封装,此类内部维护着一个线程,封装了
Definition DAZipArchiveThreadWrapper.h:16
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44