Skip to content
Permalink
Browse files

do not display twice the same result

  • Loading branch information
3nids committed Sep 21, 2020
1 parent 2ae418d commit dd19040226bc687d28d34a9f758e6bd8fe2a97f8
Showing with 10 additions and 5 deletions.
  1. +10 −5 src/app/locator/qgsinbuiltlocatorfilters.cpp
@@ -354,7 +354,7 @@ QStringList QgsActiveLayerFeaturesLocatorFilter::prepare( const QString &string,

void QgsActiveLayerFeaturesLocatorFilter::fetchResults( const QString &string, const QgsLocatorContext &, QgsFeedback *feedback )
{
int found = 0;
QgsFeatureIds featuresFound;
QgsFeature f;
QString searchString = string;
fieldRestriction( searchString );
@@ -377,8 +377,9 @@ void QgsActiveLayerFeaturesLocatorFilter::fetchResults( const QString &string, c
result.score = static_cast< double >( searchString.length() ) / result.displayString.size();
emit resultFetched( result );

found++;
if ( found >= mMaxTotalResults )
featuresFound << f.id();

if ( featuresFound.count() >= mMaxTotalResults )
break;
}
}
@@ -389,6 +390,10 @@ void QgsActiveLayerFeaturesLocatorFilter::fetchResults( const QString &string, c
if ( feedback->isCanceled() )
return;

// do not display twice the same feature
if ( featuresFound.contains( f.id() ) )
continue;

QgsLocatorResult result;

mContext.setFeature( f );
@@ -418,8 +423,8 @@ void QgsActiveLayerFeaturesLocatorFilter::fetchResults( const QString &string, c
result.score = static_cast< double >( searchString.length() ) / result.displayString.size();
emit resultFetched( result );

found++;
if ( found >= mMaxTotalResults )
featuresFound << f.id();
if ( featuresFound.count() >= mMaxTotalResults )
break;
}
}

0 comments on commit dd19040

Please sign in to comment.
You can’t perform that action at this time.