1 #include "DrawingWindow.h"
7 DrawingWindow::DrawingWindow(DrawingArea &a)
15 DrawingWindow::DrawingWindow(QWidget *parent, DrawingArea &a)
23 DrawingWindow::DrawingWindow(QWidget *parent, Qt::WindowFlags flags,
25 : QWidget(parent, flags)
32 void DrawingWindow::paintEvent(QPaintEvent *ev)
34 QRect rect = ev->rect();
36 if (drawingArea.isDirty()) {
37 QPainter pixmapPainter(&pixmap);
38 pixmapPainter.drawImage(drawingArea.getDirtyRect(),
39 drawingArea.getImage(),
40 drawingArea.getDirtyRect());
41 drawingArea.setClean();
42 rect |= drawingArea.getDirtyRect();
45 QPainter painter(this);
46 painter.drawPixmap(0, 0, pixmap);
49 void DrawingWindow::timerEvent(QTimerEvent *ev)
51 if (ev->timerId() == timer.timerId()) {
54 QWidget::timerEvent(ev);
58 void DrawingWindow::initialize()
60 setFocusPolicy(Qt::StrongFocus);
61 setFixedSize(drawingArea.getImage().size());
62 setAttribute(Qt::WA_OpaquePaintEvent);
63 timer.start(50, this);