[QGIS Commit] r15843 - trunk/qgis/src/core/composer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Apr 28 16:05:35 EDT 2011


Author: mhugent
Date: 2011-04-28 13:05:35 -0700 (Thu, 28 Apr 2011)
New Revision: 15843

Modified:
   trunk/qgis/src/core/composer/qgscomposermap.cpp
Log:
Fix for placement of map items in composer

Modified: trunk/qgis/src/core/composer/qgscomposermap.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposermap.cpp	2011-04-28 18:58:03 UTC (rev 15842)
+++ trunk/qgis/src/core/composer/qgscomposermap.cpp	2011-04-28 20:05:35 UTC (rev 15843)
@@ -1568,10 +1568,11 @@
     return QPointF( 0, 0 );
   }
 
-  double mapX = item->scenePos().x() / mMapCanvas->width() * mMapRenderer->extent().width() + mMapRenderer->extent().xMinimum();
-  double mapY = mMapRenderer->extent().yMaximum() - item->scenePos().y() / mMapCanvas->height() * mMapRenderer->extent().height();
+  QRectF graphicsSceneRect = mMapCanvas->sceneRect();
+  QPointF itemScenePos = item->scenePos();
+  QgsRectangle mapRendererExtent = mMapRenderer->extent();
 
-  double itemX = rect().width() * ( mapX - mExtent.xMinimum() ) / mExtent.width() + mXOffset;
-  double itemY = rect().height() * ( mExtent.yMaximum() - mapY ) / mExtent.height() + mYOffset;
-  return QPointF( itemX, itemY );
+  double mapX = itemScenePos.x() / graphicsSceneRect.width() * mapRendererExtent.width() + mapRendererExtent.xMinimum();
+  double mapY = mapRendererExtent.yMaximum() - itemScenePos.y() / graphicsSceneRect.height() * mapRendererExtent.height();
+  return mapToItemCoords( QPointF( mapX, mapY ) );
 }



More information about the QGIS-commit mailing list