mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
* make QgsMapToolCapture capable of capturing point/line/polygons This moves part of the code from QgsMapToolDigitizeFeature to QgsMapToolCapture so the tool can actually capture point, line and polygons. It's mainly the 'cadCanvasReleaseEvent` which has been transfered. * use a current CaptureTechnique in QgsMapToolCapture QgisApp has been adapted to switch between the different techniques * add point/line/polygon specific handlers for capture map tool * convert add part map tool to use QgsMapToolCapture capabilities * fix use of deprecated methods * also create a virtual handler for QgsMapToolDigitizeFeature::featureDigitized * more dox * use const abstract geom in virtual handlers * add new class QgsMapToolCaptureLayerGeometry to handle layer specific operation in capture map tool such as avoiding intersections * allow to add linear geometries on curved geometry layers * make actions exclusive * add settings registry to app * add a registry for shape map tools * abstract class for shape map tools * adapt QgsMapToolCapture to correctly support shape map tools * clean up of QgisApp * new class QgsMapToolsDigitizingTechniqueManager to handle actions in app related to capture map tools * clean up QgisInterface * sipify * refactoring of existing shape tools * refactor add ring to fully support capture map tool * add missing folder to Doxygen * fix layout * fix erasing at iterator pos * fix unused warning * fix more dox * fix cpp check warning * fix unused warning * fix annotation map tool does not support shape + set tool name * correctly handle case when the capture is not done on a vector layer (annotation, mesh, …) * enable shapes in annotation map tool * correctly undo and clean * adapt existing shape tests the deletion test with circular vertices has been dropped since the capture map tool behaves differently * fix warning * refactor fill ring to support shape digitizing * fix win build * fix more tests * avoid detach warnings * fix app test + clean up * harmonize new settings with existing ones * fix categories * support adding multi lines as a part * fix adding curve part to multi line * also handle points * code a bit clearer * cast not always valid * allow adding curved polygon to multipolygon * add test for QgsGeometry::addPart with curved parts on non-curved geoms (lines and polygons) * fix with Python < 3.9 * better dox for deprecated interface actions methods * remove files leftover * remove leftover circular string curve point tool * add default Z/M values when calling QgsGeometry::coerceToType * Apply suggestions from code review Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com> * fixes from review * move layer specific part to specific tool * fix typo * fix leak * fix dox * fix segmentization * call map tool implementation of addCurve when adding trace curve to avoid point duplication * call sub-class implementation * fix since 3.24 -> 3.26 * fix test * add test to avoid extra curves when using tracing * fix headers Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>