QUndoCommand * Navigator::mouseReleaseEvent(QMouseEvent *e) { updatePressedButtons(e, true); m_lastMousePosition = QPoint(); m_currentAction = Nothing; e->accept(); return NULL; }
QUndoCommand* Navigator::mousePressEvent(QMouseEvent* e) { updatePressedButtons(e, false); m_lastMousePosition = e->pos(); e->accept(); // Figure out what type of navigation has been requested. if (e->buttons() & Qt::LeftButton && e->modifiers() == Qt::NoModifier) { m_currentAction = Rotation; } else if (e->buttons() & Qt::MidButton || (e->buttons() & Qt::LeftButton && e->modifiers() == Qt::ShiftModifier)) { m_currentAction = ZoomTilt; } else if (e->buttons() & Qt::RightButton || (e->buttons() & Qt::LeftButton && (e->modifiers() == Qt::ControlModifier || e->modifiers() == Qt::MetaModifier))) { m_currentAction = Translation; } return nullptr; }