QGIS API Documentation  3.6.0-Noosa (5873452)
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 
47  protected:
48 
50  static QColor digitizingStrokeColor();
52  static int digitizingStrokeWidth();
54  static QColor digitizingFillColor();
55 
63  QgsRubberBand *createRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) SIP_FACTORY;
64 
65  QgsGeometryRubberBand *createGeometryRubberBand( QgsWkbTypes::GeometryType geometryType = QgsWkbTypes::LineGeometry, bool alternativeBand = false ) const SIP_FACTORY;
66 
68  QgsVectorLayer *currentVectorLayer();
69 
75  int addTopologicalPoints( const QVector<QgsPointXY> &geom );
76 
78  void notifyNotVectorLayer();
80  void notifyNotEditableLayer();
81 };
82 
83 #endif
Flags flags() const override
Returns the flags for the map tool.
Base class for map tools that edit vector geometry.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:73
Map tool is an edit tool, which can only be used when layer is editable.
Definition: qgsmaptool.h:93
A class for drawing transient features (e.g.
Definition: qgsrubberband.h:40
#define SIP_FACTORY
Definition: qgis_sip.h:69
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:138
Abstract base class for all map tools.
Definition: qgsmaptool.h:62
A rubberband class for QgsAbstractGeometry (considering curved geometries)
Represents a vector layer which manages a vector based data sets.