imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp
changeset 30 b67379558a75
parent 25 cb86b71cae0a
--- a/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp	Wed Jun 23 18:33:48 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp	Tue Jul 06 14:37:18 2010 +0300
@@ -123,6 +123,7 @@
         CleanupClosePushL( buf );
         buf.CreateL( symbFileName.length() );
         buf.Copy( symbFileName.utf16(), symbFileName.length() );
+        
         CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( buf, KNullDesC );
         result = iThumbnailManager->GetThumbnailL( *objSrc, clientData, priority );
         CleanupStack::PopAndDestroy( 2, &buf );
@@ -216,6 +217,53 @@
     return result;
 }
 
+int ThumbnailManagerPrivate::setThumbnail( const QString& sourceFileName, const QString& targetFileName,
+        const QString& mimeType, void * clientData, int priority )
+{
+    int result( -1 );
+    QString symbSourceFile( sourceFileName );
+    QString symbTargetFile( targetFileName );
+    RBuf sourceFile;
+    RBuf targetFile;
+    RBuf mime;
+
+    priority = convertPriority(priority);
+    
+    if( symbSourceFile.contains( "/" ) )
+        symbSourceFile.replace( "/", "\\", Qt::CaseSensitive );
+    
+    if( symbTargetFile.contains( "/" ) )
+        symbTargetFile.replace( "/", "\\", Qt::CaseSensitive );
+    
+    TRAP_IGNORE( 
+        CleanupClosePushL( sourceFile );
+        sourceFile.CreateL( symbSourceFile.length() );
+        sourceFile.Copy( symbSourceFile.utf16(), symbSourceFile.length() );
+        
+        CleanupClosePushL( targetFile );
+        targetFile.CreateL( symbTargetFile.length() );
+        targetFile.Copy( symbTargetFile.utf16(), symbTargetFile.length() );
+        
+        CleanupClosePushL( mime );
+        
+        if (mimeType.length())
+            {
+            mime.CreateL( mimeType.length() );
+            mime.Copy( mimeType.utf16(), mimeType.length() );
+            }
+        else
+            {
+            mime.Assign(KNullDesC().AllocL());
+            }
+                
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( sourceFile, targetFile, mime );
+        result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority );
+        CleanupStack::PopAndDestroy( 4, &sourceFile );
+    );
+    
+    return result;
+}
+
 void ThumbnailManagerPrivate::deleteThumbnails( const QString& fileName )
 {
     QString symbFileName( fileName );