void QgsMapToolIdentifyAction::showAttributeTable( QgsMapLayer *layer, const QList<QgsFeature> &featureList ) { resultsDialog()->clear(); QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layer ); if ( !vl ) return; QString filter = QStringLiteral( "$id IN (" ); Q_FOREACH ( const QgsFeature &feature, featureList ) { filter.append( QStringLiteral( "%1," ).arg( feature.id() ) ); }
void QgsMapToolIdentifyAction::canvasReleaseEvent( QMouseEvent *e ) { if ( !mCanvas || mCanvas->isDrawing() ) { return; } resultsDialog()->clear(); connect( this, SIGNAL( identifyProgress( int, int ) ), QgisApp::instance(), SLOT( showProgress( int, int ) ) ); connect( this, SIGNAL( identifyMessage( QString ) ), QgisApp::instance(), SLOT( showStatusMessage( QString ) ) ); bool res = QgsMapToolIdentify::identify( e->x(), e->y() ); disconnect( this, SIGNAL( identifyProgress( int, int ) ), QgisApp::instance(), SLOT( showProgress( int, int ) ) ); disconnect( this, SIGNAL( identifyMessage( QString ) ), QgisApp::instance(), SLOT( showStatusMessage( QString ) ) ); QList<VectorResult>::const_iterator vresult; for ( vresult = results().mVectorResults.begin(); vresult != results().mVectorResults.end(); ++vresult ) resultsDialog()->addFeature( vresult->mLayer, vresult->mFeature, vresult->mDerivedAttributes ); QList<RasterResult>::const_iterator rresult; for ( rresult = results().mRasterResults.begin(); rresult != results().mRasterResults.end(); ++rresult ) resultsDialog()->addFeature( rresult->mLayer, rresult->mLabel, rresult->mAttributes, rresult->mDerivedAttributes ); if ( res ) { resultsDialog()->show(); } else { QSettings mySettings; bool myDockFlag = mySettings.value( "/qgis/dockIdentifyResults", false ).toBool(); if ( !myDockFlag ) { resultsDialog()->hide(); } else { resultsDialog()->clear(); } QgisApp::instance()->statusBar()->showMessage( tr( "No features at this position found." ) ); } }
void QgsMapToolIdentifyAction::deactivate() { resultsDialog()->deactivate(); QgsMapTool::deactivate(); }