#include "util/movingSelector.h" #include "graphicsItem/itemPort.h" #include #include #include #include "baseProperty.h" MovingSelector::MovingSelector(FixedPortsModel* model,QObject *parent) : BaseSelector(model,parent) { m_type = ST_moving; } MovingSelector::~MovingSelector() { } void MovingSelector::mousePressEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { ms_ptMouseLast = event->scenePos(); QList items = scene->selectedItems(); //updateConnectLine(items); updateConnectLineByTopology(items); } void MovingSelector::mouseMoveEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { ms_ptMouseLast = event->scenePos(); QList items = scene->selectedItems(); for(int n = 0; n < items.size(); n++) { GraphicsBaseItem* item = qgraphicsitem_cast(items.at(n)); if(item){ if(item->getMoveable()){ item->moveOperationCopy(ms_ptMouseLast - ms_ptMouseDown); } } } } void MovingSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode) { QList lst; //发送已选中的元件 QList items = scene->selectedItems(); for(int n = 0; n < items.size(); n++) { AbstractShape* item = qgraphicsitem_cast(items.at(n)); if(item) item->removeOperationCopy(); GraphicsProjectModelItem* p = dynamic_cast(items.at(n)); if(p){ auto pPro = p->getProperty(); monitorRelationItem info; if(pPro){ info.item.nCategory = 0; info.item.nEquipType = pPro->type(); info.item.sName = pPro->name(); info.item.uid = pPro->uuid(); lst.append(info); } } else{ GraphicsNonStandardItem* bay = dynamic_cast(items.at(n)); if(bay){ monitorRelationItem info; auto pBayPro = bay->getProperty(); if(pBayPro){ info.item.nCategory = 1; info.item.nEquipType = 0; info.item.sName = pBayPro->name(); info.item.uid = pBayPro->uuid(); lst.append(info); } } } } emit _model->itemSelected(lst); updateConnectLineByTopology(items); setCursor(scene, Qt::ArrowCursor); scene->callParentEvent(event); emit setWorkingSelector(ST_base); }