summaryrefslogtreecommitdiff
authorleseb <leseb>2002-06-19 07:02:19 (UTC)
committer leseb <leseb>2002-06-19 07:02:19 (UTC)
commitb1fd4450c70522551361c6138688777cb29e1e2f (patch) (side-by-side diff)
tree6f7e09297fd103d4f7544f386083e90133bcfbdf
parent46e3484b8909ae6ab8ad1e72cfd91453c931fc8c (diff)
downloadopie-b1fd4450c70522551361c6138688777cb29e1e2f.zip
opie-b1fd4450c70522551361c6138688777cb29e1e2f.tar.gz
opie-b1fd4450c70522551361c6138688777cb29e1e2f.tar.bz2
Cleaner drawing method
Diffstat (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
@@ -11,75 +11,67 @@
* *
***************************************************************************/
#include "linetool.h"
#include "drawpad.h"
#include "drawpadcanvas.h"
#include <qimage.h>
#include <qpixmap.h>
LineTool::LineTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas)
: ShapeTool(drawPad, drawPadCanvas)
{
}
LineTool::~LineTool()
{
}
void LineTool::drawFinalShape(QPainter& p)
{
p.setRasterOp(Qt::NotROP);
p.drawLine(m_polyline[2], m_polyline[0]);
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());
QPixmap areaPixmap(r.width(), r.height());
bitBlt(&areaPixmap, QPoint(0, 0), p.device(), r);
QImage areaImage = areaPixmap.convertToImage();
QImage bigAreaImage = areaImage.smoothScale(areaImage.width() * 3, areaImage.height() * 3);
QPixmap bigAreaPixmap;
bigAreaPixmap.convertFromImage(bigAreaImage);
QPen bigAreaPen = m_pDrawPad->pen();
bigAreaPen.setWidth(bigAreaPen.width() * 3);
QPainter bigAreaPainter;
bigAreaPainter.begin(&bigAreaPixmap);
bigAreaPainter.setPen(bigAreaPen);
- if (((m_polyline[2].x() < m_polyline[0].x()) && (m_polyline[2].y() < m_polyline[0].y()))
- || ((m_polyline[2].x() > m_polyline[0].x()) && (m_polyline[2].y() > m_polyline[0].y()))) {
-
- bigAreaPainter.drawLine(bigAreaPen.width() + 1, bigAreaPen.width() + 1,
- bigAreaPixmap.width() - bigAreaPen.width() - 2,
- bigAreaPixmap.height() - bigAreaPen.width() - 2);
- } else {
- bigAreaPainter.drawLine(bigAreaPen.width() + 1, bigAreaPixmap.height() - bigAreaPen.width() - 2,
- bigAreaPixmap.width() - bigAreaPen.width() - 2, bigAreaPen.width() + 1);
- }
+ bigAreaPainter.drawLine((m_polyline[2].x() - r.x()) * 3 + 1, (m_polyline[2].y() - r.y()) * 3 + 1,
+ (m_polyline[0].x() - r.x()) * 3 + 1, (m_polyline[0].y() - r.y()) * 3 + 1);
bigAreaPainter.end();
bigAreaImage = bigAreaPixmap.convertToImage();
areaImage = bigAreaImage.smoothScale(bigAreaImage.width() / 3, bigAreaImage.height() / 3);
areaPixmap.convertFromImage(areaImage);
p.setRasterOp(Qt::CopyROP);
p.drawPixmap(r.x(), r.y(), areaPixmap);
}
void LineTool::drawTemporaryShape(QPainter& p)
{
p.setRasterOp(Qt::NotROP);
p.drawLine(m_polyline[2], m_polyline[1]);
p.drawLine(m_polyline[2], m_polyline[0]);
}