#ifndef CMIND_H #define CMIND_H #include 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; // 备注 bool isValid() 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 nodeList() const; void setNodeList(QList list); CNodeData nodeWithId(int id) const; CNodeData nodeWithNumber(int number) const; bool containsNode(CNodeData node) const; void addNode(CNodeData node); void removeNodeById(int id, bool removeChildren = true); void removeNodeByNumber(int number, bool removeChildren = true); private: QList m_nodeList; // 节点列表 QList m_numberList; // 节点编号列表 int m_projectId = -1; int m_evalType = 0; }; #endif // CMIND_H