CMind.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "CMind.h"
  2. CMind::CMind(QObject *parent) : QObject(parent) { }
  3. QList<CNodeData> CMind::nodeList() const
  4. {
  5. return m_nodeList;
  6. }
  7. void CMind::setNodeList(QList<CNodeData> list)
  8. {
  9. m_nodeList = list;
  10. }
  11. bool CMind::containsNode(CNodeData node) const
  12. {
  13. if (node.id >= 0) {
  14. return containsNodeWithId(node.id);
  15. }
  16. return containsNodeWithNumber(node.number);
  17. }
  18. bool CMind::containsNodeWithId(int id) const
  19. {
  20. for (auto n : m_nodeList) {
  21. if (n.id == id) {
  22. return true;
  23. }
  24. }
  25. return false;
  26. }
  27. bool CMind::containsNodeWithNumber(int num) const
  28. {
  29. for (auto n : m_nodeList) {
  30. if (n.number == num) {
  31. return true;
  32. }
  33. }
  34. return false;
  35. }
  36. void CMind::addNode(CNodeData node)
  37. {
  38. m_nodeList.append(node);
  39. }
  40. void CMind::removeNode(CNodeData node, bool removeChildren)
  41. {
  42. removeNodeByNumber(node.number, removeChildren);
  43. }
  44. void CMind::removeNodeById(int id, bool removeChildren)
  45. {
  46. for (auto n : m_nodeList) {
  47. if (n.id == id) {
  48. removeNodeByNumber(n.number, removeChildren);
  49. }
  50. }
  51. }
  52. void CMind::removeNodeByNumber(int number, bool removeChildren)
  53. {
  54. for (int i = 0; i < m_nodeList.count(); i++) {
  55. CNodeData n = m_nodeList[i];
  56. if (n.number == number || (removeChildren && n.pNumber == number)) {
  57. m_nodeList.removeAt(i);
  58. }
  59. }
  60. }