summaryrefslogtreecommitdiff
path: root/noncore/graphics
Unidiff
Diffstat (limited to 'noncore/graphics') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/drawpad/linetool.cpp12
1 files changed, 2 insertions, 10 deletions
diff --git a/noncore/graphics/drawpad/linetool.cpp b/noncore/graphics/drawpad/linetool.cpp
index 1480df2..99cd6de 100644
--- a/noncore/graphics/drawpad/linetool.cpp
+++ b/noncore/graphics/drawpad/linetool.cpp
@@ -35,51 +35,43 @@ void LineTool::drawFinalShape(QPainter& p)
35 35
36 QRect r = m_polyline.boundingRect(); 36 QRect r = m_polyline.boundingRect();
37 r = r.normalize(); 37 r = r.normalize();
38 r.setLeft(r.left() - m_pDrawPad->pen().width()); 38 r.setLeft(r.left() - m_pDrawPad->pen().width());
39 r.setTop(r.top() - m_pDrawPad->pen().width()); 39 r.setTop(r.top() - m_pDrawPad->pen().width());
40 r.setRight(r.right() + m_pDrawPad->pen().width()); 40 r.setRight(r.right() + m_pDrawPad->pen().width());
41 r.setBottom(r.bottom() + m_pDrawPad->pen().width()); 41 r.setBottom(r.bottom() + m_pDrawPad->pen().width());
42 42
43 QPixmap areaPixmap(r.width(), r.height()); 43 QPixmap areaPixmap(r.width(), r.height());
44 bitBlt(&areaPixmap, QPoint(0, 0), p.device(), r); 44 bitBlt(&areaPixmap, QPoint(0, 0), p.device(), r);
45 45
46 QImage areaImage = areaPixmap.convertToImage(); 46 QImage areaImage = areaPixmap.convertToImage();
47 QImage bigAreaImage = areaImage.smoothScale(areaImage.width() * 3, areaImage.height() * 3); 47 QImage bigAreaImage = areaImage.smoothScale(areaImage.width() * 3, areaImage.height() * 3);
48 48
49 QPixmap bigAreaPixmap; 49 QPixmap bigAreaPixmap;
50 bigAreaPixmap.convertFromImage(bigAreaImage); 50 bigAreaPixmap.convertFromImage(bigAreaImage);
51 51
52 QPen bigAreaPen = m_pDrawPad->pen(); 52 QPen bigAreaPen = m_pDrawPad->pen();
53 bigAreaPen.setWidth(bigAreaPen.width() * 3); 53 bigAreaPen.setWidth(bigAreaPen.width() * 3);
54 54
55 QPainter bigAreaPainter; 55 QPainter bigAreaPainter;
56 bigAreaPainter.begin(&bigAreaPixmap); 56 bigAreaPainter.begin(&bigAreaPixmap);
57 bigAreaPainter.setPen(bigAreaPen); 57 bigAreaPainter.setPen(bigAreaPen);
58 58
59 if (((m_polyline[2].x() < m_polyline[0].x()) && (m_polyline[2].y() < m_polyline[0].y())) 59 bigAreaPainter.drawLine((m_polyline[2].x() - r.x()) * 3 + 1, (m_polyline[2].y() - r.y()) * 3 + 1,
60 || ((m_polyline[2].x() > m_polyline[0].x()) && (m_polyline[2].y() > m_polyline[0].y()))) { 60 (m_polyline[0].x() - r.x()) * 3 + 1, (m_polyline[0].y() - r.y()) * 3 + 1);
61
62 bigAreaPainter.drawLine(bigAreaPen.width() + 1, bigAreaPen.width() + 1,
63 bigAreaPixmap.width() - bigAreaPen.width() - 2,
64 bigAreaPixmap.height() - bigAreaPen.width() - 2);
65 } else {
66 bigAreaPainter.drawLine(bigAreaPen.width() + 1, bigAreaPixmap.height() - bigAreaPen.width() - 2,
67 bigAreaPixmap.width() - bigAreaPen.width() - 2, bigAreaPen.width() + 1);
68 }
69 61
70 bigAreaPainter.end(); 62 bigAreaPainter.end();
71 63
72 bigAreaImage = bigAreaPixmap.convertToImage(); 64 bigAreaImage = bigAreaPixmap.convertToImage();
73 areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3); 65 areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3);
74 areaPixmap.convertFromImage(areaImage); 66 areaPixmap.convertFromImage(areaImage);
75 67
76 p.setRasterOp(Qt::CopyROP); 68 p.setRasterOp(Qt::CopyROP);
77 p.drawPixmap(r.x(), r.y(), areaPixmap); 69 p.drawPixmap(r.x(), r.y(), areaPixmap);
78} 70}
79 71
80void LineTool::drawTemporaryShape(QPainter& p) 72void LineTool::drawTemporaryShape(QPainter& p)
81{ 73{
82 p.setRasterOp(Qt::NotROP); 74 p.setRasterOp(Qt::NotROP);
83 p.drawLine(m_polyline[2], m_polyline[1]); 75 p.drawLine(m_polyline[2], m_polyline[1]);
84 p.drawLine(m_polyline[2], m_polyline[0]); 76 p.drawLine(m_polyline[2], m_polyline[0]);
85} 77}