DiagramDesigner/diagramCavas/source/util/subMovingSelector.cpp

74 lines
2.2 KiB
C++
Raw Normal View History

2024-12-13 18:11:34 +08:00
#include "util/subMovingSelector.h"
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsView>
#include "graphicsItem/graphicsBaseItem.h"
#include "graphicsItem/handleText.h"
2025-02-06 16:36:50 +08:00
SubMovingSelector::SubMovingSelector(FixedPortsModel* model,QObject *parent)
: BaseSelector(model,parent)
,m_pParentItem(nullptr)
{
m_type = ST_subMoving;
}
SubMovingSelector::~SubMovingSelector()
{
}
2025-06-20 18:09:41 +08:00
void SubMovingSelector::mousePressEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode)
{
ms_ptMouseLast = event->scenePos();
QList<QGraphicsItem *> items = scene->selectedItems();
}
2025-06-20 18:09:41 +08:00
void SubMovingSelector::mouseMoveEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode)
{
ms_ptMouseLast = event->scenePos();
if(m_pParentItem == nullptr)
{
QList<QGraphicsItem *> items = scene->items(ms_ptMouseLast);
if (items.count() == 1)
{
ItemControlHandle* pHandle = qgraphicsitem_cast<ItemControlHandle*>(items.first());
if(pHandle)
{
GraphicsProjectModelItem* item = dynamic_cast<GraphicsProjectModelItem*>(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<HandleText*>(m_pParentItem->getHandlePtr(ms_nDragHandle));
if(pt)
{
pt->setPos(m_pParentItem->mapFromScene(ms_ptMouseLast));
}
}
}
}
}
2025-06-20 18:09:41 +08:00
void SubMovingSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, DesignerScene* scene,DiagramMode sceneMode)
{
m_pParentItem = nullptr;
ms_nDragHandle = H_none;
setCursor(scene, Qt::ArrowCursor);
scene->callParentEvent(event);
emit setWorkingSelector(ST_base);
}