void KisCanvasController::zoomRelativeToPoint(const QPoint &widgetPoint, qreal zoomLevel) { const QPoint mousePos(m_d->coordinatesConverter->widgetToFlake(widgetPoint).toPoint()); QRectF oldWidgetRect = m_d->coordinatesConverter->widgetRectInFlakePixels(); QPointF oldCenter = oldWidgetRect.center(); const QPointF newCenter = mousePos - (1.0 / zoomLevel) * (mousePos - oldCenter); zoomBy(newCenter.toPoint(), zoomLevel); }
void ModelShow::mouseMoveEvent(QMouseEvent *event) { int dx=event->x()-lastPos.x(); int dy=event->y()-lastPos.y(); if(event->buttons() & Qt::LeftButton){ rotateBy(-8*dy,8*dx,0); } else if(event->buttons() & Qt::RightButton){ zoomBy(-0.01*dx); } else if(event->buttons() & Qt::MiddleButton){ translateBy(0.01*dx,0.01*dy,0); } lastPos=event->pos(); }
/*! * \brief IPProcessGrid::zoomOut */ void IPProcessGrid::zoomOut() { zoomBy(-0.1f); }
/*! * \brief IPProcessGrid::zoomIn */ void IPProcessGrid::zoomIn() { zoomBy(0.1f); }