Files
HPPA/HPPA/MapToolPan.cpp
2026-03-12 16:51:13 +08:00

66 lines
1.3 KiB
C++

#include "stdafx.h"
#include "MapToolPan.h"
#include "ImageViewer.h"
#include <QMouseEvent>
#include <QGraphicsView>
MapToolPan::MapToolPan(QObject* parent)
: MapTool(parent)
{
setCursor(Qt::OpenHandCursor);
}
MapToolPan::~MapToolPan()
{
}
void MapToolPan::activate()
{
MapTool::activate();
if (canvas())
{
canvas()->setDragMode(QGraphicsView::NoDrag);
}
}
void MapToolPan::deactivate()
{
m_dragging = false;
MapTool::deactivate();
}
void MapToolPan::canvasMousePressEvent(QMouseEvent* e)
{
if (e->button() == Qt::LeftButton)
{
m_dragging = true;
m_lastPos = e->pos();
if (canvas())
{
canvas()->viewport()->setCursor(Qt::ClosedHandCursor);
}
}
}
void MapToolPan::canvasMouseMoveEvent(QMouseEvent* e)
{
if (m_dragging && canvas())
{
QPointF delta = canvas()->mapToScene(e->pos()) - canvas()->mapToScene(m_lastPos);
canvas()->translate(delta.x(), delta.y());
m_lastPos = e->pos();
}
}
void MapToolPan::canvasMouseReleaseEvent(QMouseEvent* e)
{
if (e->button() == Qt::LeftButton)
{
m_dragging = false;
if (canvas())
{
canvas()->viewport()->setCursor(Qt::OpenHandCursor);
}
}
}