#include "CMind.h" bool CNodeData::isValid() const { return projectId >= 0 && evalType > 0 && number >= 0; } bool CNodeData::isCached() const { return id >= 0; } bool CNodeData::hasParent() const { return pNumber >= 0; } CMind::CMind(int projId, int evalType, QObject *parent) : QObject(parent), m_projectId(projId), m_evalType(evalType) { } QList CMind::nodeList() const { return m_nodeList; } void CMind::setNodeList(QList list) { m_nodeList.clear(); m_numberList.clear(); for (CNodeData n : list) { addNode(n); } } bool CMind::isNodeValid(CNodeData n) const { bool v = n.isValid() && n.projectId == m_projectId && n.evalType == m_evalType; return v; } CNodeData CMind::node(int number) const { int i = m_numberList.indexOf(number); return m_nodeList[i]; } bool CMind::containsNode(CNodeData n) const { return isNodeValid(n) && node(n.number).isValid(); } void CMind::addNode(CNodeData n) { if (isNodeValid(n) == false) { return; } if (m_numberList.contains(n.number)) { return; } m_nodeList.append(n); m_numberList.append(n.number); } void CMind::removeNode(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); m_numberList.removeAt(i); } } }