CMind.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef CMIND_H
  2. #define CMIND_H
  3. #include <QObject>
  4. struct CNodeData
  5. {
  6. int id = -1; // 节点 id, 对应数据库节点表中的 id, 数据库自动生成
  7. int projectId = -1; // 项目 id, 对应数据库项目表中的 id, 为脑图所属项目, 数据库自动生成
  8. int evalType = 0; // 评估类型
  9. int number = -1; // 节点编号, 作用域为当前脑图, 0 为根节点
  10. int pNumber = -1; // 父节点编号
  11. QString name; // 名称
  12. QString remark; // 备注
  13. bool isValid() const;
  14. bool isCached() const;
  15. bool hasParent() const;
  16. };
  17. class CMind : public QObject
  18. {
  19. Q_OBJECT
  20. public:
  21. explicit CMind(int projId = -1, int evalType = 0, QObject *parent = nullptr);
  22. // 节点数据
  23. QList<CNodeData> nodeList() const;
  24. void setNodeList(QList<CNodeData> list);
  25. CNodeData nodeWithId(int id) const;
  26. CNodeData nodeWithNumber(int number) const;
  27. bool containsNode(CNodeData node) const;
  28. void addNode(CNodeData node);
  29. void removeNodeById(int id, bool removeChildren = true);
  30. void removeNodeByNumber(int number, bool removeChildren = true);
  31. private:
  32. QList<CNodeData> m_nodeList; // 节点列表
  33. QList<int> m_numberList; // 节点编号列表
  34. int m_projectId = -1;
  35. int m_evalType = 0;
  36. };
  37. #endif // CMIND_H