QGIS API Documentation 3.99.0-Master (2fe06baccd8)
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
71 void paint( QPainter *painter ) override;
72
78 QgsPointXY point() const;
79
85 void setPoint( const QgsPointXY &point );
86
91 double precision() const;
92
97 void setPrecision( double precision );
98
105
112
116 bool enabled() const;
117
121 void setEnabled( bool enabled );
122
123 private slots:
124 void updateMapCanvasCrs();
125
126 void updateZoomFactor();
127
128 private:
129 QPen mGridPen = QPen( QColor( 127, 127, 127, 150 ) );
130 QPen mCurrentPointPen = QPen( QColor( 200, 200, 200, 150 ) );
131
132 bool mEnabled = true;
133 bool mAvailableByZoomFactor = false;
134
135 double mPrecision = 0.0;
136 QgsCoordinateTransform mTransform;
137 QgsPointXY mPoint;
138};
139
140#endif // QGSSNAPTOGRIDCANVASITEM_H
Represents a coordinate reference system (CRS).
Handles coordinate transforms between two coordinate systems.
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