#include "util/subMovingSelector.h" #include #include #include "graphicsItem/graphicsBaseItem.h" #include "graphicsItem/handleText.h" SubMovingSelector::SubMovingSelector(QObject *parent) : BaseSelector(parent) ,m_pParentItem(nullptr) { m_type = ST_subMoving; } SubMovingSelector::~SubMovingSelector() { } void SubMovingSelector::mousePressEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene) { ms_ptMouseLast = event->scenePos(); QList items = scene->selectedItems(); } void SubMovingSelector::mouseMoveEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene) { ms_ptMouseLast = event->scenePos(); if(m_pParentItem == nullptr) { QList items = scene->items(ms_ptMouseLast); if (items.count() == 1) { ItemControlHandle* pHandle = qgraphicsitem_cast(items.first()); if(pHandle) { GraphicsBaseItem* item = pHandle->getParentPtr(); if(item) { if(ms_nDragHandle >= H_textCaption && ms_nDragHandle < H_connect) //移动文本 { pHandle->setPos(item->mapFromScene(ms_ptMouseLast)); m_pParentItem = item; } } } } } else { if(m_pParentItem) { if(ms_nDragHandle >= H_textCaption && ms_nDragHandle < H_connect) //文本 { HandleText* pt = dynamic_cast(m_pParentItem->getHandlePtr(ms_nDragHandle)); if(pt) { pt->setPos(m_pParentItem->mapFromScene(ms_ptMouseLast)); } } } } } void SubMovingSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene) { m_pParentItem = nullptr; ms_nDragHandle = H_none; setCursor(scene, Qt::ArrowCursor); scene->callParentEvent(event); emit setWorkingSelector(ST_base); }