| 1113 | } |
| 1114 | |
| 1115 | void 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 | |
| 1151 | void MapWidget::leaveEvent(QEvent* event) |
| 1152 | { |
nothing calls this directly
no test coverage detected