MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / wheelEvent

Method wheelEvent

src/gui/map/map_widget.cpp:1115–1149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1113}
1114
1115void MapWidget::wheelEvent(QWheelEvent* event)
1116{
1117 if (event->orientation() == Qt::Vertical)
1118 {
1119 if (view)
1120 {
1121 auto degrees = event->delta() / 8.0;
1122 auto num_steps = degrees / 15.0;
1123 auto cursor_pos_view = viewportToView(event->pos());
1124 bool preserve_cursor_pos = (event->modifiers() & Qt::ControlModifier) == 0;
1125 if (num_steps < 0 && !Settings::getInstance().getSettingCached(Settings::MapEditor_ZoomOutAwayFromCursor).toBool())
1126 preserve_cursor_pos = !preserve_cursor_pos;
1127 if (preserve_cursor_pos)
1128 {
1129 view->zoomSteps(num_steps, cursor_pos_view);
1130 }
1131 else
1132 {
1133 view->zoomSteps(num_steps);
1134 updateCursorposLabel(view->viewToMapF(cursor_pos_view));
1135 }
1136
1137 // Send a mouse move event to the current tool as zooming out can move the mouse position on the map
1138 if (tool)
1139 {
1140 QMouseEvent mouse_event{ QEvent::HoverMove, event->pos(), Qt::NoButton, QApplication::mouseButtons(), Qt::NoModifier };
1141 tool->mouseMoveEvent(&mouse_event, view->viewToMapF(cursor_pos_view), this);
1142 }
1143 }
1144
1145 event->accept();
1146 }
1147 else
1148 event->ignore();
1149}
1150
1151void MapWidget::leaveEvent(QEvent* event)
1152{

Callers

nothing calls this directly

Calls 6

posMethod · 0.80
getSettingCachedMethod · 0.80
zoomStepsMethod · 0.80
viewToMapFMethod · 0.80
mouseMoveEventMethod · 0.45
acceptMethod · 0.45

Tested by

no test coverage detected