src/gui/painting/qdrawutil.cpp
branchRCL_3
changeset 7 3f74d0d4af4c
parent 4 3b1da2848fc7
equal deleted inserted replaced
6:dee5afe5301f 7:3f74d0d4af4c
  1359         qreal oldOpacity = painter->opacity();
  1359         qreal oldOpacity = painter->opacity();
  1360         QTransform oldTransform = painter->transform();
  1360         QTransform oldTransform = painter->transform();
  1361 
  1361 
  1362         for (int i = 0; i < dataCount; ++i) {
  1362         for (int i = 0; i < dataCount; ++i) {
  1363             QTransform transform = oldTransform;
  1363             QTransform transform = oldTransform;
  1364             transform.translate(drawingData[i].point.x(), drawingData[i].point.y());
  1364             qreal xOffset = 0;
  1365             transform.rotate(drawingData[i].rotation);
  1365             qreal yOffset = 0;
       
  1366             if (drawingData[i].rotation == 0) {
       
  1367                 xOffset = drawingData[i].point.x();
       
  1368                 yOffset = drawingData[i].point.y();
       
  1369             } else {
       
  1370                 transform.translate(drawingData[i].point.x(), drawingData[i].point.y());
       
  1371                 transform.rotate(drawingData[i].rotation);
       
  1372             }
       
  1373             painter->setTransform(transform);
  1366             painter->setOpacity(oldOpacity * drawingData[i].opacity);
  1374             painter->setOpacity(oldOpacity * drawingData[i].opacity);
  1367             painter->setTransform(transform);
       
  1368 
  1375 
  1369             qreal w = drawingData[i].scaleX * drawingData[i].source.width();
  1376             qreal w = drawingData[i].scaleX * drawingData[i].source.width();
  1370             qreal h = drawingData[i].scaleY * drawingData[i].source.height();
  1377             qreal h = drawingData[i].scaleY * drawingData[i].source.height();
  1371             painter->drawPixmap(QRectF(-0.5 * w, -0.5 * h, w, h), pixmap, drawingData[i].source);
  1378             painter->drawPixmap(QRectF(-0.5 * w + xOffset, -0.5 * h + yOffset, w, h), pixmap, drawingData[i].source);
  1372         }
  1379         }
  1373 
  1380 
  1374         painter->setOpacity(oldOpacity);
  1381         painter->setOpacity(oldOpacity);
  1375         painter->setTransform(oldTransform);
  1382         painter->setTransform(oldTransform);
  1376     }
  1383     }