CNodeItem.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef CNODEITEM_H
  2. #define CNODEITEM_H
  3. #include <QObject>
  4. #include "CNode.h"
  5. #include <QPoint>
  6. class CRectItem;
  7. class CTextItem;
  8. class CLineItem;
  9. class CNodeItem : public QObject
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit CNodeItem(const CNodeData data, CNodeItem *parent = nullptr);
  14. CNodeData data() const;
  15. void addSubNode(CNodeItem *n);
  16. void removeNode(int number);
  17. CRectItem *rectItem() const;
  18. CTextItem *textItem() const;
  19. QPointF pos() const;
  20. void setPos(const QPointF pos);
  21. qreal xMargin() const;
  22. void setXMargin(qreal x);
  23. qreal yMargin() const;
  24. void setYMargin(qreal y);
  25. qreal minWidth() const;
  26. void setMinWidth(qreal w);
  27. qreal minHeight() const;
  28. void setMinHeight(qreal h);
  29. void connectSignalsAndSlots();
  30. private:
  31. void updateItemsGeometry();
  32. signals:
  33. void sigAddSubItem(int pNumber);
  34. void sigRemoveItem(int number);
  35. public slots:
  36. void slotSelect();
  37. void slotSubNode();
  38. void slotRemove();
  39. private:
  40. CNodeData m_data;
  41. CRectItem *m_rectItem;
  42. CTextItem *m_textItem;
  43. CLineItem *m_lineItem;
  44. QPointF m_pos;
  45. qreal m_xMargin = 10;
  46. qreal m_yMargin = 5;
  47. qreal m_minWidth = 100;
  48. qreal m_minHeight = 30;
  49. };
  50. #endif // CNODEITEM_H