[QgsMapToolIdentifyFeature] allow initializing without any layer

This commit is contained in:
Denis Rouzaud 2014-09-16 09:33:51 +02:00
parent 5483ee8064
commit fb30b84cfb
4 changed files with 23 additions and 7 deletions

View File

@ -5,7 +5,15 @@ class QgsMapToolIdentifyFeature : QgsMapToolIdentify
%End
public:
QgsMapToolIdentifyFeature( QgsVectorLayer* vl, QgsMapCanvas* canvas );
/**
* @brief QgsMapToolIdentifyFeature is a map tool to identify a feature on a chosen layer
* @param canvas the map canvas
* @param vl the vector layer. The map tool can be initialized without any layer and can be set afterward.
*/
QgsMapToolIdentifyFeature( QgsMapCanvas* canvas, QgsVectorLayer* vl = 0 );
//! change the layer used by the map tool to identify
void setLayer( QgsVectorLayer* vl );
void canvasReleaseEvent( QMouseEvent* e );

View File

@ -516,7 +516,7 @@ void QgsRelationReferenceWidget::mapIdentification()
if ( !mCanvas )
return;
mMapTool = new QgsMapToolIdentifyFeature( mReferencedLayer, mCanvas );
mMapTool = new QgsMapToolIdentifyFeature( mCanvas, mReferencedLayer );
mCanvas->setMapTool( mMapTool );
mWindowWidget = window();
mWindowWidget->hide();

View File

@ -18,10 +18,10 @@
#include "qgsmaptoolidentifyfeature.h"
#include "qgsmapcanvas.h"
QgsMapToolIdentifyFeature::QgsMapToolIdentifyFeature( QgsVectorLayer* vl, QgsMapCanvas* canvas )
QgsMapToolIdentifyFeature::QgsMapToolIdentifyFeature( QgsMapCanvas* canvas, QgsVectorLayer* vl )
: QgsMapToolIdentify( canvas )
, mLayer( vl )
, mCanvas( canvas )
, mLayer( vl )
{
}

View File

@ -19,7 +19,7 @@
#include "qgsmaptoolidentify.h"
/**
* @brief The QgsMapToolIdentifyFeature class is a map tool to be used to identify a feature on a chosen layer.
* @brief The QgsMapToolIdentifyFeature class is a map tool to identify a feature on a chosen layer.
* Once the map tool is enable, user can click on the map canvas to identify a feature.
* A signal will then be emitted.
*/
@ -28,7 +28,15 @@ class GUI_EXPORT QgsMapToolIdentifyFeature : public QgsMapToolIdentify
Q_OBJECT
public:
QgsMapToolIdentifyFeature( QgsVectorLayer* vl, QgsMapCanvas* canvas );
/**
* @brief QgsMapToolIdentifyFeature is a map tool to identify a feature on a chosen layer
* @param canvas the map canvas
* @param vl the vector layer. The map tool can be initialized without any layer and can be set afterward.
*/
QgsMapToolIdentifyFeature( QgsMapCanvas* canvas, QgsVectorLayer* vl = 0 );
//! change the layer used by the map tool to identify
void setLayer( QgsVectorLayer* vl ){ mLayer = vl; }
virtual void canvasReleaseEvent( QMouseEvent* e );
@ -40,8 +48,8 @@ class GUI_EXPORT QgsMapToolIdentifyFeature : public QgsMapToolIdentify
virtual void keyPressEvent( QKeyEvent* e );
private:
QgsVectorLayer* mLayer;
QgsMapCanvas* mCanvas;
QgsVectorLayer* mLayer;
};
#endif // QGSMAPTOOLIDENTIFYFEATURE_H