DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DADataManager.h
1#ifndef DADATAMANAGER_H
2#define DADATAMANAGER_H
3#include <QObject>
4#include <QRegularExpression>
5#include "DADataAPI.h"
6#include "DAData.h"
7class QUndoStack;
8namespace DA
9{
17class DADATA_API DADataManager : public QObject
18{
19 Q_OBJECT
20 DA_DECLARE_PRIVATE(DADataManager)
21 friend class DAData;
22
23public:
28 {
32 ChangeDataframeColumnName
33 };
34 Q_ENUM(ChangeType)
35public:
36 DADataManager(QObject* par = nullptr);
38 // 添加数据,返回数据的名字,添加数据时数据名字有可能会改变,数据的重复添加并不会带来影响
39 void addData(DAData& d);
40 void addData_(DAData& d);
41 DAData addData(const DAAbstractData::Pointer& d);
42 DAData addData_(const DAAbstractData::Pointer& d);
43 // 添加多个
44 void addDatas_(const QList< DAData >& datas);
45 // 移除数据
46 void removeData(DAData& d);
47 void removeData_(DAData& d);
48 void removeDatas_(const QList< DAData >& datas);
49 // 获取数据量
50 int getDataCount() const;
51 // 参数的索引
52 int getDataIndex(const DAData& d) const;
53 // 根据索引获取对应的值
54 DAData getData(int index) const;
55 // 查找数据
56 DAData findData(const QString& name, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
57 // 可以通过正则来匹配
58 QList< DAData > findDatas(const QString& pattern, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const;
59 QList< DAData > findDatasReg(const QRegularExpression& regex) const;
60 // 获取所有数据
61 QList< DAData > getAllDatas() const;
62 // 根据id获取数据
63 DAData getDataById(DAData::IdType id) const;
64 // 判断是否dirty,数据的改变和添加都会把此flag标记为true
65 bool isDirty() const;
66 // 设置脏标记
67 void setDirtyFlag(bool on);
68 // 获取undo stack
69 QUndoStack* getUndoStack() const;
70
71 // 触发dataInfomationChanged信号
72 void notifyDataChangedSignal(const DAData& d, ChangeType t);
73
74protected:
75 // 设置唯一名称
76 virtual void setUniqueDataName(DAData& d) const;
77 // 把所有管理的变量的名字按照set返回
78 QSet< QString > getDatasNameSet() const;
79 // 移除数据
80 void doRemoveData(DAData& d);
81public Q_SLOTS:
82 // 清除数据
83 void clear();
84Q_SIGNALS:
89 void dataAdded(const DA::DAData& d);
90
96 void dataBeginRemove(const DA::DAData& d, int dataIndex);
97
103 void dataRemoved(const DA::DAData& d, int dataOldIndex);
104
111
116
117public:
118 static QRegularExpression wildcardToRegex(const QString& pattern, Qt::CaseSensitivity cs);
119};
120} // namespace DA
121
122#endif // DADATAMANAGER_H
DAData的数据管理类,实现数据操作的一些通知例如数据添加、删除、改名、内容改变等等
Definition DADataManager.h:18
void dataChanged(const DA::DAData &d, DA::DADataManager::ChangeType t)
数据信息改变
ChangeType
改变类型
Definition DADataManager.h:28
@ ChangeValue
改变了值
Definition DADataManager.h:31
@ ChangeName
改变了名字
Definition DADataManager.h:29
@ ChangeDescribe
改变了描述
Definition DADataManager.h:30
void datasCleared()
数据被清除信号
void dataRemoved(const DA::DAData &d, int dataOldIndex)
数据删除发射的信号
void dataBeginRemove(const DA::DAData &d, int dataIndex)
数据准备删除
void dataAdded(const DA::DAData &d)
有数据添加发射的信号
DAAbstractData的封装 可以放入QMap,QHash中,DAData的等于操作相当于创建一个引用
Definition DAData.h:25
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44