summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/linetool.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/drawpad/linetool.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/drawpad/linetool.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/noncore/graphics/drawpad/linetool.cpp b/noncore/graphics/drawpad/linetool.cpp
index 99cd6de..b6baa2a 100644
--- a/noncore/graphics/drawpad/linetool.cpp
+++ b/noncore/graphics/drawpad/linetool.cpp
@@ -29,13 +29,15 @@ LineTool::~LineTool()
29} 29}
30 30
31void LineTool::drawFinalShape(QPainter& p) 31void LineTool::drawFinalShape(QPainter& p)
32{ 32{
33 p.setRasterOp(Qt::NotROP); 33 p.setRasterOp(Qt::NotROP);
34 p.drawLine(m_polyline[2], m_polyline[0]); 34 p.drawLine(m_polyline[2], m_polyline[0]);
35 p.setRasterOp(Qt::CopyROP);
35 36
37 if (m_pDrawPad->antiAliasing()) {
36 QRect r = m_polyline.boundingRect(); 38 QRect r = m_polyline.boundingRect();
37 r = r.normalize(); 39 r = r.normalize();
38 r.setLeft(r.left() - m_pDrawPad->pen().width()); 40 r.setLeft(r.left() - m_pDrawPad->pen().width());
39 r.setTop(r.top() - m_pDrawPad->pen().width()); 41 r.setTop(r.top() - m_pDrawPad->pen().width());
40 r.setRight(r.right() + m_pDrawPad->pen().width()); 42 r.setRight(r.right() + m_pDrawPad->pen().width());
41 r.setBottom(r.bottom() + m_pDrawPad->pen().width()); 43 r.setBottom(r.bottom() + m_pDrawPad->pen().width());
@@ -62,14 +64,17 @@ void LineTool::drawFinalShape(QPainter& p)
62 bigAreaPainter.end(); 64 bigAreaPainter.end();
63 65
64 bigAreaImage = bigAreaPixmap.convertToImage(); 66 bigAreaImage = bigAreaPixmap.convertToImage();
65 areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3); 67 areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3);
66 areaPixmap.convertFromImage(areaImage); 68 areaPixmap.convertFromImage(areaImage);
67 69
68 p.setRasterOp(Qt::CopyROP);
69 p.drawPixmap(r.x(), r.y(), areaPixmap); 70 p.drawPixmap(r.x(), r.y(), areaPixmap);
71 } else {
72 p.setPen(m_pDrawPad->pen());
73 p.drawLine(m_polyline[2], m_polyline[0]);
74 }
70} 75}
71 76
72void LineTool::drawTemporaryShape(QPainter& p) 77void LineTool::drawTemporaryShape(QPainter& p)
73{ 78{
74 p.setRasterOp(Qt::NotROP); 79 p.setRasterOp(Qt::NotROP);
75 p.drawLine(m_polyline[2], m_polyline[1]); 80 p.drawLine(m_polyline[2], m_polyline[1]);