diff options
-rw-r--r-- | src/gui/itemviews/qabstractitemview.cpp | 1 | ||||
-rw-r--r-- | tests/auto/qgl/qgl.pro | 2 | ||||
-rw-r--r-- | tests/auto/qgl/tst_qgl.cpp | 28 |
3 files changed, 26 insertions, 5 deletions
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index bc6db90..4931b46 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -3046,6 +3046,7 @@ void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget if (!d->isIndexValid(index)) return; if (QWidget *oldWidget = indexWidget(index)) { + d->persistent.remove(oldWidget); d->removeEditor(oldWidget); oldWidget->deleteLater(); } diff --git a/tests/auto/qgl/qgl.pro b/tests/auto/qgl/qgl.pro index 9116f39..5f058f9 100644 --- a/tests/auto/qgl/qgl.pro +++ b/tests/auto/qgl/qgl.pro @@ -6,6 +6,8 @@ load(qttest_p4) requires(contains(QT_CONFIG,opengl)) QT += opengl +contains(QT_CONFIG,egl):DEFINES += QGL_EGL + SOURCES += tst_qgl.cpp RESOURCES = qgl.qrc diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp index 2983af3..101e361 100644 --- a/tests/auto/qgl/tst_qgl.cpp +++ b/tests/auto/qgl/tst_qgl.cpp @@ -998,8 +998,7 @@ void tst_QGL::glFBOSimpleRendering() QGLFramebufferObjectFormat fboFormat; fboFormat.setAttachment(QGLFramebufferObject::NoAttachment); - // Don't complicate things by using NPOT: - QGLFramebufferObject *fbo = new QGLFramebufferObject(256, 128, fboFormat); + QGLFramebufferObject *fbo = new QGLFramebufferObject(200, 100, fboFormat); fbo->bind(); @@ -1036,6 +1035,11 @@ void tst_QGL::glFBORendering() // Don't complicate things by using NPOT: QGLFramebufferObject *fbo = new QGLFramebufferObject(256, 128, fboFormat); + if (fbo->attachment() != QGLFramebufferObject::CombinedDepthStencil) { + delete fbo; + QSKIP("FBOs missing combined depth~stencil support", SkipSingle); + } + QPainter fboPainter; bool painterBegun = fboPainter.begin(fbo); QVERIFY(painterBegun); @@ -1098,6 +1102,16 @@ void tst_QGL::multipleFBOInterleavedRendering() QGLFramebufferObject *fbo2 = new QGLFramebufferObject(256, 128, fboFormat); QGLFramebufferObject *fbo3 = new QGLFramebufferObject(256, 128, fboFormat); + if ( (fbo1->attachment() != QGLFramebufferObject::CombinedDepthStencil) || + (fbo2->attachment() != QGLFramebufferObject::CombinedDepthStencil) || + (fbo3->attachment() != QGLFramebufferObject::CombinedDepthStencil) ) + { + delete fbo1; + delete fbo2; + delete fbo3; + QSKIP("FBOs missing combined depth~stencil support", SkipSingle); + } + QPainter fbo1Painter; QPainter fbo2Painter; QPainter fbo3Painter; @@ -1203,8 +1217,8 @@ protected: QPainter widgetPainter; widgetPainterBeginOk = widgetPainter.begin(this); QGLFramebufferObjectFormat fboFormat; - fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil); - QGLFramebufferObject *fbo = new QGLFramebufferObject(128, 128, fboFormat); + fboFormat.setAttachment(QGLFramebufferObject::NoAttachment); + QGLFramebufferObject *fbo = new QGLFramebufferObject(100, 100, fboFormat); QPainter fboPainter; fboPainterBeginOk = fboPainter.begin(fbo); @@ -1228,7 +1242,7 @@ void tst_QGL::glFBOUseInGLWidget() #ifdef Q_WS_QWS w.setWindowFlags(Qt::FramelessWindowHint); #endif - w.resize(128, 128); + w.resize(100, 100); w.show(); #ifdef Q_WS_X11 @@ -1340,6 +1354,10 @@ void tst_QGL::glWidgetRenderPixmap() QImage reference(fb.size(), QImage::Format_RGB32); reference.fill(0xffff0000); +#ifdef QGL_EGL + QSKIP("renderPixmap() not yet supported under EGL", SkipAll); +#endif + QFUZZY_COMPARE_IMAGES(fb, reference); } |