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 } |