src/gui/painting/qdrawutil.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
  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     }