+inline
+int DrawingWindow::width() const
+{
+ return image->width();
+}
+
+inline
+int DrawingWindow::height() const
+{
+ return image->height();
+}
+
+inline
+void DrawingWindow::lock()
+{
+ thread->disableTerminate();
+ mutex.lock();
+}
+
+inline
+void DrawingWindow::unlock()
+{
+ mutex.unlock();
+ thread->enableTerminate();
+}
+
+inline
+void DrawingWindow::setDirtyRect()
+{
+ dirtyFlag = true;
+ dirtyRect.setRect(0, 0, width(), height());
+}
+
+inline
+void DrawingWindow::setDirtyRect(int x, int y)
+{
+ setDirtyRect(QRect(x, y, 1, 1));
+}
+
+inline
+void DrawingWindow::setDirtyRect(int x1, int y1, int x2, int y2)
+{
+ QRect r;
+ r.setCoords(x1, y1, x2, y2);
+ setDirtyRect(r.normalized());
+}
+
+inline
+void DrawingWindow::DrawingThread::enableTerminate()
+{
+ if (currentThread() == this)
+ setTerminationEnabled(true);
+}
+
+inline
+void DrawingWindow::DrawingThread::disableTerminate()
+{
+ if (currentThread() == this)
+ setTerminationEnabled(false);
+}
+