void RNavigationAction::mousePressEvent(RMouseEvent& event) { if (event.button() == Qt::MidButton || ( event.button() == Qt::LeftButton && event.modifiers() == Qt::ControlModifier)) { panOrigin = event.getScreenPosition(); panning = true; event.getGraphicsView().startPan(); } }
void RNavigationAction::mouseMoveEvent(RMouseEvent& event) { if (panning && ( event.buttons() == Qt::MidButton || ( event.buttons() == Qt::LeftButton && event.modifiers() == Qt::ControlModifier ) )) { RVector panTarget = event.getScreenPosition(); RVector panDelta = panTarget - panOrigin; if (fabs(panDelta.x) > 1 || fabs(panDelta.y) > 1) { event.getGraphicsView().pan(panDelta); panOrigin = panTarget; } } }