@@ -424,19 +424,35 @@ void QgsAttributeTableDialog::doSearch( QString searchString )
424
424
}
425
425
426
426
QApplication::setOverrideCursor ( Qt::WaitCursor );
427
-
428
427
mSelectedFeatures .clear ();
429
- mLayer ->select ( mLayer ->pendingAllAttributesList (), QgsRectangle (), false );
428
+
429
+ if ( cbxSearchSelectedOnly->isChecked () )
430
+ {
431
+ QgsFeatureList selectedFeatures = mLayer ->selectedFeatures ();
432
+ for (QgsFeatureList::ConstIterator it = selectedFeatures.begin (); it != selectedFeatures.end (); ++it)
433
+ {
434
+ if ( searchTree->checkAgainst ( mLayer ->pendingFields (), it->attributeMap () ) )
435
+ mSelectedFeatures << it->id ();
430
436
431
- QgsFeature f;
432
- while ( mLayer ->nextFeature ( f ) )
437
+ // check if there were errors during evaluating
438
+ if ( searchTree->hasError () )
439
+ break ;
440
+ }
441
+ }
442
+ else
433
443
{
434
- if ( searchTree->checkAgainst ( mLayer ->pendingFields (), f.attributeMap () ) )
435
- mSelectedFeatures << f.id ();
444
+ mLayer ->select ( mLayer ->pendingAllAttributesList (), QgsRectangle (), false );
445
+ QgsFeature f;
446
+
447
+ while ( mLayer ->nextFeature ( f ) )
448
+ {
449
+ if ( searchTree->checkAgainst ( mLayer ->pendingFields (), f.attributeMap () ) )
450
+ mSelectedFeatures << f.id ();
436
451
437
- // check if there were errors during evaluating
438
- if ( searchTree->hasError () )
439
- break ;
452
+ // check if there were errors during evaluating
453
+ if ( searchTree->hasError () )
454
+ break ;
455
+ }
440
456
}
441
457
442
458
QApplication::restoreOverrideCursor ();
0 commit comments