QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsmaptoolidentifyfeature.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaptoolidentifyfeature.cpp
3 --------------------------------------
4 Date : 22.5.2014
5 Copyright : (C) 2014 Denis Rouzaud
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
18
19#include "qgsmapcanvas.h"
20#include "qgsmapmouseevent.h"
21
22#include "moc_qgsmaptoolidentifyfeature.cpp"
23
26 , mLayer( vl )
27{
28 mToolName = tr( "Identify feature" );
29
30 // set cursor
31 mCursor = QCursor( Qt::CrossCursor );
32}
33
35{
36 const QgsPointXY point = mCanvas->getCoordinateTransform()->toMapCoordinates( e->x(), e->y() );
37
38 QList<IdentifyResult> results;
39 if ( !identifyVectorLayer( &results, mLayer, point ) )
40 return;
41
42 // TODO: display a menu when several features identified
43
44 emit featureIdentified( results[0].mFeature );
46 emit featureIdentified( results[0].mFeature.id() );
48}
49
51{
52 if ( e->key() == Qt::Key_Escape )
53 {
54 mCanvas->unsetMapTool( this );
55 }
56}
A mouse event which is the result of a user interaction with a QgsMapCanvas.
void featureIdentified(const QgsFeature &feature)
Emitted when a feature has been identified.
QgsMapToolIdentifyFeature(QgsMapCanvas *canvas, QgsVectorLayer *vl=nullptr)
QgsMapToolIdentifyFeature is a map tool to identify a feature on a chosen layer.
void keyPressEvent(QKeyEvent *e) override
Key event for overriding. Default implementation does nothing.
void canvasReleaseEvent(QgsMapMouseEvent *e) override
Mouse release event for overriding. Default implementation does nothing.
QgsMapToolIdentify(QgsMapCanvas *canvas)
constructor
bool identifyVectorLayer(QList< QgsMapToolIdentify::IdentifyResult > *results, QgsVectorLayer *layer, const QgsPointXY &point, const QgsIdentifyContext &identifyContext=QgsIdentifyContext())
Performs the identification against a given vector layer.
QgsMapCanvas * canvas() const
returns pointer to the tool's map canvas
QPointer< QgsMapCanvas > mCanvas
The pointer to the map canvas.
Definition qgsmaptool.h:360
QString mToolName
The translated name of the map tool.
Definition qgsmaptool.h:378
friend class QgsMapCanvas
Definition qgsmaptool.h:380
QCursor mCursor
The cursor used in the map tool.
Definition qgsmaptool.h:363
Represents a 2D point.
Definition qgspointxy.h:60
Represents a vector layer which manages a vector based dataset.
#define Q_NOWARN_DEPRECATED_POP
Definition qgis.h:7170
#define Q_NOWARN_DEPRECATED_PUSH
Definition qgis.h:7169