1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #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(CNodeData n) const;
- /// 以 parent 为父节点创建节点
- void createNode(CNodeData parent = CNodeData());
- void addNode(CNodeData n);
- void removeNode(int number, bool removeChildren = true);
- 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
|