single_select.patch
| src/app/qgsmaptoolselectutils.cpp (working copy) | ||
|---|---|---|
| 134 | 134 |
QgsFeatureIds newSelectedFeatures; |
| 135 | 135 |
QgsFeature f; |
| 136 | 136 |
int closestFeatureId = 0; |
| 137 |
bool foundSingleFeature = false; |
|
| 137 | 138 |
double closestFeatureDist = std::numeric_limits<double>::max(); |
| 138 | 139 |
while ( vlayer->nextFeature( f ) ) |
| 139 | 140 |
{
|
| ... | ... | |
| 144 | 145 |
} |
| 145 | 146 |
if ( singleSelect ) |
| 146 | 147 |
{
|
| 148 |
foundSingleFeature = true; |
|
| 147 | 149 |
double distance = g->distance( selectGeomTrans ); |
| 148 | 150 |
if ( distance <= closestFeatureDist ) |
| 149 | 151 |
{
|
| ... | ... | |
| 156 | 158 |
newSelectedFeatures.insert( f.id() ); |
| 157 | 159 |
} |
| 158 | 160 |
} |
| 159 |
if ( singleSelect && closestFeatureId > 0 )
|
|
| 161 |
if ( singleSelect && foundSingleFeature )
|
|
| 160 | 162 |
{
|
| 161 | 163 |
newSelectedFeatures.insert( closestFeatureId ); |
| 162 | 164 |
} |