DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DANodeMetaData.h
1#ifndef DANODEMETADATA_H
2#define DANODEMETADATA_H
3#include "DAWorkFlowAPI.h"
4#include <QtCore/qglobal.h>
5#include <QIcon>
6#include <QDataStream>
7#include <QDebug>
8namespace DA
9{
15class DAWORKFLOW_API DANodeMetaData
16{
17public:
19 DANodeMetaData(const QString& prototype, const QString& group);
20 DANodeMetaData(const QString& prototype, const QString& name, const QIcon& icon, const QString& group);
21 // ptototype
22 QString getNodePrototype() const;
23 void setNodePrototype(const QString& prototype);
24
25 // 节点名
26 QString getNodeName() const;
27 void setNodeName(const QString& name);
28
29 // 图标
30 QIcon getIcon() const;
31 void setIcon(const QIcon& icon);
32
33 // 所属分组
34 QString getGroup() const;
35 void setGroup(const QString& group);
36
37 // 说明
38 QString getNodeTooltip() const;
39 void setNodeTooltip(const QString& tp);
40
41 // 判断是否正常
42 bool isValid() const;
43 // 重载bool操作符
44 explicit operator bool() const;
45 // 重载<操作符
46 bool operator<(const DANodeMetaData& other) const;
47 bool operator==(const DANodeMetaData& other) const;
48 bool operator!=(const DANodeMetaData& other) const;
49
50public:
51 // 全名是group+'/'+NodePrototype,全名是作为等于判断的依据
52 static QString fullName(const DANodeMetaData& m);
53
54private:
55 QString mPrototype;
56 QString mNodeName;
57 QString mNodeToolTip;
58 QIcon mNodeIcon;
59 QString mGroup;
60};
61// qHash
62#if QT_VERSION_MAJOR >= 6
63inline std::size_t qHash(const DANodeMetaData& key, std::size_t seed = 0)
64{
65 return qHash(DANodeMetaData::fullName(key), seed);
66}
67#else
68inline uint qHash(const DANodeMetaData& key, uint seed = 0)
69{
70 return qHash(DANodeMetaData::fullName(key), seed);
71}
72#endif
73
74DAWORKFLOW_API QDataStream& operator<<(QDataStream& out, const DANodeMetaData& b);
75DAWORKFLOW_API QDataStream& operator>>(QDataStream& in, DANodeMetaData& b);
76DAWORKFLOW_API QDebug operator<<(QDebug debug, const DANodeMetaData& c);
77
78} // end of namespace DA
79Q_DECLARE_METATYPE(DA::DANodeMetaData)
80
81#endif // FCNODEMETADATA_H
保存节点元数据 节点元数据由工厂进行管理
Definition DANodeMetaData.h:16
static QString fullName(const DANodeMetaData &m)
获取全名
Definition DANodeMetaData.cpp:141
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44