Fix assert in painting demos when switching to OpenGL.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Fri, 8 Jun 2012 11:45:43 +0000 (13:45 +0200)
committerQt by Nokia <qt-info@nokia.com>
Sat, 9 Jun 2012 08:45:01 +0000 (10:45 +0200)
Fix creation order. The ArthurFrame receives a paint
event with OpenGL set to true when the glw-member is still 0.

Task-number: QTBUG-26084
Change-Id: Ib4b568d22ae925542e3a775403e4c983ea0b4de5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
examples/painting/shared/arthurwidgets.cpp

index 695aa98..cf790fe 100644 (file)
@@ -87,19 +87,22 @@ ArthurFrame::ArthurFrame(QWidget *parent)
 #ifdef QT_OPENGL_SUPPORT
 void ArthurFrame::enableOpenGL(bool use_opengl)
 {
-    m_use_opengl = use_opengl;
+    if (m_use_opengl == use_opengl)
+        return;
 
-    if (!glw) {
+    if (!glw && use_opengl) {
         glw = new GLWidget(this);
         glw->setAutoFillBackground(false);
         glw->disableAutoBufferSwap();
         QApplication::postEvent(this, new QResizeEvent(size(), size()));
     }
 
+    m_use_opengl = use_opengl;
     if (use_opengl) {
         glw->show();
     } else {
-        glw->hide();
+        if (glw)
+            glw->hide();
     }
 
     update();