QGIS API Documentation 3.27.0-Master (f261cc1f8b)
qgsmaptooledit.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaptooledit.h - base class for editing map tools
3 ---------------------
4 begin : Juli 2007
5 copyright : (C) 2007 by Marco Hugentobler
6 email : marco dot hugentobler at karto dot baug dot ethz dot ch
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 QGSMAPTOOLEDIT_H
17#define QGSMAPTOOLEDIT_H
18
19#include "qgswkbtypes.h"
20#include "qgsmaptool.h"
21#include "qgis_gui.h"
22
23class QgsRubberBand;
25class QgsVectorLayer;
26class QKeyEvent;
27
32class GUI_EXPORT QgsMapToolEdit: public QgsMapTool
33{
34 Q_OBJECT
35
36 public:
38
39 Flags flags() const override { return QgsMapTool::EditTool; }
40
45 static double defaultZValue();
46
53 static double defaultMValue();
54
62 QgsGeometryRubberBand *createGeometryRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) const SIP_FACTORY;
63
64 private slots:
66 void connectLayers( const QList<QgsMapLayer *> &layers );
67
72 void cleanCanvas();
73
74 protected:
75
77 static QColor digitizingStrokeColor();
79 static int digitizingStrokeWidth();
81 static QColor digitizingFillColor();
82
90 QgsRubberBand *createRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) SIP_FACTORY;
91
93 QgsVectorLayer *currentVectorLayer();
94
97 {
98 Success = 0,
99 InvalidCanvas = 1,
100 InvalidLayer = 2,
101 };
102
108 Q_DECL_DEPRECATED TopologicalResult addTopologicalPoints( const QVector<QgsPointXY> &vertices ) SIP_DEPRECATED;
109
115 TopologicalResult addTopologicalPoints( const QVector<QgsPoint> &vertices );
116
118 void notifyNotVectorLayer();
120 void notifyNotEditableLayer();
121
122 private:
124 QList<QgsVectorLayer *> editableVectorLayers();
125};
126
127#endif
A rubberband class for QgsAbstractGeometry (considering curved geometries).
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:90
Base class for all map layer types.
Definition: qgsmaplayer.h:73
Base class for map tools that edit vector geometry.
Flags flags() const override
Returns the flags for the map tool.
TopologicalResult
Result of addTopologicalPoints.
Abstract base class for all map tools.
Definition: qgsmaptool.h:71
@ EditTool
Map tool is an edit tool, which can only be used when layer is editable.
Definition: qgsmaptool.h:113
A class for drawing transient features (e.g.
Definition: qgsrubberband.h:52
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_FACTORY
Definition: qgis_sip.h:76