Skip to content

Commit 713bd19

Browse files
author
mhugent
committedMay 28, 2009
Fix for bug #1717
git-svn-id: http://svn.osgeo.org/qgis/trunk@10856 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 3207598 commit 713bd19

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed
 

‎src/gui/qgscomposerview.cpp

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ void QgsComposerView::mousePressEvent( QMouseEvent* e )
101101
{
102102
QTransform t;
103103
mRubberBandItem = new QGraphicsRectItem( 0, 0, 0, 0 );
104+
mRubberBandStartPos = QPointF(snappedScenePoint.x(), snappedScenePoint.y());
104105
t.translate( snappedScenePoint.x(), snappedScenePoint.y() );
105106
mRubberBandItem->setTransform( t );
106107
mRubberBandItem->setZValue( 100 );
@@ -235,10 +236,43 @@ void QgsComposerView::mouseMoveEvent( QMouseEvent* e )
235236

236237
case AddMap:
237238
//adjust rubber band item
238-
newWidth = scenePoint.x() - mRubberBandItem->transform().dx();
239-
newHeight = scenePoint.y() - mRubberBandItem->transform().dy();
240-
mRubberBandItem->setRect( 0, 0, newWidth, newHeight );
241-
break;
239+
{
240+
double x = 0;
241+
double y = 0;
242+
double width = 0;
243+
double height = 0;
244+
245+
double dx = scenePoint.x() - mRubberBandStartPos.x();
246+
double dy = scenePoint.y() - mRubberBandStartPos.y();
247+
248+
if(dx < 0)
249+
{
250+
x = scenePoint.x();
251+
width = -dx;
252+
}
253+
else
254+
{
255+
x = mRubberBandStartPos.x();
256+
width = dx;
257+
}
258+
259+
if(dy < 0)
260+
{
261+
y = scenePoint.y();
262+
height = -dy;
263+
}
264+
else
265+
{
266+
y = mRubberBandStartPos.y();
267+
height = dy;
268+
}
269+
270+
mRubberBandItem->setRect( 0, 0, width, height );
271+
QTransform t;
272+
t.translate(x, y);
273+
mRubberBandItem->setTransform(t);
274+
break;
275+
}
242276

243277
case MoveItemContent:
244278
{

‎src/gui/qgscomposerview.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ class GUI_EXPORT QgsComposerView: public QGraphicsView
107107
QgsComposerItem* mMoveContentItem;
108108
/**Start position of content move*/
109109
QPointF mMoveContentStartPos;
110+
/**Start of rubber band creation*/
111+
QPointF mRubberBandStartPos;
110112

111113
public slots:
112114
/**For QgsComposerItemGroup to send its signals to QgsComposer (or other classes that keep track of input widgets)*/

0 commit comments

Comments
 (0)
Please sign in to comment.