void QgsMapToolFeatureAction::canvasReleaseEvent( QMouseEvent *e ) { QgsMapLayer *layer = mCanvas->currentLayer(); if ( !layer || layer->type() != QgsMapLayer::VectorLayer ) { emit messageEmitted( tr( "To run an action, you must choose an active vector layer." ), QgsMessageBar::INFO ); return; } if ( !mCanvas->layers().contains( layer ) ) { // do not run actions on hidden layers return; } QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer ); if ( vlayer->actions()->size() == 0 && QgsMapLayerActionRegistry::instance()->mapLayerActions( vlayer ).size() == 0 ) { emit messageEmitted( tr( "The active vector layer has no defined actions" ), QgsMessageBar::INFO ); return; } if ( !doAction( vlayer, e->x(), e->y() ) ) QgisApp::instance()->statusBar()->showMessage( tr( "No features at this position found." ) ); }
void QgsMapToolFeatureAction::canvasReleaseEvent( QMouseEvent *e ) { QgsMapLayer *layer = mCanvas->currentLayer(); if ( !layer || layer->type() != QgsMapLayer::VectorLayer ) { QMessageBox::warning( mCanvas, tr( "No active vector layer" ), tr( "To run an action, you must choose a vector layer by clicking on its name in the legend" ) ); return; } if ( !mCanvas->layers().contains( layer ) ) { // do not run actions on hidden layers return; } QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer ); if ( vlayer->actions()->size() == 0 && QgsMapLayerActionRegistry::instance()->mapLayerActions( vlayer ).size() == 0 ) { QMessageBox::warning( mCanvas, tr( "No actions available" ), tr( "The active vector layer has no defined actions" ) ); return; } if ( !doAction( vlayer, e->x(), e->y() ) ) QgisApp::instance()->statusBar()->showMessage( tr( "No features at this position found." ) ); }