- if (m_clipType == IMAGE && !m_startPix.isNull()) {
- QPointF p1 = painter->matrix().map(QPointF(itemWidth, 0)) - QPointF(m_startPix.width(), 0);
- QPointF p2 = painter->matrix().map(QPointF(itemWidth, itemHeight)) - QPointF(m_startPix.width(), 0);
- painter->drawPixmap(p1, m_startPix);
- QLineF l(p1, p2);
- painter->drawLine(l);
+ if ((m_clipType == IMAGE || m_clipType == TEXT) && !m_startPix.isNull()) {
+ double left = itemWidth - m_startPix.width() * vscale / scale;
+ QRectF pixrect(left, 0.0, m_startPix.width() * vscale / scale, m_startPix.height());
+ QRectF source(0.0, 0.0, (double) m_startPix.width(), (double) m_startPix.height());
+ painter->drawPixmap(pixrect, m_startPix, source);
+ QLineF l2(left, 0, left, m_startPix.height());
+ painter->drawLine(l2);