void PhotoView::setZoomFactor( qreal factor ) { _zoomFactor = factor; if ( qFuzzyCompare( _zoomFactor, 1.0 ) ) setZoomMode( NoZoom ); else setZoomMode( UseZoomFactor ); }
void QgsMapToolZoom::canvasMoveEvent( QgsMapMouseEvent *e ) { if ( !( e->buttons() & Qt::LeftButton ) ) return; setZoomMode( e->modifiers().testFlag( Qt::AltModifier ) ^ mNativeZoomOut ); if ( !mDragging ) { mDragging = true; delete mRubberBand; mRubberBand = new QgsRubberBand( mCanvas, QgsWkbTypes::PolygonGeometry ); QColor color( Qt::blue ); color.setAlpha( 63 ); mRubberBand->setColor( color ); mZoomRect.setTopLeft( e->pos() ); } mZoomRect.setBottomRight( e->pos() ); if ( mRubberBand ) { mRubberBand->setToCanvasRectangle( mZoomRect ); mRubberBand->show(); } }
void QgsMapToolZoom::keyPressEvent( QKeyEvent *e ) { if ( e->key() == Qt::Key_Alt ) { setZoomMode( !mNativeZoomOut ); } }
int QPrintPreviewWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: paintRequested((*reinterpret_cast< QPrinter*(*)>(_a[1]))); break; case 1: previewChanged(); break; case 2: print(); break; case 3: zoomIn((*reinterpret_cast< qreal(*)>(_a[1]))); break; case 4: zoomIn(); break; case 5: zoomOut((*reinterpret_cast< qreal(*)>(_a[1]))); break; case 6: zoomOut(); break; case 7: setZoomFactor((*reinterpret_cast< qreal(*)>(_a[1]))); break; case 8: setOrientation((*reinterpret_cast< QPrinter::Orientation(*)>(_a[1]))); break; case 9: setViewMode((*reinterpret_cast< ViewMode(*)>(_a[1]))); break; case 10: setZoomMode((*reinterpret_cast< ZoomMode(*)>(_a[1]))); break; case 11: setCurrentPage((*reinterpret_cast< int(*)>(_a[1]))); break; case 12: fitToWidth(); break; case 13: fitInView(); break; case 14: setLandscapeOrientation(); break; case 15: setPortraitOrientation(); break; case 16: setSinglePageViewMode(); break; case 17: setFacingPagesViewMode(); break; case 18: setAllPagesViewMode(); break; case 19: updatePreview(); break; case 20: d_func()->_q_fit(); break; case 21: d_func()->_q_updateCurrentPage(); break; } _id -= 22; } return _id; }
void PlotZoomer::loadSettings(QSettings &settings) { settings.beginGroup("zoom"); int zoomMode = settings.value("mode", int(PlotZoomer::ZoomBoth)).toInt(); setZoomMode(PlotZoomer::ZoomMode(zoomMode)); int zoomIndex = settings.value("index", -1).toInt(); int stackSize = settings.beginReadArray("stack"); QStack<QRectF> stack; stack.resize(stackSize); for (int i = 0; i < stackSize; ++i) { settings.setArrayIndex(i); read(settings, stack[i]); } settings.endArray(); setZoomStack(stack, zoomIndex); if (stackSize <= 1) { zoomToFit(true); } settings.endGroup(); }
void QgsMapToolZoom::keyReleaseEvent( QKeyEvent *e ) { // key press events are not caught wile the mouse is pressed // this is detected in map canvas move event if ( e->key() == Qt::Key_Alt ) { setZoomMode( mNativeZoomOut ); } }
void PhotoView::setZoomMode() { QAction * action = qobject_cast<QAction *>( sender() ); if ( action ) { int zoomMode = action->data().toInt(); setZoomMode( static_cast<ZoomMode>( zoomMode ) ); } }
QgsMapToolZoom::QgsMapToolZoom( QgsMapCanvas *canvas, bool zoomOut ) : QgsMapTool( canvas ) , mZoomOut( zoomOut ) , mNativeZoomOut( zoomOut ) , mDragging( false ) , mZoomOutCursor( QgsApplication::getThemeCursor( QgsApplication::Cursor::ZoomOut ) ) , mZoomInCursor( QgsApplication::getThemeCursor( QgsApplication::Cursor::ZoomIn ) ) { mToolName = tr( "Zoom" ); setZoomMode( mNativeZoomOut, true ); }
void QgsMapToolZoom::canvasReleaseEvent( QgsMapMouseEvent *e ) { if ( e->button() != Qt::LeftButton ) return; setZoomMode( e->modifiers().testFlag( Qt::AltModifier ) ^ mNativeZoomOut ); // We are not really dragging in this case. This is sometimes caused by // a pen based computer reporting a press, move, and release, all the // one point. bool tooShort = ( mZoomRect.topLeft() - mZoomRect.bottomRight() ).manhattanLength() < mMinPixelZoom; if ( !mDragging || tooShort ) { mDragging = false; delete mRubberBand; mRubberBand = nullptr; // change to zoom in/out by the default multiple mCanvas->zoomWithCenter( e->x(), e->y(), !mZoomOut ); } else { mDragging = false; delete mRubberBand; mRubberBand = nullptr; // store the rectangle mZoomRect.setRight( e->pos().x() ); mZoomRect.setBottom( e->pos().y() ); //account for bottom right -> top left dragging mZoomRect = mZoomRect.normalized(); // set center and zoom const QSize &zoomRectSize = mZoomRect.size(); const QgsMapSettings &mapSettings = mCanvas->mapSettings(); const QSize &canvasSize = mapSettings.outputSize(); double sfx = static_cast<double>( zoomRectSize.width() ) / canvasSize.width(); double sfy = static_cast<double>( zoomRectSize.height() ) / canvasSize.height(); double sf = std::max( sfx, sfy ); const QgsMapToPixel *m2p = mCanvas->getCoordinateTransform(); QgsPointXY c = m2p->toMapCoordinates( mZoomRect.center() ); mCanvas->zoomByFactor( mZoomOut ? 1.0 / sf : sf, &c ); mCanvas->refresh(); } }
PhotoView::Actions::Actions( PhotoView * photoView ): _photoView( photoView ) { // // Zoom // noZoom = createAction( tr( "No Zoom (100% / &1:1)" ), Qt::Key_1, NoZoom ); CONNECT_ACTION( noZoom, photoView, setZoomMode() ); zoomIn = createAction( tr( "Zoom In (Enlarge)" ), Qt::Key_Plus ); CONNECT_ACTION( zoomIn, photoView, zoomIn() ); zoomOut = createAction( tr( "Zoom Out (Shrink)" ), Qt::Key_Minus ); CONNECT_ACTION( zoomOut, photoView, zoomOut() ); zoomFitImage = createAction( tr( "Zoom to &Fit Window" ), Qt::Key_F, ZoomFitImage ); addShortcut( zoomFitImage, Qt::Key_M ); CONNECT_ACTION( zoomFitImage, photoView, setZoomMode() ); zoomFitWidth = createAction( tr( "Zoom to Fit Window &Width" ), Qt::Key_W, ZoomFitWidth ); CONNECT_ACTION( zoomFitWidth, photoView, setZoomMode() ); zoomFitHeight = createAction( tr( "Zoom to Fit Window &Height" ), Qt::Key_H, ZoomFitHeight ); CONNECT_ACTION( zoomFitHeight, photoView, setZoomMode() ); zoomFitBest = createAction( tr( "&Best Zoom for Window Width or Height" ), Qt::Key_B, ZoomFitBest ); CONNECT_ACTION( zoomFitBest, photoView, setZoomMode() ); // // Navigation // loadNext = createAction( tr( "Load &Next Image" ), Qt::Key_Space, NavigateNext ); addShortcut( loadNext, Qt::Key_PageDown ); CONNECT_ACTION( loadNext, photoView, navigate() ); loadPrevious = createAction( tr( "Load &Previous Image" ), Qt::Key_Backspace, NavigatePrevious ); addShortcut( loadPrevious, Qt::Key_PageUp ); CONNECT_ACTION( loadPrevious, photoView, navigate() ); loadFirst = createAction( tr( "Load &First Image" ), Qt::Key_Home, NavigateFirst ); CONNECT_ACTION( loadFirst, photoView, navigate() ); loadLast = createAction( tr( "Load &Last Image" ), Qt::Key_End, NavigateLast ); CONNECT_ACTION( loadLast, photoView, navigate() ); // // Misc // forceReload = createAction( tr( "Force &Reload" ), Qt::Key_F5 ); CONNECT_ACTION( forceReload, photoView, forceReload() ); toggleFullscreen = createAction( tr( "Toggle F&ullscreen" ), Qt::Key_Return ); CONNECT_ACTION( toggleFullscreen, photoView, toggleFullscreen() ); quit = createAction( tr ( "&Quit" ), Qt::Key_Q ); addShortcut( quit, Qt::Key_Escape ); CONNECT_ACTION( quit, qApp, quit() ); }