#include "util/linkMovingSelector.h" #include #include #include "graphicsItem/electricConnectLineItem.h" LinkMovingSelector::LinkMovingSelector(FixedPortsModel* model,QObject *parent) : BaseSelector(model,parent) ,m_pMovingLine(nullptr) { m_type = ST_linkMoving; } LinkMovingSelector::~LinkMovingSelector() { } void LinkMovingSelector::mousePressEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { ms_ptMouseLast = event->scenePos(); } void LinkMovingSelector::mouseMoveEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { ms_ptMouseLast = event->scenePos(); if (m_pMovingLine == nullptr) { QList items = scene->selectedItems(); if (items.count() == 1) { ElectricConnectLineItem* item = qgraphicsitem_cast(items.first()); if (item) { m_pMovingLine = item; m_pMovingLine->startDrag(event->scenePos()); qDebug() << "Started drag on line at:" << event->scenePos(); } } } else { m_pMovingLine->updateDrag(event->scenePos()); } } void LinkMovingSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { if(m_pMovingLine) { m_pMovingLine->endDrag(); } m_pMovingLine = nullptr; ms_nDragHandle = H_none; setCursor(scene, Qt::ArrowCursor); scene->callParentEvent(event); emit setWorkingSelector(ST_base); }