photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp
branchRCL_3
changeset 35 420f6808bf21
parent 32 78ad99c24f08
child 57 ea65f74e6de4
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Tue May 25 12:42:31 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Wed Jun 09 09:41:51 2010 +0300
@@ -54,29 +54,31 @@
 // ---------------------------------------------------------------------------
 //
 CGlxGridViewContainer* CGlxGridViewContainer::NewL(MGlxMediaList *aMediaList,
-														CGlxUiUtility* aUiUtility,
-																	MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar)
-	{
-	TRACER("CGlxGridViewContainer::NewL");
-	CGlxGridViewContainer* self = CGlxGridViewContainer::NewLC(aMediaList,aUiUtility,aObserver,aToolbar) ;
-	CleanupStack::Pop(self) ;
-	return self ;
-	}
+        CGlxUiUtility* aUiUtility, MGlxGridEventObserver& aObserver,
+        CAknToolbar* aToolbar)
+    {
+    TRACER("CGlxGridViewContainer::NewL");
+    CGlxGridViewContainer* self = CGlxGridViewContainer::NewLC(aMediaList,
+            aUiUtility, aObserver, aToolbar);
+    CleanupStack::Pop(self);
+    return self;
+    }
 	
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
-CGlxGridViewContainer* CGlxGridViewContainer::NewLC(MGlxMediaList *aMediaList,
-														CGlxUiUtility* aUiUtility,
-																	MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar)
-	{
-	TRACER("CGlxGridViewContainer::NewLC");
-	CGlxGridViewContainer* self = new(ELeave) CGlxGridViewContainer(aMediaList,aUiUtility,aObserver,aToolbar);
-	CleanupStack::PushL(self ) ;
-	self->ConstructL() ;
-	return self ;
-	}
+CGlxGridViewContainer* CGlxGridViewContainer::NewLC(
+        MGlxMediaList *aMediaList, CGlxUiUtility* aUiUtility,
+        MGlxGridEventObserver& aObserver, CAknToolbar* aToolbar)
+    {
+    TRACER("CGlxGridViewContainer::NewLC");
+    CGlxGridViewContainer* self = new (ELeave) CGlxGridViewContainer(
+            aMediaList, aUiUtility, aObserver, aToolbar);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
 	
 // ---------------------------------------------------------------------------
 // Destructor
@@ -84,8 +86,7 @@
 //
 CGlxGridViewContainer::~CGlxGridViewContainer()
 	{
-	TRACER("CGlxGridViewContainer::~CGlxGridViewContainer");
-	
+	TRACER("CGlxGridViewContainer::~CGlxGridViewContainer");	
 	delete iMMCNotifier;
 	iMMCNotifier = NULL;
 	
@@ -125,12 +126,14 @@
 // might leave.
 // ---------------------------------------------------------------------------
 //
-CGlxGridViewContainer::CGlxGridViewContainer(MGlxMediaList *aMediaList,CGlxUiUtility* aUiUtility,
-																MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar)
-					: iMediaList(aMediaList),iUiUtility(aUiUtility),iGlxGridViewObserver(aObserver),iToolbar(aToolbar)
-		{
-		TRACER("CGlxGridViewContainer::CGlxGridViewContainer");
-		}
+CGlxGridViewContainer::CGlxGridViewContainer(MGlxMediaList *aMediaList,
+        CGlxUiUtility* aUiUtility, MGlxGridEventObserver& aObserver,
+        CAknToolbar* aToolbar) :
+    iMediaList(aMediaList), iUiUtility(aUiUtility), iGlxGridViewObserver(
+            aObserver), iToolbar(aToolbar)
+    {
+    TRACER("CGlxGridViewContainer::CGlxGridViewContainer");
+    }
 	
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
@@ -139,7 +142,6 @@
 void CGlxGridViewContainer::ConstructL()
 	{
 	TRACER("CGlxGridViewContainer::ConstructL()");
-
 	//create the container window.
 	CreateWindowL();
 
@@ -340,7 +342,6 @@
 void CGlxGridViewContainer::HandleOpenL( TInt aIndex )
 	{
     TRACER("CGlxGridViewContainer::HandleOpenL()");
-
 	// Make sure that the Selection Index is inside medialist count
 	if (aIndex <iMediaList->Count() && aIndex >=0)
 		{
@@ -382,7 +383,6 @@
 void CGlxGridViewContainer::CreateHgGridWidgetL()
 	{
 	TRACER("CGlxGridViewContainer::CreateHgGridWidgetL()");
-
 	TInt mediaCount = iMediaList->Count();
     GLX_DEBUG2("GlxGrid: CHgGrid::CreateHgGridWidgetL() "
             "mediaCount(%d)", mediaCount);
@@ -452,25 +452,27 @@
 //
 TRect CGlxGridViewContainer::GetHgGridRect()
     {
-    TRACER("CGlxGridViewContainer::GetHgGridRect()");
-    
+    TRACER("CGlxGridViewContainer::GetHgGridRect()");    
     TRect clientrect = iEikonEnv->EikAppUi()->ClientRect();
-    TRect apprect = iEikonEnv->EikAppUi()->ApplicationRect();	
-    if(apprect.Height()>apprect.Width())
+    TRect apprect = iEikonEnv->EikAppUi()->ApplicationRect();
+    if (apprect.Height() > apprect.Width())
         {
         //portrait:
         //height : apprect height - (status pane height + toolbar height + cba height)
         //width remains 360.
-        clientrect.SetHeight(apprect.Height() - ((clientrect.iTl.iY) + (iToolbar->Size().iHeight) + (iEikonEnv->AppUiFactory()->Cba()->Rect().Height())));
+        clientrect.SetHeight(apprect.Height() - ((clientrect.iTl.iY)
+                + (iToolbar->Size().iHeight)
+                + (iEikonEnv->AppUiFactory()->Cba()->Rect().Height())));
         }
     else
         {
         //Landscape:
         //height : apprect - (status pane height + cba height)
         //width  : apprect width - toolbarwidth.
-        clientrect.SetHeight(apprect.Height() - ((clientrect.iTl.iY) + (iEikonEnv->AppUiFactory()->Cba()->Rect().Height())));
+        clientrect.SetHeight(apprect.Height() - ((clientrect.iTl.iY)
+                + (iEikonEnv->AppUiFactory()->Cba()->Rect().Height())));
         clientrect.SetWidth(apprect.Width() - iToolbar->Size().iWidth);
-        }        
+        }
     return clientrect;
     }
 // ---------------------------------------------------------------------------
@@ -593,7 +595,8 @@
 		iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap));
 		GLX_LOG_INFO1("### CGlxGridViewContainer::SetIconsL speedTn-Index is %d",index);
 		}
-	else if ((KErrCANoRights ==tnError) || (KErrDiskFull ==tnError))
+	else if ((KErrCANoRights ==tnError) || (KErrDiskFull ==tnError)
+	        || (item.Category() == EMPXVideo && KErrNone != tnError))
 		{
 		/*
 		 * this is a safe code added to show default
@@ -608,45 +611,19 @@
 		 * In such a case we need to show default thumbnails instead of corrupted. 
 		 * 
 		 */
-		GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_defaultthumbnail tnError(%d), i(%d)",
-				tnError, index);
-        CFbsBitmap* bitmap = NULL;
-        CFbsBitmap* mask = NULL;
-        AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone,
-                bitmap, mask, iIconsFileName, EMbmGlxiconsQgn_prop_image_notcreated,
+		GLX_LOG_INFO2(
+                "CGlxGridViewContainer::SetIconsL - image_defaultthumbnail tnError(%d), i(%d)",
+                tnError, index);
+        SetIconL(index, EMbmGlxiconsQgn_prop_image_notcreated,
                 EMbmGlxiconsQgn_prop_image_notcreated_mask);
-        __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer));
-        __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer));
-
-        AknIconUtils::SetSize(bitmap, iHgGridImageSize,
-                EAspectRatioPreservedAndUnusedSpaceRemoved);
-        AknIconUtils::SetSize(mask, iHgGridImageSize,
-                EAspectRatioPreservedAndUnusedSpaceRemoved);
-
-        iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap, mask));
-        CleanupStack::Pop(mask); 
-        CleanupStack::Pop(bitmap); 
 		}
    else if(KErrNone != tnError)
         {
-        GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)",
+        GLX_LOG_INFO2(
+                "CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)",
                 tnError, index);
