diff -r f7f0874bfe7d -r 6b87b143d312 photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp --- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Tue Feb 02 10:12:14 2010 +0200 +++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp Fri Feb 19 22:51:01 2010 +0200 @@ -19,7 +19,7 @@ #include #include #include - +#include // Ganes Headers #include // Gul Icons #include // HG Items @@ -55,10 +55,10 @@ // CGlxGridViewContainer* CGlxGridViewContainer::NewL(MGlxMediaList *aMediaList, CGlxUiUtility* aUiUtility, - MGlxGridEventObserver& aObserver) + MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar) { TRACER("CGlxGridViewContainer::NewL"); - CGlxGridViewContainer* self = CGlxGridViewContainer::NewLC(aMediaList,aUiUtility,aObserver) ; + CGlxGridViewContainer* self = CGlxGridViewContainer::NewLC(aMediaList,aUiUtility,aObserver,aToolbar) ; CleanupStack::Pop(self) ; return self ; } @@ -69,10 +69,10 @@ // CGlxGridViewContainer* CGlxGridViewContainer::NewLC(MGlxMediaList *aMediaList, CGlxUiUtility* aUiUtility, - MGlxGridEventObserver& aObserver) + MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar) { TRACER("CGlxGridViewContainer::NewLC"); - CGlxGridViewContainer* self = new(ELeave) CGlxGridViewContainer(aMediaList,aUiUtility,aObserver); + CGlxGridViewContainer* self = new(ELeave) CGlxGridViewContainer(aMediaList,aUiUtility,aObserver,aToolbar); CleanupStack::PushL(self ) ; self->ConstructL() ; return self ; @@ -122,8 +122,8 @@ // --------------------------------------------------------------------------- // CGlxGridViewContainer::CGlxGridViewContainer(MGlxMediaList *aMediaList,CGlxUiUtility* aUiUtility, - MGlxGridEventObserver& aObserver) - : iMediaList(aMediaList),iUiUtility(aUiUtility),iGlxGridViewObserver(aObserver) + MGlxGridEventObserver& aObserver,CAknToolbar* aToolbar) + : iMediaList(aMediaList),iUiUtility(aUiUtility),iGlxGridViewObserver(aObserver),iToolbar(aToolbar) { TRACER("CGlxGridViewContainer::CGlxGridViewContainer"); } @@ -380,9 +380,8 @@ CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, EMbmGlxiconsQgn_prop_image_notcreated); AknIconUtils::SetSize(bitmap, tnSize); - TRect rect = iEikonEnv->EikAppUi()->ClientRect(); // Create Hg grid object - iHgGrid = CHgGrid::NewL (rect,mediaCount,CGulIcon::NewL(bitmap)); + iHgGrid = CHgGrid::NewL (GetHgGridRect(),mediaCount,CGulIcon::NewL(bitmap)); } // Setting to MopParent to update background skin @@ -404,7 +403,33 @@ * note: don't push hggrid to the control stack */ } - +// --------------------------------------------------------------------------- +// GetHgGridRect +// --------------------------------------------------------------------------- +// +TRect CGlxGridViewContainer::GetHgGridRect() + { + TRACER("CGlxGridViewContainer::GetHgGridRect()"); + + TRect clientrect = iEikonEnv->EikAppUi()->ClientRect(); + 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()))); + } + 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.SetWidth(apprect.Width() - iToolbar->Size().iWidth); + } + return clientrect; + } // --------------------------------------------------------------------------- // CreateGridL // --------------------------------------------------------------------------- @@ -522,24 +547,20 @@ iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); GLX_LOG_INFO1("### CGlxGridViewContainer::SetIconsL speedTn-Index is %d",index); } - else if ( KErrNone != tnError && KErrNotSupported != tnError && KErrCANoRights !=tnError) + else if ((KErrCANoRights ==tnError) || (KErrDiskFull ==tnError)) { - GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)", - tnError, index); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_corrupted); - AknIconUtils::SetSize(bitmap, setSize); - iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); - } - else if (KErrCANoRights ==tnError) - { - /*fix for EABI-7RKHDG + /* * this is a safe code added to show default * TNM returns -17452 in case SD DRM files * this code is added as coming from other view to * gridview,it draws broken TN then the callback goes to * glxgridviewobserver and redraws a not-created TN. * with this part of code that TN swich will not be visible + * + * The same thing is needs to be done for the case when there is no + * disk space for the thumbnails to be created. + * 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); @@ -548,15 +569,16 @@ AknIconUtils::SetSize(bitmap, setSize); iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); } - else if(KErrNotSupported == tnError) - { - GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_defaultthumbnail tnError(%d), i(%d)", - tnError, index); - CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, - EMbmGlxiconsQgn_prop_image_corrupted); - AknIconUtils::SetSize(bitmap, setSize); - iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); - } + else if(KErrNone != tnError) + { + GLX_LOG_INFO2("CGlxGridViewContainer::SetIconsL - image_corrupted tnError(%d), i(%d)", + tnError, index); + CFbsBitmap* bitmap = AknIconUtils::CreateIconL(resFile, + EMbmGlxiconsQgn_prop_image_corrupted); + AknIconUtils::SetSize(bitmap, setSize); + iHgGrid->ItemL(index).SetIcon(CGulIcon::NewL(bitmap)); + } + if (item.IsDrmProtected()) { @@ -854,7 +876,7 @@ //@ fix for ESLM-7VRGKH if(iHgGrid) { - iHgGrid->InitScreenL(iEikonEnv->EikAppUi()->ClientRect()); + iHgGrid->InitScreenL(GetHgGridRect()); } retVal = ETrue; break; @@ -875,14 +897,23 @@ { TRACER("CGlxGridViewContainer::HandleResourceChange()"); CCoeControl::HandleResourceChange(aId); - if ( iBgContext ) - { - TRect apRect = iEikonEnv->EikAppUi()->ApplicationRect(); - iBgContext->SetRect( apRect ); - } - if(iHgGrid) - { - TRAP_IGNORE (iHgGrid->InitScreenL(iEikonEnv->EikAppUi()->ClientRect()); ) - } + switch (aId) + { + case KEikDynamicLayoutVariantSwitch: + { + if ( iBgContext ) + { + TRect apRect = iEikonEnv->EikAppUi()->ApplicationRect(); + iBgContext->SetRect( apRect ); + } + if(iHgGrid) + { + TRAP_IGNORE (iHgGrid->InitScreenL(GetHgGridRect());) + } + break; + } + default: + break; + } } //end of file