imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp
changeset 15 7197e789b953
parent 14 2edacbf5d3f9
child 17 ffa62e555b02
equal deleted inserted replaced
14:2edacbf5d3f9 15:7197e789b953
   160         CleanupStack::PopAndDestroy( 3, &file );
   160         CleanupStack::PopAndDestroy( 3, &file );
   161     );
   161     );
   162     return result;
   162     return result;
   163 }
   163 }
   164 
   164 
       
   165 int ThumbnailManagerPrivate::setThumbnail( const QImage& source, const QString& fileName, 
       
   166         void * clientData, int priority )
       
   167 {
       
   168     int result( -1 );
       
   169     RBuf file;
       
   170     _LIT( mime, "image/png" );
       
   171 
       
   172     if( !byteArray ){
       
   173         byteArray = new QByteArray();
       
   174     }
       
   175     QBuffer buffer( byteArray );
       
   176     buffer.open( QBuffer::ReadWrite );
       
   177     QDataStream dataStream( &buffer );
       
   178 
       
   179     dataStream << source;
       
   180 
       
   181     int offset = ( dataStream.version() >= 5 ? 4 : 0 );
       
   182     
       
   183     TRAP_IGNORE( 
       
   184         CleanupClosePushL( file );
       
   185         file.CreateL( fileName.length() );
       
   186         file.Copy( fileName.utf16(), fileName.length() );
       
   187 
       
   188         HBufC* mimetype = HBufC::NewLC( 9 );
       
   189         mimetype->Des() = mime();
       
   190 
       
   191         TPtrC8* ptr = new TPtrC8( reinterpret_cast<const TUint8*>( byteArray->data() + offset ), byteArray->count() - offset );
       
   192                 
       
   193         CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( ptr, *mimetype, file );
       
   194         result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority );
       
   195         CleanupStack::PopAndDestroy( 3, &file );
       
   196     );
       
   197     
       
   198     return result;
       
   199 }
       
   200 
   165 void ThumbnailManagerPrivate::deleteThumbnails( const QString& fileName )
   201 void ThumbnailManagerPrivate::deleteThumbnails( const QString& fileName )
   166 {
   202 {
   167     QString symbFileName( fileName );
   203     QString symbFileName( fileName );
   168 
   204 
   169     if( symbFileName.contains( "/" ) )
   205     if( symbFileName.contains( "/" ) )