QGIS API Documentation  3.27.0-Master (597e8eebd4)
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 
23 class QgsRubberBand;
25 class QgsVectorLayer;
26 class QKeyEvent;
27 
32 class GUI_EXPORT QgsMapToolEdit: public QgsMapTool
33 {
34  Q_OBJECT
35 
36  public:
37  QgsMapToolEdit( QgsMapCanvas *canvas );
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