@@ -33,8 +33,8 @@ email : jpalmer at linz dot govt dot nz
33
33
QgsVectorLayer* QgsMapToolSelectUtils::getCurrentVectorLayer ( QgsMapCanvas* canvas )
34
34
{
35
35
QgsVectorLayer* vlayer = NULL ;
36
- if ( !canvas->currentLayer ()
37
- || ( vlayer = qobject_cast<QgsVectorLayer *>( canvas->currentLayer () ) ) == NULL )
36
+ if ( !canvas->currentLayer ()
37
+ || ( vlayer = qobject_cast<QgsVectorLayer *>( canvas->currentLayer () ) ) == NULL )
38
38
{
39
39
QMessageBox::warning ( canvas, QObject::tr ( " No active vector layer" ),
40
40
QObject::tr ( " To select features, you must choose a "
@@ -61,7 +61,7 @@ void QgsMapToolSelectUtils::expandSelectRectangle( QRect& selectRect,
61
61
QPoint point )
62
62
{
63
63
int boxSize = 0 ;
64
- if ( vlayer->geometryType () != QGis::Polygon )
64
+ if ( vlayer->geometryType () != QGis::Polygon )
65
65
{
66
66
// if point or line use an artificial bounding box of 10x10 pixels
67
67
// to aid the user to click on a feature accurately
@@ -85,12 +85,12 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
85
85
bool substractSelection,
86
86
bool singleSelect )
87
87
{
88
- if ( selectGeometry->type () != QGis::Polygon )
88
+ if ( selectGeometry->type () != QGis::Polygon )
89
89
{
90
90
return ;
91
91
}
92
92
QgsVectorLayer* vlayer = QgsMapToolSelectUtils::getCurrentVectorLayer ( canvas );
93
- if ( vlayer == NULL )
93
+ if ( vlayer == NULL )
94
94
{
95
95
return ;
96
96
}
@@ -101,14 +101,14 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
101
101
// and then click somewhere off the globe, an exception will be thrown.
102
102
QgsGeometry selectGeomTrans ( *selectGeometry );
103
103
104
- if ( canvas->mapRenderer ()->hasCrsTransformEnabled () )
104
+ if ( canvas->mapRenderer ()->hasCrsTransformEnabled () )
105
105
{
106
106
try
107
107
{
108
108
QgsCoordinateTransform ct ( canvas->mapRenderer ()->destinationSrs (), vlayer->crs () );
109
109
selectGeomTrans.transform ( ct );
110
110
}
111
- catch ( QgsCsException &cse )
111
+ catch ( QgsCsException &cse )
112
112
{
113
113
Q_UNUSED ( cse );
114
114
// catch exception for 'invalid' point and leave existing selection unchanged
@@ -134,18 +134,18 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
134
134
int closestFeatureId = 0 ;
135
135
bool foundSingleFeature = false ;
136
136
double closestFeatureDist = std::numeric_limits<double >::max ();
137
- while ( vlayer->nextFeature ( f ) )
137
+ while ( vlayer->nextFeature ( f ) )
138
138
{
139
139
QgsGeometry* g = f.geometry ();
140
- if ( doContains && !selectGeomTrans.contains ( g ) )
140
+ if ( doContains && !selectGeomTrans.contains ( g ) )
141
141
{
142
142
continue ;
143
143
}
144
- if ( singleSelect )
144
+ if ( singleSelect )
145
145
{
146
146
foundSingleFeature = true ;
147
147
double distance = g->distance ( selectGeomTrans );
148
- if ( distance <= closestFeatureDist )
148
+ if ( distance <= closestFeatureDist )
149
149
{
150
150
closestFeatureDist = distance;
151
151
closestFeatureId = f.id ();
@@ -156,32 +156,32 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
156
156
newSelectedFeatures.insert ( f.id () );
157
157
}
158
158
}
159
- if ( singleSelect && foundSingleFeature )
159
+ if ( singleSelect && foundSingleFeature )
160
160
{
161
161
newSelectedFeatures.insert ( closestFeatureId );
162
162
}
163
163
164
164
QgsDebugMsg ( " Number of selected features: " + QString::number ( newSelectedFeatures.size () ) );
165
165
166
166
QgsFeatureIds layerSelectedFeatures;
167
- if ( addSelection )
167
+ if ( addSelection )
168
168
{
169
169
layerSelectedFeatures = vlayer->selectedFeaturesIds ();
170
170
QgsFeatureIds::const_iterator i = newSelectedFeatures.constEnd ();
171
- while ( i != newSelectedFeatures.constBegin () )
171
+ while ( i != newSelectedFeatures.constBegin () )
172
172
{
173
173
--i;
174
174
layerSelectedFeatures.insert ( *i );
175
175
}
176
176
}
177
- else if ( substractSelection )
177
+ else if ( substractSelection )
178
178
{
179
179
layerSelectedFeatures = vlayer->selectedFeaturesIds ();
180
180
QgsFeatureIds::const_iterator i = newSelectedFeatures.constEnd ();
181
- while ( i != newSelectedFeatures.constBegin () )
181
+ while ( i != newSelectedFeatures.constBegin () )
182
182
{
183
183
--i;
184
- if ( layerSelectedFeatures.contains ( *i ) )
184
+ if ( layerSelectedFeatures.contains ( *i ) )
185
185
{
186
186
layerSelectedFeatures.remove ( *i );
187
187
}
@@ -198,7 +198,7 @@ void QgsMapToolSelectUtils::setSelectFeatures( QgsMapCanvas* canvas,
198
198
199
199
void QgsMapToolSelectUtils::setSelectFeatures ( QgsMapCanvas* canvas, QgsGeometry* selectGeometry, QMouseEvent * e )
200
200
{
201
- bool doContains = e->modifiers () & Qt::AltModifier ? false : true ;
201
+ bool doContains = e->modifiers () & Qt::AltModifier ? true : false ;
202
202
bool addSelection = e->modifiers () & Qt::ControlModifier ? true : false ;
203
203
bool substractSelection = e->modifiers () & Qt::ShiftModifier ? true : false ;
204
204
setSelectFeatures ( canvas, selectGeometry, doContains, addSelection, substractSelection );
0 commit comments