Showing with 15 additions and 15 deletions.
  1. +2 −1 python/gui/qgsrubberband.sip
  2. +4 −13 src/app/nodetool/qgsmaptoolnodetool.cpp
  3. +4 −0 src/gui/qgsrubberband.cpp
  4. +5 −1 src/gui/qgsrubberband.h
3 changes: 2 additions & 1 deletion python/gui/qgsrubberband.sip
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class QgsRubberBand: QgsMapCanvasItem
ICON_CROSS,
ICON_X,
ICON_BOX,
ICON_CIRCLE
ICON_CIRCLE,
ICON_FULL_BOX
};

QgsRubberBand( QgsMapCanvas* mapCanvas /TransferThis/, QGis::GeometryType geometryType = QGis::Line );
Expand Down
17 changes: 4 additions & 13 deletions src/app/nodetool/qgsmaptoolnodetool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -720,23 +720,14 @@ void QgsMapToolNodeTool::keyReleaseEvent( QKeyEvent* e )

QgsRubberBand* QgsMapToolNodeTool::createRubberBandMarker( QgsPoint center, QgsVectorLayer* vlayer )
{

// create rubberband marker for moving points
QgsRubberBand* marker = new QgsRubberBand( mCanvas, QGis::Polygon );
QgsRubberBand* marker = new QgsRubberBand( mCanvas, QGis::Point );
marker->setColor( Qt::red );
marker->setWidth( 2 );
double movement = 4;
double s = QgsTolerance::toleranceInMapUnits( movement, vlayer, mCanvas->mapRenderer(), QgsTolerance::Pixels );
marker->setIcon( QgsRubberBand::ICON_FULL_BOX );
marker->setIconSize( 8 );
QgsPoint pom = toMapCoordinates( vlayer, center );
pom.setX( pom.x() - s );
pom.setY( pom.y() - s );
marker->addPoint( pom );
pom.setX( pom.x() + 2*s );
marker->addPoint( pom );
pom.setY( pom.y() + 2*s );
marker->addPoint( pom );
pom.setX( pom.x() - 2*s );
marker->addPoint( pom );
pom.setY( pom.y() - 2*s );
marker->addPoint( pom );
return marker;
}
4 changes: 4 additions & 0 deletions src/gui/qgsrubberband.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,10 @@ void QgsRubberBand::paint( QPainter* p )
p->drawLine( QLineF( x - s, y + s, x - s, y - s ) );
break;

case ICON_FULL_BOX:
p->drawRect( x - s, y - s, mIconSize, mIconSize );
break;

case ICON_CIRCLE:
p->drawEllipse( x - s, y - s, mIconSize, mIconSize );
break;
Expand Down
6 changes: 5 additions & 1 deletion src/gui/qgsrubberband.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@ class GUI_EXPORT QgsRubberBand: public QgsMapCanvasItem
/**
* A circle is used to highlight points (○)
*/
ICON_CIRCLE
ICON_CIRCLE,
/**
* A full box is used to highlight points (■)
*/
ICON_FULL_BOX
};

/**
Expand Down