@@ -42,6 +42,7 @@ class TestQgsMapToolCircularString : public QObject
42
42
void testAddCircularStringRadius ();
43
43
void testAddCircularStringCurvePointWithDeletedVertex ();
44
44
void testAddCircularStringRadiusWithDeletedVertex ();
45
+ void testAddCircularStringAfterClassicDigitizing ();
45
46
46
47
private:
47
48
QgisApp *mQgisApp = nullptr ;
@@ -187,5 +188,41 @@ void TestQgsMapToolCircularString::testAddCircularStringRadiusWithDeletedVertex(
187
188
mLayer ->rollBack ();
188
189
QgsSettings ().setValue ( QStringLiteral ( " /qgis/digitizing/default_z_value" ), 0 );
189
190
}
191
+
192
+ void TestQgsMapToolCircularString::testAddCircularStringAfterClassicDigitizing ()
193
+ {
194
+ QgsSettings ().setValue ( QStringLiteral ( " /qgis/digitizing/default_z_value" ), 333 );
195
+ mLayer ->startEditing ();
196
+
197
+ TestQgsMapToolAdvancedDigitizingUtils utilsClassic ( mParentTool );
198
+
199
+ mCanvas ->setMapTool ( mParentTool );
200
+ utilsClassic.mouseClick ( 2 , 1 , Qt::LeftButton );
201
+ utilsClassic.mouseClick ( 2 , 0 , Qt::LeftButton );
202
+ utilsClassic.mouseClick ( 0 , 0 , Qt::LeftButton );
203
+
204
+ QgsMapToolCircularStringCurvePoint mapTool ( mParentTool , mCanvas );
205
+ mCanvas ->setMapTool ( &mapTool );
206
+
207
+ TestQgsMapToolAdvancedDigitizingUtils utilsCircular ( &mapTool );
208
+ utilsCircular.mouseClick ( 1 , 1 , Qt::LeftButton );
209
+ utilsCircular.mouseClick ( 0 , 2 , Qt::LeftButton );
210
+
211
+ mCanvas ->setMapTool ( mParentTool );
212
+ utilsClassic.mouseClick ( 2 , 2 , Qt::LeftButton );
213
+ utilsClassic.mouseClick ( 4 , 2 , Qt::LeftButton );
214
+
215
+ utilsCircular.mouseClick ( 4 , 2 , Qt::RightButton );
216
+ QgsFeatureId newFid = utilsCircular.newFeatureId ();
217
+
218
+ QCOMPARE ( mLayer ->featureCount (), ( long )1 );
219
+ QgsFeature f = mLayer ->getFeature ( newFid );
220
+
221
+ QString wkt = " CompoundCurveZ ((2 1 333, 2 0 333),(2 0 333, 0 0 333),CircularStringZ (0 0 333, 1 1 333, 0 2 333),(0 2 333, 2 2 333),(2 2 333, 4 2 333))" ;
222
+ QCOMPARE ( f.geometry ().asWkt (), wkt );
223
+
224
+ mLayer ->rollBack ();
225
+ QgsSettings ().setValue ( QStringLiteral ( " /qgis/digitizing/default_z_value" ), 0 );
226
+ }
190
227
QGSTEST_MAIN ( TestQgsMapToolCircularString )
191
228
#include " testqgsmaptoolcircularstring.moc"
0 commit comments