QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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
19#include <QObject>
20#include <QPen>
21
23#include "qgsmapcanvasitem.h"
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:
66
71
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
112 void setCrs( const QgsCoordinateReferenceSystem &crs );
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
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:93
A class to represent a 2D point.
Definition: qgspointxy.h:60
Shows a grid on the map canvas given a spatial resolution.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:191
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_END
Definition: qgis_sip.h:208
const QgsCoordinateReferenceSystem & crs
int precision