summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/erasetool.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/drawpad/erasetool.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/erasetool.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/noncore/graphics/drawpad/erasetool.cpp b/noncore/graphics/drawpad/erasetool.cpp
index d37c901..828994b 100644
--- a/noncore/graphics/drawpad/erasetool.cpp
+++ b/noncore/graphics/drawpad/erasetool.cpp
@@ -20,48 +20,50 @@
20#include <qpixmap.h> 20#include <qpixmap.h>
21 21
22EraseTool::EraseTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas) 22EraseTool::EraseTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas)
23 : Tool(drawPad, drawPadCanvas) 23 : Tool(drawPad, drawPadCanvas)
24{ 24{
25 m_mousePressed = false; 25 m_mousePressed = false;
26 m_polyline.resize(3); 26 m_polyline.resize(3);
27} 27}
28 28
29EraseTool::~EraseTool() 29EraseTool::~EraseTool()
30{ 30{
31} 31}
32 32
33void EraseTool::mousePressEvent(QMouseEvent* e) 33void EraseTool::mousePressEvent(QMouseEvent* e)
34{ 34{
35 m_mousePressed = true; 35 m_mousePressed = true;
36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos(); 36 m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos();
37} 37}
38 38
39void EraseTool::mouseReleaseEvent(QMouseEvent* e) 39void EraseTool::mouseReleaseEvent(QMouseEvent* e)
40{ 40{
41 Q_UNUSED(e) 41 Q_UNUSED(e)
42 42
43 m_mousePressed = false; 43 m_mousePressed = false;
44
45 m_pDrawPadCanvas->backupPage();
44} 46}
45 47
46void EraseTool::mouseMoveEvent(QMouseEvent* e) 48void EraseTool::mouseMoveEvent(QMouseEvent* e)
47{ 49{
48 if (m_mousePressed) { 50 if (m_mousePressed) {
49 QPainter painter; 51 QPainter painter;
50 QPen pen(Qt::white, m_pDrawPad->pen().width()); 52 QPen pen(Qt::white, m_pDrawPad->pen().width());
51 painter.begin(m_pDrawPadCanvas->currentPage()); 53 painter.begin(m_pDrawPadCanvas->currentPage());
52 painter.setPen(pen); 54 painter.setPen(pen);
53 m_polyline[2] = m_polyline[1]; 55 m_polyline[2] = m_polyline[1];
54 m_polyline[1] = m_polyline[0]; 56 m_polyline[1] = m_polyline[0];
55 m_polyline[0] = e->pos(); 57 m_polyline[0] = e->pos();
56 painter.drawPolyline(m_polyline); 58 painter.drawPolyline(m_polyline);
57 painter.end(); 59 painter.end();
58 60
59 QRect r = m_polyline.boundingRect(); 61 QRect r = m_polyline.boundingRect();
60 r = r.normalize(); 62 r = r.normalize();
61 r.setLeft(r.left() - m_pDrawPad->pen().width()); 63 r.setLeft(r.left() - m_pDrawPad->pen().width());
62 r.setTop(r.top() - m_pDrawPad->pen().width()); 64 r.setTop(r.top() - m_pDrawPad->pen().width());
63 r.setRight(r.right() + m_pDrawPad->pen().width()); 65 r.setRight(r.right() + m_pDrawPad->pen().width());
64 r.setBottom(r.bottom() + m_pDrawPad->pen().width()); 66 r.setBottom(r.bottom() + m_pDrawPad->pen().width());
65 67
66 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()), 68 QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()),
67 m_pDrawPadCanvas->contentsToViewport(r.bottomRight())); 69 m_pDrawPadCanvas->contentsToViewport(r.bottomRight()));