Fix recursion in qwidget gdiPainting test.

Change-Id: If4881dfecc6fc7cebcd3ed896846d34e35b3e3ae
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
This commit is contained in:
Friedemann Kleint 2012-04-25 16:51:04 +02:00 committed by Qt by Nokia
parent 105b231214
commit 021808c670

View File

@ -7769,13 +7769,13 @@ void tst_QWidget::moveRect()
#ifdef Q_OS_WIN
class GDIWidget : public QDialog
{
Q_OBJECT
public:
GDIWidget() { setAttribute(Qt::WA_PaintOnScreen); }
QPaintEngine *paintEngine() const { return 0; }
void paintEvent(QPaintEvent *) {
qDebug() << __FUNCTION__;
QPlatformNativeInterface *ni = QGuiApplication::platformNativeInterface();
const HDC hdc = (HDC)ni->nativeResourceForWindow(QByteArrayLiteral("getDC"), windowHandle());
if (!hdc) {
@ -7788,15 +7788,21 @@ public:
ni->nativeResourceForWindow(QByteArrayLiteral("releaseDC"), windowHandle());
const QImage im = grab(QRect(QPoint(0, 0), size())).toImage();
color = im.pixel(1, 1);
QTimer::singleShot(0, this, SLOT(accept()));
QTimer::singleShot(0, this, SLOT(slotTimer()));
}
QSize sizeHint() const {
return QSize(400, 300);
}
private slots:
void slotTimer() {
const QImage im = grab(QRect(QPoint(0, 0), size())).toImage();
color = im.pixel(1, 1);
accept();
}
public:
QColor color;
};