QGIS API Documentation  3.22.4-Białowieża (ce8e65e95e)
qgssnaptogridcanvasitem.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssnaptogridcanvasitem.h
3  ----------------------
4  begin : August 2018
5  copyright : (C) Matthias Kuhn
6  email : [email protected]
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 
19 #include <QObject>
20 #include <QPen>
21 
23 #include "qgsmapcanvasitem.h"
24 #include "qgscoordinatetransform.h"
25 
26 #ifdef SIP_RUN
27 % ModuleHeaderCode
28 // For ConvertToSubClassCode.
30 % End
31 #endif
32 
40 #ifndef SIP_RUN
41 class GUI_EXPORT QgsSnapToGridCanvasItem : public QObject, public QgsMapCanvasItem
42 {
43 #else
44 class GUI_EXPORT QgsSnapToGridCanvasItem : public QgsMapCanvasItem
45 {
46 #endif
47 
48  Q_OBJECT
49 
50 #ifdef SIP_RUN
52  if ( dynamic_cast<QgsSnapToGridCanvasItem *>( sipCpp ) )
53  sipType = sipType_QgsSnapToGridCanvasItem;
54  else
55  sipType = nullptr;
56  SIP_END
57 #endif
58 
59  public:
60 
65 
66  void paint( QPainter *painter ) override;
67 
73  QgsPointXY point() const;
74 
80  void setPoint( const QgsPointXY &point );
81 
86  double precision() const;
87 
92  void setPrecision( double precision );
93 
100 
106  void setCrs( const QgsCoordinateReferenceSystem &crs );
107 
111  bool enabled() const;
112 
116  void setEnabled( bool enabled );
117 
118  private slots:
119  void updateMapCanvasCrs();
120 
121  void updateZoomFactor();
122 
123  private:
124  QPen mGridPen = QPen( QColor( 127, 127, 127, 150 ) );
125  QPen mCurrentPointPen = QPen( QColor( 200, 200, 200, 150 ) );
126 
127  bool mEnabled = true;
128  bool mAvailableByZoomFactor = false;
129 
130  double mPrecision = 0.0;
131  QgsCoordinateTransform mTransform;
132  QgsPointXY mPoint;
133 };
134 
135 #endif // QGSSNAPTOGRIDCANVASITEM_H
This class represents a coordinate reference system (CRS).
Class for doing transforms between two map coordinate systems.
An abstract class for items that can be placed on the map canvas.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
A class to represent a 2D point.
Definition: qgspointxy.h:59
Shows a grid on the map canvas given a spatial resolution.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:177
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_END
Definition: qgis_sip.h:194
const QgsCoordinateReferenceSystem & crs
int precision