66 lines
1.3 KiB
C++
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);
|
|
}
|
|
}
|
|
}
|