@@ -81,8 +81,7 @@ void QgsMapToolSelectUtils::expandSelectRectangle( QRect& selectRect,
81
81
void QgsMapToolSelectUtils::setSelectFeatures ( QgsMapCanvas* canvas,
82
82
QgsGeometry* selectGeometry,
83
83
bool doContains,
84
- bool addSelection,
85
- bool substractSelection,
84
+ bool doDifference,
86
85
bool singleSelect )
87
86
{
88
87
if ( selectGeometry->type () != QGis::Polygon )
@@ -124,8 +123,7 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
124
123
QgsDebugMsg ( " Selection layer: " + vlayer->name () );
125
124
QgsDebugMsg ( " Selection polygon: " + selectGeomTrans.exportToWkt () );
126
125
QgsDebugMsg ( " doContains: " + QString ( doContains ? " T" : " F" ) );
127
- QgsDebugMsg ( " addSelection: " + QString ( addSelection ? " T" : " F" ) );
128
- QgsDebugMsg ( " substractSelection: " + QString ( substractSelection ? " T" : " F" ) );
126
+ QgsDebugMsg ( " doDifference: " + QString ( doDifference ? " T" : " F" ) );
129
127
130
128
vlayer->select ( QgsAttributeList (), selectGeomTrans.boundingBox (), true , true );
131
129
@@ -161,20 +159,10 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
161
159
newSelectedFeatures.insert ( closestFeatureId );
162
160
}
163
161
164
- QgsDebugMsg ( " Number of selected features: " + QString::number ( newSelectedFeatures.size () ) );
162
+ QgsDebugMsg ( " Number of new selected features: " + QString::number ( newSelectedFeatures.size () ) );
165
163
166
164
QgsFeatureIds layerSelectedFeatures;
167
- if ( addSelection )
168
- {
169
- layerSelectedFeatures = vlayer->selectedFeaturesIds ();
170
- QgsFeatureIds::const_iterator i = newSelectedFeatures.constEnd ();
171
- while ( i != newSelectedFeatures.constBegin () )
172
- {
173
- --i;
174
- layerSelectedFeatures.insert ( *i );
175
- }
176
- }
177
- else if ( substractSelection )
165
+ if ( doDifference )
178
166
{
179
167
layerSelectedFeatures = vlayer->selectedFeaturesIds ();
180
168
QgsFeatureIds::const_iterator i = newSelectedFeatures.constEnd ();
@@ -185,6 +173,10 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
185
173
{
186
174
layerSelectedFeatures.remove ( *i );
187
175
}
176
+ else
177
+ {
178
+ layerSelectedFeatures.insert ( *i );
179
+ }
188
180
}
189
181
}
190
182
else
@@ -198,8 +190,7 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
198
190
199
191
void QgsMapToolSelectUtils::setSelectFeatures ( QgsMapCanvas* canvas, QgsGeometry* selectGeometry, QMouseEvent * e )
200
192
{
201
- bool doContains = e->modifiers () & Qt::AltModifier ? true : false ;
202
- bool addSelection = e->modifiers () & Qt::ControlModifier ? true : false ;
203
- bool substractSelection = e->modifiers () & Qt::ShiftModifier ? true : false ;
204
- setSelectFeatures ( canvas, selectGeometry, doContains, addSelection, substractSelection );
193
+ bool doContains = e->modifiers () & Qt::ShiftModifier ? true : false ;
194
+ bool doDifference = e->modifiers () & Qt::ControlModifier ? true : false ;
195
+ setSelectFeatures ( canvas, selectGeometry, doContains, doDifference );
205
196
}
0 commit comments