QGIS API Documentation  3.23.0-Master (7c4a6de034)
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  double defaultZValue() const;
46 
53  double defaultMValue() const;
54 
55  private slots:
57  void connectLayers( const QList<QgsMapLayer *> &layers );
58 
63  void cleanCanvas();
64 
65  protected:
66 
68  static QColor digitizingStrokeColor();
70  static int digitizingStrokeWidth();
72  static QColor digitizingFillColor();
73 
81  QgsRubberBand *createRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) SIP_FACTORY;
82 
83  QgsGeometryRubberBand *createGeometryRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) const SIP_FACTORY;
84 
86  QgsVectorLayer *currentVectorLayer();
87 
90  {
91  Success = 0,
92  InvalidCanvas = 1,
93  InvalidLayer = 2,
94  };
95 
101  Q_DECL_DEPRECATED TopologicalResult addTopologicalPoints( const QVector<QgsPointXY> &vertices ) SIP_DEPRECATED;
102 
108  TopologicalResult addTopologicalPoints( const QVector<QgsPoint> &vertices );
109 
111  void notifyNotVectorLayer();
113  void notifyNotEditableLayer();
114 
115  private:
117  QList<QgsVectorLayer *> editableVectorLayers();
118 };
119 
120 #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 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