videocollection/videocollectionwrapper/src/videothumbnaildata_p.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
--- a/videocollection/videocollectionwrapper/src/videothumbnaildata_p.cpp	Thu Apr 01 23:22:15 2010 +0300
+++ b/videocollection/videocollectionwrapper/src/videothumbnaildata_p.cpp	Thu Apr 01 23:32:44 2010 +0300
@@ -20,6 +20,8 @@
 #include <qpixmap.h>
 #include <qtimer.h>
 #include <mpxmediageneraldefs.h>
+#include <hbicon.h>
+
 #include <vcxmyvideosdefs.h>
 
 #include "videothumbnaildata_p.h"
@@ -58,8 +60,6 @@
 //
 VideoThumbnailDataPrivate::VideoThumbnailDataPrivate() :
     mThumbnailFetcher(0),
-    mDefaultTnVideo(0),
-    mDefaultTnCategory(0),
     mCurrentModel(0),
     mCurrentFetchIndex(0),
     mCurrentBackgroundFetchCount(0),
@@ -417,18 +417,62 @@
 //
 const QIcon* VideoThumbnailDataPrivate::defaultThumbnail(TMPXItemId mediaId)
 {
-    // Is thumbnail for a video or a category.
+    const TMPXItemId defaultIdVideo(KMaxTUint32-1, KVcxMvcMediaTypeVideo);
+    const TMPXItemId defaultIdAlbum(KMaxTUint32-1, KVcxMvcMediaTypeAlbum);
+    const TMPXItemId defaultIdDownloads(KVcxMvcCategoryIdDownloads, KVcxMvcMediaTypeCategory);
+    const TMPXItemId defaultIdCaptured(KVcxMvcCategoryIdCaptured, KVcxMvcMediaTypeCategory);
+
+    // Default thumbnail for video
     if(mediaId.iId2 == KVcxMvcMediaTypeVideo) 
     {
-        if(!mDefaultTnVideo)
-            mDefaultTnVideo = new QIcon(":/icons/default_thumbnail_video.svg");
-        return mDefaultTnVideo;
+        if(!mDefaultThumbnails.contains(defaultIdVideo))
+        {
+            mDefaultThumbnails[defaultIdVideo] = HbIcon(":/icons/default_thumbnail_video.svg");
+        }
+        return &mDefaultThumbnails[defaultIdVideo].qicon();
     }
     else
     {
-        if(!mDefaultTnCategory)
-            mDefaultTnCategory = new QIcon(":/icons/default_thumbnail_collection.svg");
-        return mDefaultTnCategory;
+        // Default thumbnail for user defined album.
+        if(mediaId.iId2 == KVcxMvcMediaTypeAlbum)
+        {
+            if(!mDefaultThumbnails.contains(defaultIdAlbum))
+            {
+                mDefaultThumbnails[defaultIdAlbum] = HbIcon(":/icons/default_thumbnail_collection.svg");
+            }
+            return &mDefaultThumbnails[defaultIdAlbum].qicon();
+        }
+
+        // Thumbnails for default collections.
+        switch(mediaId.iId1)
+        {
+            case KVcxMvcCategoryIdDownloads:
+            {
+                if(!mDefaultThumbnails.contains(defaultIdDownloads))
+                {
+                    mDefaultThumbnails[defaultIdDownloads] = HbIcon("qtg_large_video_download");
+                }
+                return &mDefaultThumbnails[defaultIdDownloads].qicon();
+            }
+            
+            case KVcxMvcCategoryIdCaptured:
+            {
+                if(!mDefaultThumbnails.contains(defaultIdCaptured))
+                {
+                    mDefaultThumbnails[defaultIdCaptured] = HbIcon("qtg_large_video_capture");
+                }
+                return &mDefaultThumbnails[defaultIdCaptured].qicon();
+            }
+
+            default:
+            {
+                if(!mDefaultThumbnails.contains(defaultIdAlbum))
+                {
+                    mDefaultThumbnails[defaultIdAlbum] = HbIcon(":/icons/default_thumbnail_collection.svg");
+                }
+                return &mDefaultThumbnails[defaultIdAlbum].qicon();
+            }
+        }
     }
 }
 
@@ -480,12 +524,7 @@
     // Clear data.
     mReadyThumbnailMediaIds.clear();
     mThumbnailData.clear();
-    
-    delete mDefaultTnVideo;
-    mDefaultTnVideo = 0;
-    
-    delete mDefaultTnCategory;
-    mDefaultTnCategory = 0;
+    mDefaultThumbnails.clear();
 }
 
 // -----------------------------------------------------------------------------