diff -r 2edacbf5d3f9 -r 7197e789b953 imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp Fri Mar 19 09:35:30 2010 +0200 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp Fri Apr 16 15:16:16 2010 +0300 @@ -162,6 +162,42 @@ return result; } +int ThumbnailManagerPrivate::setThumbnail( const QImage& source, const QString& fileName, + void * clientData, int priority ) +{ + int result( -1 ); + RBuf file; + _LIT( mime, "image/png" ); + + if( !byteArray ){ + byteArray = new QByteArray(); + } + QBuffer buffer( byteArray ); + buffer.open( QBuffer::ReadWrite ); + QDataStream dataStream( &buffer ); + + dataStream << source; + + int offset = ( dataStream.version() >= 5 ? 4 : 0 ); + + TRAP_IGNORE( + CleanupClosePushL( file ); + file.CreateL( fileName.length() ); + file.Copy( fileName.utf16(), fileName.length() ); + + HBufC* mimetype = HBufC::NewLC( 9 ); + mimetype->Des() = mime(); + + TPtrC8* ptr = new TPtrC8( reinterpret_cast( byteArray->data() + offset ), byteArray->count() - offset ); + + CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( ptr, *mimetype, file ); + result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority ); + CleanupStack::PopAndDestroy( 3, &file ); + ); + + return result; +} + void ThumbnailManagerPrivate::deleteThumbnails( const QString& fileName ) { QString symbFileName( fileName );