#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(); //QList items = scene->selectedItems(); } 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; item->setLastPoint(ms_ptMouseLast); } } } else { if(m_pMovingLine) m_pMovingLine->moveLine(ms_ptMouseLast); } } void LinkMovingSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { if(m_pMovingLine) { m_pMovingLine->resetCurLine(); qDebug()<<"reset"; } m_pMovingLine = nullptr; ms_nDragHandle = H_none; setCursor(scene, Qt::ArrowCursor); scene->callParentEvent(event); emit setWorkingSelector(ST_base); }