diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-08 18:42:53 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-08 18:42:53 (GMT) |
commit | 8fc05466a50bcf255900849d787790abd2bf6957 (patch) | |
tree | 41e4544008c194354dc925388e2826984df262f0 /src/plugins | |
parent | ca4213b45f5f65ebbc7e5143a2940f87c5ca28fa (diff) | |
parent | a6ccb1a72173cec6381d519a720dc08cfdc03720 (diff) | |
download | Qt-8fc05466a50bcf255900849d787790abd2bf6957.zip Qt-8fc05466a50bcf255900849d787790abd2bf6957.tar.gz Qt-8fc05466a50bcf255900849d787790abd2bf6957.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (21 commits)
Fix compilation of QMutableSetIterator::value() with QT_STRICT_ITERATORS
Fix the compilation error that the previous fix didn't fix
Use the thread-default glib context for the DBus connection in the ICD bearer manager.
Check that _POSIX_THREAD_SAFE_FUNCTIONS is larger than zero.
Use an increasing size for the getpwuid_r buffer.
Make sure we use at least 1024 bytes when calling getpwuid_r.
Fix compilation error: symbol is namespaced.
Don't crash when creating backtrace for built-in JS function (2nd try)
Revert "Improved performance of mapFromGlobal/mapToGlobal on X11"
QtDBus: do not wait for reply for AddMatch and RemoveMatch
Make qdbus show all types, even those that it doesn't know about
Doc: Fix the docs saying what the locale codec is used for
Autotest: simple improvements
Autotest: Use QElapsedTimer for timings
directfb: Pixmap creation always premultiplied the alpha even when it is already premultiplied in the image.
Don't crash when BMP color table is broken
Designer: Fix a crash in the Signal-Slot-Editor.
complain about unmatched quotes/parens
use const ref
move multiple inclusion check for feature files to correct location
...
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/bearer/icd/dbusdispatcher.cpp | 2 | ||||
-rw-r--r-- | src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp | 22 |
2 files changed, 5 insertions, 19 deletions
diff --git a/src/plugins/bearer/icd/dbusdispatcher.cpp b/src/plugins/bearer/icd/dbusdispatcher.cpp index 5f9be74..13cd8a9 100644 --- a/src/plugins/bearer/icd/dbusdispatcher.cpp +++ b/src/plugins/bearer/icd/dbusdispatcher.cpp @@ -468,7 +468,7 @@ void DBusDispatcher::setupDBus() d_ptr->signal_vtable.message_function = signalHandler; dbus_connection_set_exit_on_disconnect(d_ptr->connection, FALSE); - dbus_connection_setup_with_g_main(d_ptr->connection, NULL); + dbus_connection_setup_with_g_main(d_ptr->connection, g_main_context_get_thread_default()); dbus_connection_register_object_path(d_ptr->connection, d_ptr->signalPath.toLatin1(), &d_ptr->signal_vtable, diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp index 6639983..50e0f5f 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp @@ -300,40 +300,26 @@ void QDirectFBPixmapData::fromImage(const QImage &img, Qt::ImageConversionFlags { alpha = QDirectFBPixmapData::hasAlphaChannel(img, flags); imageFormat = alpha ? screen->alphaPixmapFormat() : screen->pixelFormat(); + QImage image; if ((flags & ~Qt::NoOpaqueDetection) != Qt::AutoColor) { image = img.convertToFormat(imageFormat, flags); flags = Qt::AutoColor; } else if (img.format() == QImage::Format_RGB32 || img.depth() == 1) { image = img.convertToFormat(imageFormat, flags); + } else if (img.format() != imageFormat) { + image = img.convertToFormat(imageFormat, flags); } else { image = img; } - IDirectFBSurface *imageSurface = screen->createDFBSurface(image, image.format(), QDirectFBScreen::DontTrackSurface); - if (!imageSurface) { - qWarning("QDirectFBPixmapData::fromImage()"); - invalidate(); - return; - } - - dfbSurface = screen->createDFBSurface(image.size(), imageFormat, QDirectFBScreen::TrackSurface); + dfbSurface = screen->createDFBSurface(image, image.format(), QDirectFBScreen::NoPreallocated | QDirectFBScreen::TrackSurface); if (!dfbSurface) { qWarning("QDirectFBPixmapData::fromImage()"); invalidate(); return; } - if (image.hasAlphaChannel()) { - dfbSurface->Clear(dfbSurface, 0, 0, 0, 0); - dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_BLEND_ALPHACHANNEL); - } else { - dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_NOFX); - } - - dfbSurface->Blit(dfbSurface, imageSurface, 0, 0, 0); - imageSurface->Release(imageSurface); - w = image.width(); h = image.height(); is_null = (w <= 0 || h <= 0); |