[QGIS Commit] r10857 - branches/Version-1_0/src/gui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu May 28 15:41:36 EDT 2009
Author: mhugent
Date: 2009-05-28 15:41:35 -0400 (Thu, 28 May 2009)
New Revision: 10857
Modified:
branches/Version-1_0/src/gui/qgscomposerview.cpp
branches/Version-1_0/src/gui/qgscomposerview.h
Log:
Backport of fix for #1717
Modified: branches/Version-1_0/src/gui/qgscomposerview.cpp
===================================================================
--- branches/Version-1_0/src/gui/qgscomposerview.cpp 2009-05-28 17:59:35 UTC (rev 10856)
+++ branches/Version-1_0/src/gui/qgscomposerview.cpp 2009-05-28 19:41:35 UTC (rev 10857)
@@ -83,6 +83,7 @@
{
QTransform t;
mRubberBandItem = new QGraphicsRectItem( 0, 0, 0, 0 );
+ mRubberBandStartPos = QPointF(scenePoint.x(), scenePoint.y());
t.translate( scenePoint.x(), scenePoint.y() );
mRubberBandItem->setTransform( t );
mRubberBandItem->setZValue( 100 );
@@ -249,12 +250,45 @@
break;
case AddMap:
- //adjust rubber band item
- newWidth = scenePoint.x() - mRubberBandItem->transform().dx();
- newHeight = scenePoint.y() - mRubberBandItem->transform().dy();
- mRubberBandItem->setRect( 0, 0, newWidth, newHeight );
- break;
+ //adjust rubber band item
+ {
+ double x = 0;
+ double y = 0;
+ double width = 0;
+ double height = 0;
+ double dx = scenePoint.x() - mRubberBandStartPos.x();
+ double dy = scenePoint.y() - mRubberBandStartPos.y();
+
+ if(dx < 0)
+ {
+ x = scenePoint.x();
+ width = -dx;
+ }
+ else
+ {
+ x = mRubberBandStartPos.x();
+ width = dx;
+ }
+
+ if(dy < 0)
+ {
+ y = scenePoint.y();
+ height = -dy;
+ }
+ else
+ {
+ y = mRubberBandStartPos.y();
+ height = dy;
+ }
+
+ mRubberBandItem->setRect( 0, 0, width, height );
+ QTransform t;
+ t.translate(x, y);
+ mRubberBandItem->setTransform(t);
+ break;
+ }
+
case MoveItemContent:
{
//update map preview if composer map
Modified: branches/Version-1_0/src/gui/qgscomposerview.h
===================================================================
--- branches/Version-1_0/src/gui/qgscomposerview.h 2009-05-28 17:59:35 UTC (rev 10856)
+++ branches/Version-1_0/src/gui/qgscomposerview.h 2009-05-28 19:41:35 UTC (rev 10857)
@@ -92,6 +92,8 @@
QgsComposerItem* mMoveContentItem;
/**Start position of content move*/
QPointF mMoveContentStartPos;
+ /**Start of rubber band creation*/
+ QPointF mRubberBandStartPos;
public slots:
/**For QgsComposerItemGroup to send its signals to QgsComposer (or other classes that keep track of input widgets)*/
More information about the QGIS-commit
mailing list