void QgsMapToolAddCircularString::keyPressEvent( QKeyEvent* e ) { if ( e && e->isAutoRepeat() ) { return; } if ( e && e->key() == Qt::Key_R ) { mShowCenterPointRubberBand = true; createCenterPointRubberBand(); } if ( e && e->key() == Qt::Key_Escape ) { mPoints.clear(); delete mRubberBand; mRubberBand = nullptr; delete mTempRubberBand; mTempRubberBand = nullptr; removeCenterPointRubberBand(); if ( mParentTool ) mParentTool->keyPressEvent( e ); } }
void QgsMapToolCircularStringCurvePoint::cadCanvasReleaseEvent( QgsMapMouseEvent *e ) { QgsPointV2 mapPoint( e->mapPoint() ); if ( e->button() == Qt::LeftButton ) { mPoints.append( mapPoint ); if ( !mCenterPointRubberBand && mShowCenterPointRubberBand ) { createCenterPointRubberBand(); } if ( !mPoints.isEmpty() ) { if ( !mTempRubberBand ) { mTempRubberBand = createGeometryRubberBand( ( mode() == CapturePolygon ) ? QgsWkbTypes::PolygonGeometry : QgsWkbTypes::LineGeometry, true ); mTempRubberBand->show(); } QgsCircularString *c = new QgsCircularString(); QgsPointSequence rubberBandPoints = mPoints.mid( mPoints.size() - 1 - ( mPoints.size() + 1 ) % 2 ); rubberBandPoints.append( mapPoint ); c->setPoints( rubberBandPoints ); mTempRubberBand->setGeometry( c ); } if ( mPoints.size() > 1 && mPoints.size() % 2 ) { if ( !mRubberBand ) { mRubberBand = createGeometryRubberBand( ( mode() == CapturePolygon ) ? QgsWkbTypes::PolygonGeometry : QgsWkbTypes::LineGeometry ); mRubberBand->show(); } QgsCircularString *c = new QgsCircularString(); QgsPointSequence rubberBandPoints = mPoints; rubberBandPoints.append( mapPoint ); c->setPoints( rubberBandPoints ); mRubberBand->setGeometry( c ); removeCenterPointRubberBand(); } } else if ( e->button() == Qt::RightButton ) { deactivate(); if ( mParentTool ) { mParentTool->canvasReleaseEvent( e ); } } }
void QgsMapToolAddCircularString::keyPressEvent( QKeyEvent* e ) { if ( e && e->isAutoRepeat() ) { return; } if ( e && e->key() == Qt::Key_R ) { mShowCenterPointRubberBand = true; createCenterPointRubberBand(); } }