MCPcopy Create free account
hub / github.com/IENT/YUView / wheelEvent

Method wheelEvent

YUViewLib/src/ui/views/MoveAndZoomableView.cpp:238–260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238void MoveAndZoomableView::wheelEvent(QWheelEvent *event)
239{
240#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
241 auto p = event->position().toPoint();
242#else
243 auto p = event->pos();
244#endif
245
246 DEBUG_VIEW("MoveAndZoomableView::wheelEvent delta " << event->angleDelta().y() << " pos " << p);
247
248 auto deltaAbs = std::abs(event->angleDelta().y());
249 auto deltaPositive = event->angleDelta().y() > 0;
250 auto noAction = (this->viewAction == ViewAction::NONE);
251 if (noAction && deltaAbs > 0)
252 {
253 auto deltaScaled = (double(deltaAbs) / 120);
254 auto deltaFactor = (deltaPositive) ? 1.0 + deltaScaled : 1.0 - deltaScaled / 2;
255 auto newZoomFactor = this->zoomFactor * deltaFactor;
256 this->zoom(ZoomMode::TO_VALUE, p, newZoomFactor);
257 }
258
259 event->accept();
260}
261
262void MoveAndZoomableView::keyPressEvent(QKeyEvent *event)
263{

Callers

nothing calls this directly

Calls 2

zoomMethod · 0.95
posMethod · 0.80

Tested by

no test coverage detected