QGIS API Documentation 3.99.0-Master (752b475928d)
Loading...
Searching...
No Matches
qgssnaptogridcanvasitem.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssnaptogridcanvasitem.h
3 ----------------------
4 begin : August 2018
5 copyright : (C) Matthias Kuhn
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSSNAPTOGRIDCANVASITEM_H
17#define QGSSNAPTOGRIDCANVASITEM_H
18
21#include "qgsmapcanvasitem.h"
22
23#include <QObject>
24#include <QPen>
25
26#ifdef SIP_RUN
27//%ModuleHeaderCode
28// For ConvertToSubClassCode.
30//%End
31#endif
32
40#ifndef SIP_RUN
41class GUI_EXPORT QgsSnapToGridCanvasItem : public QObject, public QgsMapCanvasItem
42{
43#else
44class GUI_EXPORT QgsSnapToGridCanvasItem : public QgsMapCanvasItem
45{
46#endif
47
48 Q_OBJECT
49
50#ifdef SIP_RUN
52 if ( dynamic_cast<QgsSnapToGridCanvasItem *>( sipCpp ) )
53 {
54 sipType = sipType_QgsSnapToGridCanvasItem;
55 // We need to tweak the pointer as sip believes it is single inheritance
56 // from QgsMapCanvasItem, but the raw address of QgsSnapToGridCanvasItem (sipCpp)
57 // is actually a QObject
58 *sipCppRet = dynamic_cast<QgsSnapToGridCanvasItem *>( sipCpp );
59 }
60 else
61 sipType = nullptr;
63#endif
64
65 public:
70
72 void paint( QPainter *painter ) override;
73
79 QgsPointXY point() const;
80
86 void setPoint( const QgsPointXY &point );
87
92 double precision() const;
93
98 void setPrecision( double precision );
99
106
113
117 bool enabled() const;
118
122 void setEnabled( bool enabled );
123
124 private slots:
125 void updateMapCanvasCrs();
126
127 void updateZoomFactor();
128
129 private:
130 QPen mGridPen = QPen( QColor( 127, 127, 127, 150 ) );
131 QPen mCurrentPointPen = QPen( QColor( 200, 200, 200, 150 ) );
132
133 bool mEnabled = true;
134 bool mAvailableByZoomFactor = false;
135
136 double mPrecision = 0.0;
137 QgsCoordinateTransform mTransform;
138 QgsPointXY mPoint;
139};
140
141#endif // QGSSNAPTOGRIDCANVASITEM_H
Represents a coordinate reference system (CRS).
Handles coordinate transforms between two coordinate systems.
virtual void paint(QPainter *painter)=0
function to be implemented by derived classes
QgsMapCanvasItem(QgsMapCanvas *mapCanvas)
protected constructor: cannot be constructed directly
Map canvas is a class for displaying all GIS data types on a canvas.
Represents a 2D point.
Definition qgspointxy.h:60
bool enabled() const
Enable this item.
double precision() const
The resolution of the grid in map units.
void setCrs(const QgsCoordinateReferenceSystem &crs)
The CRS in which the grid should be calculated.
void setPoint(const QgsPointXY &point)
A point that will be highlighted on the map canvas.
void setEnabled(bool enabled)
Enable this item.
QgsSnapToGridCanvasItem(QgsMapCanvas *mapCanvas)
Will automatically be added to the mapCanvas.
void paint(QPainter *painter) override
function to be implemented by derived classes
QgsCoordinateReferenceSystem crs() const
The CRS in which the grid should be calculated.
void setPrecision(double precision)
The resolution of the grid in map units.
QgsPointXY point() const
A point that will be highlighted on the map canvas.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition qgis_sip.h:199
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_END
Definition qgis_sip.h:216