1
1
/* **************************************************************************
2
- qgsselectedfeature .cpp - selected feature of vertextool
2
+ qgslockedfeature .cpp - locked feature of vertextool
3
3
---------------------
4
4
begin : April 2009
5
5
copyright : (C) 2009 by Richard Kostecky
13
13
* *
14
14
***************************************************************************/
15
15
16
- #include " vertextool/qgsselectedfeature .h"
16
+ #include " vertextool/qgslockedfeature .h"
17
17
#include " vertextool/qgsvertexentry.h"
18
18
19
19
#include " qgsfeatureiterator.h"
32
32
#include " qgsmapcanvas.h"
33
33
34
34
35
- QgsSelectedFeature::QgsSelectedFeature ( QgsFeatureId featureId,
36
- QgsVectorLayer *vlayer ,
37
- QgsMapCanvas *canvas )
35
+ QgsLockedFeature::QgsLockedFeature ( QgsFeatureId featureId,
36
+ QgsVectorLayer *layer ,
37
+ QgsMapCanvas *canvas )
38
38
: mFeatureId( featureId )
39
- , mChangingGeometry( false )
39
+ , mLayer( layer )
40
+ , mCanvas( canvas )
40
41
{
41
- setSelectedFeature ( featureId, vlayer, canvas );
42
+ // signal changing of current layer
43
+ connect ( QgisApp::instance ()->layerTreeView (), &QgsLayerTreeView::currentLayerChanged, this , &QgsLockedFeature::currentLayerChanged );
44
+
45
+ // feature was deleted
46
+ connect ( mLayer , &QgsVectorLayer::featureDeleted, this , &QgsLockedFeature::featureDeleted );
47
+
48
+ // rolling back
49
+ connect ( mLayer , &QgsVectorLayer::beforeRollBack, this , &QgsLockedFeature::beforeRollBack );
50
+
51
+ // projection or extents changed
52
+ connect ( canvas, &QgsMapCanvas::destinationCrsChanged, this , &QgsLockedFeature::updateVertexMarkersPosition );
53
+ connect ( canvas, &QgsMapCanvas::extentsChanged, this , &QgsLockedFeature::updateVertexMarkersPosition );
54
+
55
+ // geometry was changed
56
+ connect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsLockedFeature::geometryChanged );
57
+
58
+ replaceVertexMap ();
42
59
}
43
60
44
- QgsSelectedFeature ::~QgsSelectedFeature ()
61
+ QgsLockedFeature ::~QgsLockedFeature ()
45
62
{
46
63
deleteVertexMap ();
47
64
@@ -61,13 +78,13 @@ QgsSelectedFeature::~QgsSelectedFeature()
61
78
delete mGeometry ;
62
79
}
63
80
64
- void QgsSelectedFeature ::currentLayerChanged ( QgsMapLayer *layer )
81
+ void QgsLockedFeature ::currentLayerChanged ( QgsMapLayer *layer )
65
82
{
66
83
if ( layer == mLayer )
67
84
deleteLater ();
68
85
}
69
86
70
- void QgsSelectedFeature ::updateGeometry ( const QgsGeometry *geom )
87
+ void QgsLockedFeature ::updateGeometry ( const QgsGeometry *geom )
71
88
{
72
89
delete mGeometry ;
73
90
@@ -86,68 +103,40 @@ void QgsSelectedFeature::updateGeometry( const QgsGeometry *geom )
86
103
}
87
104
}
88
105
89
- void QgsSelectedFeature::setSelectedFeature ( QgsFeatureId featureId, QgsVectorLayer *layer, QgsMapCanvas *canvas )
90
- {
91
- mFeatureId = featureId;
92
- mLayer = layer;
93
- mCanvas = canvas;
94
-
95
- delete mGeometry ;
96
- mGeometry = nullptr ;
97
-
98
- // signal changing of current layer
99
- connect ( QgisApp::instance ()->layerTreeView (), &QgsLayerTreeView::currentLayerChanged, this , &QgsSelectedFeature::currentLayerChanged );
100
-
101
- // feature was deleted
102
- connect ( mLayer , &QgsVectorLayer::featureDeleted, this , &QgsSelectedFeature::featureDeleted );
103
-
104
- // rolling back
105
- connect ( mLayer , &QgsVectorLayer::beforeRollBack, this , &QgsSelectedFeature::beforeRollBack );
106
-
107
- // projection or extents changed
108
- connect ( canvas, &QgsMapCanvas::destinationCrsChanged, this , &QgsSelectedFeature::updateVertexMarkersPosition );
109
- connect ( canvas, &QgsMapCanvas::extentsChanged, this , &QgsSelectedFeature::updateVertexMarkersPosition );
110
-
111
- // geometry was changed
112
- connect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsSelectedFeature::geometryChanged );
113
-
114
- replaceVertexMap ();
115
- }
116
-
117
- void QgsSelectedFeature::beforeRollBack ()
106
+ void QgsLockedFeature::beforeRollBack ()
118
107
{
119
- disconnect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsSelectedFeature ::geometryChanged );
108
+ disconnect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsLockedFeature ::geometryChanged );
120
109
deleteVertexMap ();
121
110
}
122
111
123
- void QgsSelectedFeature ::beginGeometryChange ()
112
+ void QgsLockedFeature ::beginGeometryChange ()
124
113
{
125
114
Q_ASSERT ( !mChangingGeometry );
126
115
mChangingGeometry = true ;
127
116
128
- disconnect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsSelectedFeature ::geometryChanged );
117
+ disconnect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsLockedFeature ::geometryChanged );
129
118
}
130
119
131
- void QgsSelectedFeature ::endGeometryChange ()
120
+ void QgsLockedFeature ::endGeometryChange ()
132
121
{
133
122
Q_ASSERT ( mChangingGeometry );
134
123
mChangingGeometry = false ;
135
124
136
- connect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsSelectedFeature ::geometryChanged );
125
+ connect ( mLayer , &QgsVectorLayer::geometryChanged, this , &QgsLockedFeature ::geometryChanged );
137
126
}
138
127
139
- void QgsSelectedFeature ::canvasLayersChanged ()
128
+ void QgsLockedFeature ::canvasLayersChanged ()
140
129
{
141
130
currentLayerChanged ( mCanvas ->currentLayer () );
142
131
}
143
132
144
- void QgsSelectedFeature ::featureDeleted ( QgsFeatureId fid )
133
+ void QgsLockedFeature ::featureDeleted ( QgsFeatureId fid )
145
134
{
146
135
if ( fid == mFeatureId )
147
136
deleteLater ();
148
137
}
149
138
150
- void QgsSelectedFeature ::geometryChanged ( QgsFeatureId fid, const QgsGeometry &geom )
139
+ void QgsLockedFeature ::geometryChanged ( QgsFeatureId fid, const QgsGeometry &geom )
151
140
{
152
141
QgsDebugCall;
153
142
@@ -159,7 +148,7 @@ void QgsSelectedFeature::geometryChanged( QgsFeatureId fid, const QgsGeometry &g
159
148
replaceVertexMap ();
160
149
}
161
150
162
- void QgsSelectedFeature ::validateGeometry ( QgsGeometry *g )
151
+ void QgsLockedFeature ::validateGeometry ( QgsGeometry *g )
163
152
{
164
153
QgsSettings settings;
165
154
if ( settings.value ( QStringLiteral ( " qgis/digitizing/validate_geometries" ), 1 ).toInt () == 0 )
@@ -190,15 +179,15 @@ void QgsSelectedFeature::validateGeometry( QgsGeometry *g )
190
179
if ( settings.value ( QStringLiteral ( " qgis/digitizing/validate_geometries" ), 1 ).toInt () == 2 )
191
180
method = QgsGeometry::ValidatorGeos;
192
181
mValidator = new QgsGeometryValidator ( *g, nullptr , method );
193
- connect ( mValidator , &QgsGeometryValidator::errorFound, this , &QgsSelectedFeature ::addError );
194
- connect ( mValidator , &QThread::finished, this , &QgsSelectedFeature ::validationFinished );
182
+ connect ( mValidator , &QgsGeometryValidator::errorFound, this , &QgsLockedFeature ::addError );
183
+ connect ( mValidator , &QThread::finished, this , &QgsLockedFeature ::validationFinished );
195
184
mValidator ->start ();
196
185
197
186
QgsStatusBar *sb = QgisApp::instance ()->statusBarIface ();
198
187
sb->showMessage ( tr ( " Validation started." ) );
199
188
}
200
189
201
- void QgsSelectedFeature ::addError ( QgsGeometry::Error e )
190
+ void QgsLockedFeature ::addError ( QgsGeometry::Error e )
202
191
{
203
192
mGeomErrors << e;
204
193
if ( !mTip .isEmpty () )
@@ -223,13 +212,13 @@ void QgsSelectedFeature::addError( QgsGeometry::Error e )
223
212
sb->setToolTip ( mTip );
224
213
}
225
214
226
- void QgsSelectedFeature ::validationFinished ()
215
+ void QgsLockedFeature ::validationFinished ()
227
216
{
228
217
QgsStatusBar *sb = QgisApp::instance ()->statusBarIface ();
229
218
sb->showMessage ( tr ( " Validation finished (%n error(s) found)." , " number of geometry errors" , mGeomErrorMarkers .size () ) );
230
219
}
231
220
232
- void QgsSelectedFeature ::replaceVertexMap ()
221
+ void QgsLockedFeature ::replaceVertexMap ()
233
222
{
234
223
// delete old map
235
224
deleteVertexMap ();
@@ -243,7 +232,7 @@ void QgsSelectedFeature::replaceVertexMap()
243
232
emit vertexMapChanged ();
244
233
}
245
234
246
- void QgsSelectedFeature ::deleteVertexMap ()
235
+ void QgsLockedFeature ::deleteVertexMap ()
247
236
{
248
237
Q_FOREACH ( QgsVertexEntry *entry, mVertexMap )
249
238
{
@@ -253,18 +242,18 @@ void QgsSelectedFeature::deleteVertexMap()
253
242
mVertexMap .clear ();
254
243
}
255
244
256
- bool QgsSelectedFeature ::isSelected ( int vertexNr )
245
+ bool QgsLockedFeature ::isSelected ( int vertexNr )
257
246
{
258
247
return mVertexMap .at ( vertexNr )->isSelected ();
259
248
}
260
249
261
- QgsGeometry *QgsSelectedFeature ::geometry ()
250
+ QgsGeometry *QgsLockedFeature ::geometry ()
262
251
{
263
252
Q_ASSERT ( mGeometry );
264
253
return mGeometry ;
265
254
}
266
255
267
- void QgsSelectedFeature ::createVertexMap ()
256
+ void QgsLockedFeature ::createVertexMap ()
268
257
{
269
258
270
259
if ( !mGeometry )
@@ -292,7 +281,7 @@ void QgsSelectedFeature::createVertexMap()
292
281
}
293
282
}
294
283
295
- void QgsSelectedFeature ::selectVertex ( int vertexNr )
284
+ void QgsLockedFeature ::selectVertex ( int vertexNr )
296
285
{
297
286
if ( vertexNr < 0 || vertexNr >= mVertexMap .size () )
298
287
return ;
@@ -303,7 +292,7 @@ void QgsSelectedFeature::selectVertex( int vertexNr )
303
292
emit selectionChanged ();
304
293
}
305
294
306
- void QgsSelectedFeature ::deselectVertex ( int vertexNr )
295
+ void QgsLockedFeature ::deselectVertex ( int vertexNr )
307
296
{
308
297
if ( vertexNr < 0 || vertexNr >= mVertexMap .size () )
309
298
return ;
@@ -314,7 +303,7 @@ void QgsSelectedFeature::deselectVertex( int vertexNr )
314
303
emit selectionChanged ();
315
304
}
316
305
317
- void QgsSelectedFeature ::deselectAllVertices ()
306
+ void QgsLockedFeature ::deselectAllVertices ()
318
307
{
319
308
for ( int i = 0 ; i < mVertexMap .size (); i++ )
320
309
{
@@ -323,7 +312,7 @@ void QgsSelectedFeature::deselectAllVertices()
323
312
emit selectionChanged ();
324
313
}
325
314
326
- void QgsSelectedFeature ::invertVertexSelection ( int vertexNr )
315
+ void QgsLockedFeature ::invertVertexSelection ( int vertexNr )
327
316
{
328
317
if ( vertexNr < 0 || vertexNr >= mVertexMap .size () )
329
318
return ;
@@ -336,7 +325,7 @@ void QgsSelectedFeature::invertVertexSelection( int vertexNr )
336
325
emit selectionChanged ();
337
326
}
338
327
339
- void QgsSelectedFeature ::invertVertexSelection ( const QVector<int > &vertexIndices )
328
+ void QgsLockedFeature ::invertVertexSelection ( const QVector<int > &vertexIndices )
340
329
{
341
330
Q_FOREACH ( int index , vertexIndices )
342
331
{
@@ -349,25 +338,25 @@ void QgsSelectedFeature::invertVertexSelection( const QVector<int> &vertexIndice
349
338
emit selectionChanged ();
350
339
}
351
340
352
- void QgsSelectedFeature ::updateVertexMarkersPosition ()
341
+ void QgsLockedFeature ::updateVertexMarkersPosition ()
353
342
{
354
343
Q_FOREACH ( QgsVertexEntry *vertexEntry, mVertexMap )
355
344
{
356
345
vertexEntry->placeMarker ();
357
346
}
358
347
}
359
348
360
- QgsFeatureId QgsSelectedFeature ::featureId ()
349
+ QgsFeatureId QgsLockedFeature ::featureId ()
361
350
{
362
351
return mFeatureId ;
363
352
}
364
353
365
- QList<QgsVertexEntry *> &QgsSelectedFeature ::vertexMap ()
354
+ QList<QgsVertexEntry *> &QgsLockedFeature ::vertexMap ()
366
355
{
367
356
return mVertexMap ;
368
357
}
369
358
370
- QgsVectorLayer *QgsSelectedFeature ::layer ()
359
+ QgsVectorLayer *QgsLockedFeature ::layer ()
371
360
{
372
361
return mLayer ;
373
362
}
0 commit comments