123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef CMIND_H
- #define CMIND_H
- #include <QObject>
- struct CNodeData
- {
- int id = -1; // 节点 id, 对应数据库节点表中的 id, 数据库自动生成
- int projectId = -1; // 项目 id, 对应数据库项目表中的 id, 为脑图所属项目, 数据库自动生成
- int evalType = 0; // 评估类型
- int number = -1; // 节点编号, 作用域为当前脑图, 0 为根节点
- int pNumber = -1; // 父节点编号
- QString name; // 名称
- QString remark; // 备注
- CNodeData(int projId = -1, int evalType = 0, int number = -1, int pNumber = -1, int id = -1);
- bool isValid() const;
- bool isNull() const;
- bool isCached() const;
- bool hasParent() const;
- };
- class CMind : public QObject
- {
- Q_OBJECT
- public:
- explicit CMind(int projId = -1, int evalType = 0, QObject *parent = nullptr);
- // 节点数据
- QList<CNodeData> nodeList() const;
- void setNodeList(QList<CNodeData> list);
- bool isNodeValid(CNodeData n) const;
- CNodeData node(int number) const;
- bool containsNode(int number) const;
- /// 指定父节点, 创建节点
- CNodeData createNode(int pNumber = -1) const;
- void addNode(CNodeData n);
- void removeNode(int number);
- bool hasAncestor(int childNumber, int ancestorNumber) const;
- private:
- QList<int> numberList() const; // 节点编号列表
- // 最大的节点编号, 创建节点时, 编号递增
- int maxNumber() const;
- // 最小的节点编号, 由于创建节点时编号递增, 所以此为根节点
- int minNumber() const;
- private:
- QList<CNodeData> m_nodeList; // 节点列表
- int m_projectId = -1;
- int m_evalType = 0;
- };
- #endif // CMIND_H
|