SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
maptoolzoom.h
Go to the documentation of this file.
1
11#ifndef MAPTOOLZOOM_H
12#define MAPTOOLZOOM_H
13
14#include "map/tools/maptool.h"
15
16#include <QPoint>
17#include <QRect>
18
28{
29 Q_OBJECT
30 Q_PROPERTY(double zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
31 Q_PROPERTY(bool zoomInMode READ zoomInMode WRITE setZoomInMode)
32
33public:
34
35 explicit OpenSWMMVisMapToolZoom(MapCanvas *canvas, QObject *parent = nullptr);
36
37 [[nodiscard]] QCursor cursor() const override;
38
42 [[nodiscard]] double zoomFactor() const;
43 void setZoomFactor(double factor);
44
48 [[nodiscard]] bool zoomInMode() const;
49 void setZoomInMode(bool zoomIn);
50
51 void activate() override;
52 void deactivate() override;
53
54 void mousePressEvent(QMouseEvent *event) override;
55 void mouseMoveEvent(QMouseEvent *event) override;
56 void mouseReleaseEvent(QMouseEvent *event) override;
57 void wheelEvent(QWheelEvent *event) override;
58
59 void paint(QPainter *painter,
60 const MapExtent &canvasExtent,
61 const SpatialReferenceSystem *canvasSRS) override;
62
63signals:
64 void zoomFactorChanged(double factor);
65
66private:
67 bool m_dragging = false;
68 bool m_zoomIn = true;
69 bool m_zoomInDefault = true;
70 QPoint m_startPixel;
71 QPoint m_currentPixel;
72 double m_zoomFactor = 2.0;
73};
74
75#endif // MAPTOOLZOOM_H
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:26
Abstract base class for interactive map tools used in the MapCanvas.
Definition maptool.h:43
MapCanvas * canvas() const
Returns the MapCanvas this tool is attached to.
Definition maptool.cpp:29
Tool that zooms the map canvas by rubber-band rectangle or mouse wheel.
Definition maptoolzoom.h:28
void zoomFactorChanged(double factor)
void setZoomInMode(bool zoomIn)
Definition maptoolzoom.cpp:38
QCursor cursor() const override
Returns the mouse cursor to display while this tool is active.
Definition maptoolzoom.cpp:20
double zoomFactor
Definition maptoolzoom.h:30
void mousePressEvent(QMouseEvent *event) override
Definition maptoolzoom.cpp:55
void deactivate() override
Called by the canvas when another tool replaces this one.
Definition maptoolzoom.cpp:49
void activate() override
Called by the canvas when this tool becomes the active tool.
Definition maptoolzoom.cpp:43
void setZoomFactor(double factor)
Definition maptoolzoom.cpp:27
void wheelEvent(QWheelEvent *event) override
Definition maptoolzoom.cpp:118
void mouseReleaseEvent(QMouseEvent *event) override
Definition maptoolzoom.cpp:78
void paint(QPainter *painter, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Called by the canvas in drawForeground() so the tool can draw transient overlay graphics (rubber-band...
Definition maptoolzoom.cpp:133
void mouseMoveEvent(QMouseEvent *event) override
Definition maptoolzoom.cpp:67
bool zoomInMode
Definition maptoolzoom.h:31
Represents a coordinate reference system backed by a GDAL OGRSpatialReference.
Definition spatialreferencesystem.h:28
Abstract base class for all interactive tools attached to a MapCanvas.
QVector< int > parent
union-find
Definition pslgminsize.cpp:176