-        CFbsBitmap* bitmap = NULL;
-        CFbsBitmap* mask = NULL;
-        AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone,
-                bitmap, mask, iIconsFileName, EMbmGlxiconsQgn_prop_image_corrupted,
+        SetIconL(index, EMbmGlxiconsQgn_prop_image_corrupted,
                 EMbmGlxiconsQgn_prop_image_corrupted_mask);
-        __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer));
-        __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer));
-
-        AknIconUtils::SetSize(bitmap, iHgGridImageSize,
-                EAspectRatioPreservedAndUnusedSpaceRemoved);
-        AknIconUtils::SetSize(mask, iHgGridImageSize,
-                EAspectRatioPreservedAndUnusedSpaceRemoved);
-
-        iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap, mask));
-        CleanupStack::Pop(mask);
-        CleanupStack::Pop(bitmap);
         }
 
 	if (item.IsDrmProtected())
@@ -699,7 +676,32 @@
 		iHgGrid->ItemL(index).SetFlags(CHgItem::EHgItemFlagsVideo);
 		}
 	}
-   
+
+// ----------------------------------------------------------------------------
+// SetIconL
+// ----------------------------------------------------------------------------
+//  
+void CGlxGridViewContainer::SetIconL(TInt aItemIndex, TInt aBitmapId,
+        TInt aMaskId)
+    {
+    TRACER("CGlxGridViewContainer::SetIconL()");
+    CFbsBitmap* bitmap = NULL;
+    CFbsBitmap* mask = NULL;
+    TSize setSize = CHgGrid::PreferredImageSize();
+    AknsUtils::CreateIconLC(AknsUtils::SkinInstance(), KAknsIIDNone, bitmap,
+            mask, iIconsFileName, aBitmapId, aMaskId);
+    __ASSERT_DEBUG(bitmap, Panic(EGlxPanicNullPointer));
+    __ASSERT_DEBUG(mask, Panic(EGlxPanicNullPointer));
+
+    AknIconUtils::SetSize(bitmap, setSize,
+            EAspectRatioPreservedAndUnusedSpaceRemoved);
+    AknIconUtils::SetSize(mask, setSize,
+            EAspectRatioPreservedAndUnusedSpaceRemoved);
+
+    iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap, mask));
+    CleanupStack::Pop(mask);
+    CleanupStack::Pop(bitmap);
+    }   
         
 // -----------------------------------------------------------------------------
 // MopSupplyObject