src/gui/painting/qdrawutil.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
--- a/src/gui/painting/qdrawutil.cpp	Fri Apr 16 15:50:13 2010 +0300
+++ b/src/gui/painting/qdrawutil.cpp	Mon May 03 13:17:34 2010 +0300
@@ -1361,14 +1361,21 @@
 
         for (int i = 0; i < dataCount; ++i) {
             QTransform transform = oldTransform;
-            transform.translate(drawingData[i].point.x(), drawingData[i].point.y());
-            transform.rotate(drawingData[i].rotation);
+            qreal xOffset = 0;
+            qreal yOffset = 0;
+            if (drawingData[i].rotation == 0) {
+                xOffset = drawingData[i].point.x();
+                yOffset = drawingData[i].point.y();
+            } else {
+                transform.translate(drawingData[i].point.x(), drawingData[i].point.y());
+                transform.rotate(drawingData[i].rotation);
+            }
+            painter->setTransform(transform);
             painter->setOpacity(oldOpacity * drawingData[i].opacity);
-            painter->setTransform(transform);
 
             qreal w = drawingData[i].scaleX * drawingData[i].source.width();
             qreal h = drawingData[i].scaleY * drawingData[i].source.height();
-            painter->drawPixmap(QRectF(-0.5 * w, -0.5 * h, w, h), pixmap, drawingData[i].source);
+            painter->drawPixmap(QRectF(-0.5 * w + xOffset, -0.5 * h + yOffset, w, h), pixmap, drawingData[i].source);
         }
 
         painter->setOpacity(oldOpacity);