summaryrefslogtreecommitdiff
path: root/noncore/graphics/drawpad/shapetool.cpp
Side-by-side diff
Diffstat (limited to 'noncore/graphics/drawpad/shapetool.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/shapetool.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/noncore/graphics/drawpad/shapetool.cpp b/noncore/graphics/drawpad/shapetool.cpp
index 8870a78..22e3dd6 100644
--- a/noncore/graphics/drawpad/shapetool.cpp
+++ b/noncore/graphics/drawpad/shapetool.cpp
@@ -23,72 +23,72 @@ ShapeTool::ShapeTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas)
: Tool(drawPad, drawPadCanvas)
{
m_mousePressed = false;
m_polyline.resize(3);
}
ShapeTool::~ShapeTool()
{
}
void ShapeTool::mousePressEvent(QMouseEvent* e)
{
+ m_pDrawPadCanvas->backupPage();
+
m_mousePressed = true;
m_polyline[2] = m_polyline[1] = m_polyline[0] = e->pos();
}
void ShapeTool::mouseReleaseEvent(QMouseEvent* e)
{
Q_UNUSED(e)
QPainter painter;
- painter.begin(m_pDrawPadCanvas->currentPage());
+ painter.begin(m_pDrawPadCanvas->currentPage()->pixmap());
drawFinalShape(painter);
painter.end();
QRect r = m_polyline.boundingRect();
r = r.normalize();
r.setLeft(r.left() - m_pDrawPad->pen().width());
r.setTop(r.top() - m_pDrawPad->pen().width());
r.setRight(r.right() + m_pDrawPad->pen().width());
r.setBottom(r.bottom() + m_pDrawPad->pen().width());
QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()),
m_pDrawPadCanvas->contentsToViewport(r.bottomRight()));
bitBlt(m_pDrawPadCanvas->viewport(), viewportRect.x(), viewportRect.y(),
- m_pDrawPadCanvas->currentPage(), r.x(), r.y(), r.width(), r.height());
+ m_pDrawPadCanvas->currentPage()->pixmap(), r.x(), r.y(), r.width(), r.height());
m_pDrawPadCanvas->viewport()->update(viewportRect);
m_mousePressed = false;
-
- m_pDrawPadCanvas->backupPage();
}
void ShapeTool::mouseMoveEvent(QMouseEvent* e)
{
if (m_mousePressed) {
m_polyline[0] = e->pos();
QPainter painter;
- painter.begin(m_pDrawPadCanvas->currentPage());
+ painter.begin(m_pDrawPadCanvas->currentPage()->pixmap());
drawTemporaryShape(painter);
painter.end();
QRect r = m_polyline.boundingRect();
r = r.normalize();
r.setLeft(r.left() - m_pDrawPad->pen().width());
r.setTop(r.top() - m_pDrawPad->pen().width());
r.setRight(r.right() + m_pDrawPad->pen().width());
r.setBottom(r.bottom() + m_pDrawPad->pen().width());
QRect viewportRect(m_pDrawPadCanvas->contentsToViewport(r.topLeft()),
m_pDrawPadCanvas->contentsToViewport(r.bottomRight()));
bitBlt(m_pDrawPadCanvas->viewport(), viewportRect.x(), viewportRect.y(),
- m_pDrawPadCanvas->currentPage(), r.x(), r.y(), r.width(), r.height());
+ m_pDrawPadCanvas->currentPage()->pixmap(), r.x(), r.y(), r.width(), r.height());
m_pDrawPadCanvas->viewport()->update(viewportRect);
m_polyline[1] = m_polyline[0];
}
}