QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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
QgsRubberBand
A class for drawing transient features (e.g. digitizing lines) on the map.
Definition: qgsrubberband.h:51
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsMapTool
Abstract base class for all map tools. Map tools are user interactive tools for manipulating the map ...
Definition: qgsmaptool.h:70
SIP_DEPRECATED
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
QgsMapToolEdit::flags
Flags flags() const override
Returns the flags for the map tool.
Definition: qgsmaptooledit.h:39
qgsmaptool.h
QgsGeometryRubberBand
A rubberband class for QgsAbstractGeometry (considering curved geometries).
Definition: qgsgeometryrubberband.h:48
QgsMapToolEdit::TopologicalResult
TopologicalResult
Result of addTopologicalPoints.
Definition: qgsmaptooledit.h:96
QgsWkbTypes::LineGeometry
@ LineGeometry
Definition: qgswkbtypes.h:143
QgsWkbTypes::GeometryType
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:140
QgsMapToolEdit
Base class for map tools that edit vector geometry.
Definition: qgsmaptooledit.h:32
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition: qgsvectorlayer.h:391
QgsMapLayer
Base class for all map layer types. This is the base class for all map layer types (vector,...
Definition: qgsmaplayer.h:72
QgsWkbTypes
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:41
QgsMapTool::EditTool
@ EditTool
Map tool is an edit tool, which can only be used when layer is editable.
Definition: qgsmaptool.h:113
qgswkbtypes.h