#include "CMind.h" CMind::CMind(QObject *parent) : QObject(parent) { } QList CMind::nodeList() const { return m_nodeList; } void CMind::setNodeList(QList list) { m_nodeList = list; } bool CMind::containsNode(CNodeData node) const { if (node.id >= 0) { return containsNodeWithId(node.id); } return containsNodeWithNumber(node.number); } bool CMind::containsNodeWithId(int id) const { for (auto n : m_nodeList) { if (n.id == id) { return true; } } return false; } bool CMind::containsNodeWithNumber(int num) const { for (auto n : m_nodeList) { if (n.number == num) { return true; } } return false; } void CMind::addNode(CNodeData node) { m_nodeList.append(node); } void CMind::removeNode(CNodeData node, bool removeChildren) { removeNodeByNumber(node.number, removeChildren); } void CMind::removeNodeById(int id, bool removeChildren) { for (auto n : m_nodeList) { if (n.id == id) { removeNodeByNumber(n.number, removeChildren); } } } void CMind::removeNodeByNumber(int number, bool removeChildren) { for (int i = 0; i < m_nodeList.count(); i++) { CNodeData n = m_nodeList[i]; if (n.number == number || (removeChildren && n.pNumber == number)) { m_nodeList.removeAt(i); } } }