|
@@ -3,12 +3,17 @@
|
|
|
#include "CRectItem.h"
|
|
|
#include "CTextItem.h"
|
|
|
|
|
|
+#include <QAction>
|
|
|
#include <QTextDocument>
|
|
|
|
|
|
-CNodeItem::CNodeItem(int number, QObject *parent) : QObject(parent), m_number(number)
|
|
|
+#include <QDebug>
|
|
|
+
|
|
|
+CNodeItem::CNodeItem(QObject *parent, int number, QPointF pos) : QObject(parent), m_number(number), m_pos(pos)
|
|
|
{
|
|
|
m_rectItem = new CRectItem();
|
|
|
m_textItem = new CTextItem(m_rectItem);
|
|
|
+ updateItemsGeometry();
|
|
|
+ connectSignalsAndSlots();
|
|
|
}
|
|
|
|
|
|
int CNodeItem::number() const
|
|
@@ -49,6 +54,36 @@ QPointF CNodeItem::pos() const
|
|
|
void CNodeItem::setPos(const QPointF pos)
|
|
|
{
|
|
|
m_pos = pos;
|
|
|
- m_rectItem->setRect(QRectF(pos.x(), pos.y(), 100, 30));
|
|
|
- m_textItem->setPos(pos + QPointF(10, 5));
|
|
|
+ updateItemsGeometry();
|
|
|
+}
|
|
|
+
|
|
|
+void CNodeItem::connectSignalsAndSlots()
|
|
|
+{
|
|
|
+ connect(m_rectItem->selectAction(), &QAction::triggered, this, &CNodeItem::slotSelect);
|
|
|
+ connect(m_rectItem->subNodeAction(), &QAction::triggered, this, &CNodeItem::slotSubNode);
|
|
|
+ connect(m_rectItem->removeAction(), &QAction::triggered, this, &CNodeItem::slotRemove);
|
|
|
+}
|
|
|
+
|
|
|
+void CNodeItem::updateItemsGeometry()
|
|
|
+{
|
|
|
+ m_rectItem->setRect(QRectF(m_pos.x(), m_pos.y(), 100, 30));
|
|
|
+ m_textItem->setPos(m_pos + QPointF(10, 5));
|
|
|
+}
|
|
|
+
|
|
|
+void CNodeItem::slotSelect()
|
|
|
+{
|
|
|
+ qDebug() << __FUNCTION__ << __LINE__ << endl;
|
|
|
+ m_rectItem->setHighlighted(!m_rectItem->highlighted());
|
|
|
+}
|
|
|
+
|
|
|
+void CNodeItem::slotSubNode()
|
|
|
+{
|
|
|
+ qDebug() << __FUNCTION__ << __LINE__ << endl;
|
|
|
+ emit sigAddSubItem(m_number);
|
|
|
+}
|
|
|
+
|
|
|
+void CNodeItem::slotRemove()
|
|
|
+{
|
|
|
+ qDebug() << __FUNCTION__ << __LINE__ << endl;
|
|
|
+ emit sigRemoveItem(m_number);
|
|
|
}
|