summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp2
-rw-r--r--src/opengl/qgl_x11.cpp27
-rw-r--r--tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp23
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp2
4 files changed, 31 insertions, 23 deletions
diff --git a/src/gui/dialogs/qfiledialog_win.cpp b/src/gui/dialogs/qfiledialog_win.cpp
index 8089b43..d8ae73e 100644
--- a/src/gui/dialogs/qfiledialog_win.cpp
+++ b/src/gui/dialogs/qfiledialog_win.cpp
@@ -509,7 +509,7 @@ static bool qt_win_set_IFileDialogOptions(IFileDialog *pfd,
DWORD newOptions;
hr = pfd->GetOptions(&newOptions);
if (SUCCEEDED(hr)) {
- newOptions |= (FOS_NOCHANGEDIR | FOS_NOREADONLYRETURN);
+ newOptions |= FOS_NOCHANGEDIR;
if (mode == QFileDialog::ExistingFile ||
mode == QFileDialog::ExistingFiles)
newOptions |= (FOS_FILEMUSTEXIST | FOS_PATHMUSTEXIST);
diff --git a/src/opengl/qgl_x11.cpp b/src/opengl/qgl_x11.cpp
index 899047a..a037282 100644
--- a/src/opengl/qgl_x11.cpp
+++ b/src/opengl/qgl_x11.cpp
@@ -343,8 +343,8 @@ void* qglx_getProcAddress(const char* procName)
static bool triedResolvingGlxGetProcAddress = false;
if (!triedResolvingGlxGetProcAddress) {
triedResolvingGlxGetProcAddress = true;
- QString glxExt = QLatin1String(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS));
- if (glxExt.contains(QLatin1String("GLX_ARB_get_proc_address"))) {
+ QList<QByteArray> glxExt = QByteArray(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS)).split(' ');
+ if (glxExt.contains("GLX_ARB_get_proc_address")) {
#if defined(Q_OS_LINUX) || defined(Q_OS_BSD4)
void *handle = dlopen(NULL, RTLD_LAZY);
if (handle) {
@@ -523,8 +523,8 @@ bool QGLContext::chooseContext(const QGLContext* shareContext)
if (!d->gpm)
return false;
}
- QString glxExt = QLatin1String(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS));
- if (glxExt.contains(QLatin1String("GLX_SGI_video_sync"))) {
+ QList<QByteArray> glxExt = QByteArray(glXQueryExtensionsString(xinfo->display(), xinfo->screen())).split(' ');
+ if (glxExt.contains("GLX_SGI_video_sync")) {
if (d->glFormat.swapInterval() == -1)
d->glFormat.setSwapInterval(0);
} else {
@@ -874,8 +874,9 @@ void QGLContext::swapBuffers() const
static qt_glXWaitVideoSyncSGI glXWaitVideoSyncSGI = 0;
static bool resolved = false;
if (!resolved) {
- QString glxExt = QLatin1String(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS));
- if (glxExt.contains(QLatin1String("GLX_SGI_video_sync"))) {
+ const QX11Info *xinfo = qt_x11Info(d->paintDevice);
+ QList<QByteArray> glxExt = QByteArray(glXQueryExtensionsString(xinfo->display(), xinfo->screen())).split(' ');
+ if (glxExt.contains("GLX_SGI_video_sync")) {
glXGetVideoSyncSGI = (qt_glXGetVideoSyncSGI)qglx_getProcAddress("glXGetVideoSyncSGI");
glXWaitVideoSyncSGI = (qt_glXWaitVideoSyncSGI)qglx_getProcAddress("glXWaitVideoSyncSGI");
}
@@ -1106,8 +1107,8 @@ void *QGLContext::getProcAddress(const QString &proc) const
if (resolved && !glXGetProcAddressARB)
return 0;
if (!glXGetProcAddressARB) {
- QString glxExt = QLatin1String(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS));
- if (glxExt.contains(QLatin1String("GLX_ARB_get_proc_address"))) {
+ QList<QByteArray> glxExt = QByteArray(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS)).split(' ');
+ if (glxExt.contains("GLX_ARB_get_proc_address")) {
#if defined(Q_OS_LINUX) || defined(Q_OS_BSD4)
void *handle = dlopen(NULL, RTLD_LAZY);
if (handle) {
@@ -1594,7 +1595,7 @@ typedef void (*qt_glXReleaseTexImageEXT)(Display*, GLXDrawable, int);
static qt_glXBindTexImageEXT glXBindTexImageEXT = 0;
static qt_glXReleaseTexImageEXT glXReleaseTexImageEXT = 0;
-bool qt_resolveTextureFromPixmap()
+static bool qt_resolveTextureFromPixmap(QPaintDevice *paintDevice)
{
static bool resolvedTextureFromPixmap = false;
@@ -1607,9 +1608,9 @@ bool qt_resolveTextureFromPixmap()
{
return false; // Can't use TFP without NPOT
}
-
- QString glxExt = QLatin1String(glXGetClientString(QX11Info::display(), GLX_EXTENSIONS));
- if (glxExt.contains(QLatin1String("GLX_EXT_texture_from_pixmap"))) {
+ const QX11Info *xinfo = qt_x11Info(paintDevice);
+ QList<QByteArray> glxExt = QByteArray(glXQueryExtensionsString(xinfo->display(), xinfo->screen())).split(' ');
+ if (glxExt.contains("GLX_EXT_texture_from_pixmap")) {
glXBindTexImageEXT = (qt_glXBindTexImageEXT) qglx_getProcAddress("glXBindTexImageEXT");
glXReleaseTexImageEXT = (qt_glXReleaseTexImageEXT) qglx_getProcAddress("glXReleaseTexImageEXT");
}
@@ -1630,7 +1631,7 @@ QGLTexture *QGLContextPrivate::bindTextureFromNativePixmap(QPixmapData *pmd, con
Q_ASSERT(pmd->classId() == QPixmapData::X11Class);
- if (!qt_resolveTextureFromPixmap())
+ if (!qt_resolveTextureFromPixmap(paintDevice))
return 0;
QX11PixmapData *pixmapData = static_cast<QX11PixmapData*>(pmd);
diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index 9269164..36ee22c 100644
--- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -1286,8 +1286,9 @@ void tst_QGraphicsProxyWidget::paintEvent()
QGraphicsScene scene;
QGraphicsView view(&scene);
view.show();
+ QApplication::setActiveWindow(&view);
QTest::qWaitForWindowShown(&view);
- QTest::qWait(70);
+ QTRY_VERIFY(view.isActiveWindow());
SubQGraphicsProxyWidget proxy;
@@ -1298,14 +1299,14 @@ void tst_QGraphicsProxyWidget::paintEvent()
w->show();
QTest::qWaitForWindowShown(w);
QApplication::processEvents();
- QTest::qWait(100);
+ QTest::qWait(30);
proxy.setWidget(w);
scene.addItem(&proxy);
//make sure we flush all the paint events
- QTest::qWait(70);
+ QTest::qWait(30);
QTRY_VERIFY(proxy.paintCount > 1);
- QTest::qWait(110);
+ QTest::qWait(30);
proxy.paintCount = 0;
w->update();
@@ -2573,20 +2574,22 @@ void tst_QGraphicsProxyWidget::changingCursor_basic()
proxy->setWidget(widget);
proxy->show();
scene.addItem(proxy);
+ QApplication::setActiveWindow(&view);
QTest::qWaitForWindowShown(&view);
QApplication::processEvents();
+ QTRY_VERIFY(view.isActiveWindow());
// in
QTest::mouseMove(view.viewport(), view.mapFromScene(proxy->mapToScene(proxy->boundingRect().center())));
sendMouseMove(view.viewport(), view.mapFromScene(proxy->mapToScene(proxy->boundingRect().center())));
- QTest::qWait(125);
- QCOMPARE(view.viewport()->cursor().shape(), Qt::IBeamCursor);
+ QTest::qWait(12);
+ QTRY_COMPARE(view.viewport()->cursor().shape(), Qt::IBeamCursor);
// out
QTest::mouseMove(view.viewport(), QPoint(1, 1));
sendMouseMove(view.viewport(), QPoint(1, 1));
- QTest::qWait(125);
- QCOMPARE(view.viewport()->cursor().shape(), Qt::ArrowCursor);
+ QTest::qWait(12);
+ QTRY_COMPARE(view.viewport()->cursor().shape(), Qt::ArrowCursor);
#endif
}
@@ -2746,10 +2749,12 @@ void tst_QGraphicsProxyWidget::windowOpacity()
widget->resize(100, 100);
QGraphicsProxyWidget *proxy = scene.addWidget(widget);
proxy->setCacheMode(QGraphicsItem::ItemCoordinateCache);
+
+ QApplication::setActiveWindow(&view);
view.show();
QTest::qWaitForWindowShown(&view);
QApplication::sendPostedEvents();
- QTest::qWait(150);
+ QTRY_VERIFY(view.isActiveWindow());
qRegisterMetaType<QList<QRectF> >("QList<QRectF>");
QSignalSpy signalSpy(&scene, SIGNAL(changed(const QList<QRectF> &)));
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 58f059b..4fc6dd3 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -3653,7 +3653,9 @@ void tst_QTreeView::doubleClickedWithSpans()
view.setModel(&model);
view.setFirstColumnSpanned(0, QModelIndex(), true);
view.show();
+ QApplication::setActiveWindow(&view);
QTest::qWaitForWindowShown(&view);
+ QTRY_VERIFY(view.isActiveWindow());
QPoint p(10, 10);
QCOMPARE(view.indexAt(p), model.index(0, 0));