diff -r 420f6808bf21 -r f9e827349359 photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp --- a/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp Wed Jun 09 09:41:51 2010 +0300 +++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp Mon Jun 21 15:40:32 2010 +0300 @@ -34,20 +34,22 @@ // ----------------------------------------------------------------------------- // Constructor. // ----------------------------------------------------------------------------- -inline CShwThumbnailContext::CShwThumbnailContext( - TInt aIndex, TSize aSize ) : iSize(aSize), iCurrentIndex( aIndex ) +inline CShwThumbnailContext::CShwThumbnailContext(TInt aIndex, TSize aSize, + MGlxMediaList& aList) : + iSize(aSize), iCurrentIndex(aIndex), iList(aList) { } // ----------------------------------------------------------------------------- // NewLC. // ----------------------------------------------------------------------------- -CShwThumbnailContext* CShwThumbnailContext::NewLC( TInt aIndex, TSize aSize ) +CShwThumbnailContext* CShwThumbnailContext::NewLC(TInt aIndex, TSize aSize, + MGlxMediaList& aList) { TRACER("CShwThumbnailContext::NewLC"); GLX_LOG_INFO1( "CShwThumbnailContext::NewL, aIndex=%d", aIndex ); CShwThumbnailContext* self = - new (ELeave) CShwThumbnailContext( aIndex, aSize ); + new (ELeave) CShwThumbnailContext( aIndex, aSize, aList ); CleanupStack::PushL( self ); self->ConstructL(); return self; @@ -59,7 +61,6 @@ void CShwThumbnailContext::ConstructL() { TRACER("CShwThumbnailContext::ConstructL"); - GLX_LOG_INFO("CShwThumbnailContext::ConstructL"); // Create the high quality / slower context iHighQualityContext = CGlxThumbnailContext::NewL( this ); // Call both setdefault and add @@ -76,7 +77,6 @@ CShwThumbnailContext::~CShwThumbnailContext() { TRACER("CShwThumbnailContext::~CShwThumbnailContext"); - GLX_LOG_INFO( "CShwThumbnailContext::~CShwThumbnailContext" ); delete iHighQualityContext; } @@ -86,7 +86,6 @@ void CShwThumbnailContext::SetToFirst( const MGlxMediaList* /*aList*/ ) { TRACER("CShwThumbnailContext::SetToFirst"); - GLX_LOG_INFO( "CShwThumbnailContext::SetToFirst" ); // reset iterator state iIterated = EFalse; } @@ -97,19 +96,19 @@ TInt CShwThumbnailContext::operator++( TInt ) { TRACER("CShwThumbnailContext::operator++"); - GLX_LOG_INFO( "CShwThumbnailContext::operator++" ); // we want to load all the thumbnails our clients have requested // notification on, nothing else // by default tell the thumbnail that we dont have any interesting indexes TInt wantedIndex = KErrNotFound; - // check if we were asked already - if( !iIterated ) - { - // we want to load thumbnail for the specified index + TInt count = iList.Count(); + // check if we were asked already and guard conditions + if( !iIterated && (count > 0) && (iCurrentIndex < count)) + { wantedIndex = iCurrentIndex; iIterated = ETrue; } // finally return the index that was wanted + GLX_LOG_INFO1("CShwThumbnailContext::operator++ wantedIndex %d",wantedIndex); return wantedIndex; } @@ -119,7 +118,6 @@ TBool CShwThumbnailContext::InRange( TInt aIndex ) const { TRACER("CShwThumbnailContext::InRange"); - GLX_LOG_INFO( "CShwThumbnailContext::InRange" ); // if we got notifications if ( aIndex == iCurrentIndex ) { @@ -137,7 +135,6 @@ TInt CShwThumbnailContext::RequestCountL(const MGlxMediaList* aList) const { TRACER("CShwThumbnailContext::RequestCountL"); - GLX_LOG_INFO( "CShwThumbnailContext::RequestCountL" ); return iHighQualityContext->RequestCountL( aList ); } @@ -157,6 +154,5 @@ MGlxFetchContext* CShwThumbnailContext::Context() { TRACER("CShwThumbnailContext::Context"); - GLX_LOG_INFO( "CShwThumbnailContext::Context" ); return iHighQualityContext; }