void QgsMapToolAdvancedDigitizing::canvasReleaseEvent( QgsMapMouseEvent *e ) { if ( isAdvancedDigitizingAllowed() && mCadDockWidget->cadEnabled() ) { if ( e->button() == Qt::RightButton ) { mCadDockWidget->clear(); } else { mCadDockWidget->applyConstraints( e ); // updates event's map point if ( mCadDockWidget->alignToSegment( e ) ) { // Parallel or perpendicular mode and snapped to segment: do not pass the event to map tool return; } mCadDockWidget->addPoint( e->mapPoint() ); mCadDockWidget->releaseLocks( false ); if ( mCadDockWidget->constructionMode() ) return; // decided to eat the event and not pass it to the map tool (construction mode) } } else if ( isAutoSnapEnabled() ) { e->snapPoint(); } cadCanvasReleaseEvent( e ); }
void QgsMapToolAdvancedDigitizing::canvasReleaseEvent( QgsMapMouseEvent* e ) { snap( e ); QgsAdvancedDigitizingDockWidget::AdvancedDigitizingMode dockMode; switch ( mCaptureMode ) { case CaptureLine: case CapturePolygon: dockMode = QgsAdvancedDigitizingDockWidget::ManyPoints; break; case CaptureSegment: dockMode = QgsAdvancedDigitizingDockWidget::TwoPoints; break; default: dockMode = QgsAdvancedDigitizingDockWidget::SinglePoint; break; } if ( !mCadDockWidget->canvasReleaseEvent( e, dockMode ) ) cadCanvasReleaseEvent( e ); }
void QgsMapToolAdvancedDigitizing::canvasReleaseEvent( QgsMapMouseEvent* e ) { if ( !mCadDockWidget->canvasReleaseEvent( e, mCaptureMode == CaptureLine || mCaptureMode == CapturePolygon ) ) cadCanvasReleaseEvent( e ); }