--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Tue May 11 16:30:11 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Tue May 25 13:01:47 2010 +0300
@@ -66,6 +66,8 @@
TN_DEBUG1( "CThumbAGProcessor::ConstructL() - begin" );
iTMSession = CThumbnailManager::NewL( *this );
+ iTMSession->SetRequestObserver(*this);
+
iQueryAllItems = NULL;
iQueryPlaceholders = NULL;
iQuery = NULL;
@@ -116,11 +118,13 @@
{
TN_DEBUG1( "CThumbAGProcessor::~CThumbAGProcessor() - begin" );
- if(iForegroundGenerationObserver)
- {
- delete iForegroundGenerationObserver;
- iForegroundGenerationObserver = NULL;
- }
+ Cancel();
+
+ if(iPeriodicTimer)
+ {
+ iPeriodicTimer->Cancel();
+ delete iPeriodicTimer;
+ }
if(iActivityManager)
{
@@ -128,19 +132,27 @@
iActivityManager = NULL;
}
- if (iInactivityTimer)
+ if (iQuery)
{
- iInactivityTimer->Cancel();
- delete iInactivityTimer;
- iInactivityTimer = NULL;
+ iQuery->Cancel();
+ delete iQuery;
+ iQuery = NULL;
}
- if(iPeriodicTimer)
+ if(iQueryPlaceholders)
{
- iPeriodicTimer->Cancel();
- delete iPeriodicTimer;
+ iQueryPlaceholders->Cancel();
+ delete iQueryPlaceholders;
+ iQueryPlaceholders = NULL;
}
+ if (iQueryAllItems)
+ {
+ iQueryAllItems->Cancel();
+ delete iQueryAllItems;
+ iQueryAllItems = NULL;
+ }
+
if (!iInit)
{
#ifdef MDS_MODIFY_OBSERVER
@@ -149,35 +161,18 @@
#endif
}
+ if(iForegroundGenerationObserver)
+ {
+ delete iForegroundGenerationObserver;
+ iForegroundGenerationObserver = NULL;
+ }
+
if ( iCollectionUtility )
{
iCollectionUtility->Close();
iCollectionUtility = NULL;
}
- Cancel();
-
- if(iQueryPlaceholders)
- {
- iQueryPlaceholders->Cancel();
- delete iQueryPlaceholders;
- iQueryPlaceholders = NULL;
- }
-
- if (iQuery)
- {
- iQuery->Cancel();
- delete iQuery;
- iQuery = NULL;
- }
-
- if (iQueryAllItems)
- {
- iQueryAllItems->Cancel();
- delete iQueryAllItems;
- iQueryAllItems = NULL;
- }
-
iAddQueue.Close();
iModifyQueue.Close();
iRemoveQueue.ResetAndDestroy();
@@ -188,6 +183,7 @@
if (iTMSession)
{
+ iTMSession->RemoveRequestObserver();
delete iTMSession;
iTMSession = NULL;
}
@@ -435,6 +431,29 @@
TN_DEBUG1( "CThumbAGProcessor::ThumbnailReady() - end" );
}
+// -----------------------------------------------------------------------------
+// CThumbAGProcessor::ThumbnailRequestReady()
+// -----------------------------------------------------------------------------
+//
+void CThumbAGProcessor::ThumbnailRequestReady( TInt /*aError*/, TThumbnailRequestType aRequestType,
+ TThumbnailRequestId /*aId*/ )
+ {
+ if (aRequestType == ERequestDeleteThumbnails)
+ {
+ TN_DEBUG1( "CThumbAGProcessor::ThumbnailRequestReady() - delete" );
+
+ iActiveCount--;
+
+ if(iActiveCount <= 0)
+ {
+ iActiveCount = 0;
+ iActive = EFalse;
+ }
+
+ ActivateAO();
+ }
+ }
+
// ---------------------------------------------------------------------------
// CThumbAGProcessor::SetMdESession()
// ---------------------------------------------------------------------------
@@ -665,10 +684,20 @@
}
}
- // 9.2 specific
- if( !(imageObjectDef.Id() == aObject->Def().Id() || videoObjectDef.Id() == aObject->Def().Id()) )
+ /*CMdEProperty* inDefaultFolder = NULL;
+ TBool inDefaultFolderVal(ETrue);
+ TInt inDefaultFolderErr = aObject->Property( baseObjDef.GetPropertyDefL( MdeConstants::Object::KInDefaultFolder ), inDefaultFolder, 0 );
+
+ if(inDefaultFolder && inDefaultFolderErr >= 0 )
{
- TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() 1st round and not image or video, skip");
+ inDefaultFolderVal = inDefaultFolder->BoolValueL();
+ }*/
+
+ // Symbian^3 specific
+ if( !(( imageObjectDef.Id() == aObject->Def().Id() || videoObjectDef.Id() == aObject->Def().Id())
+ /*&& inDefaultFolderVal*/ ) )
+ {
+ TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() 1st round; not image or video in default folder, skip");
ActivateAO();
return;
}
@@ -935,6 +964,7 @@
}
else
{
+ iTMSession->SetRequestObserver(*this);
iSessionDied = EFalse;
}
}
@@ -1110,9 +1140,10 @@
iRemoveQueue.Remove( 0 );
delete source;
delete uri;
+
+ iActiveCount++;
+ iActive = ETrue;
}
-
- ActivateAO();
}
else if( i2ndRoundGenerateQueue.Count() > 0)
{
@@ -1133,7 +1164,7 @@
//
void CThumbAGProcessor::DeleteAndCancelQuery(TBool aRestoreItems)
{
- TN_DEBUG1( "CThumbAGProcessor::DeleteAndCancelQuery() in" );
+ TN_DEBUG2( "CThumbAGProcessor::DeleteAndCancelQuery(aRestoreItems = %d) in", aRestoreItems );
if(iQuery)
{
@@ -1728,7 +1759,8 @@
{
iIdle = ETrue;
- if(iAddQueue.Count() + iModifyQueue.Count() + iRemoveQueue.Count() + i2ndRoundGenerateQueue.Count() > 0 )
+ if(iAddQueue.Count() + iModifyQueue.Count() + iRemoveQueue.Count() +
+ iQueryQueue.Count() + i2ndRoundGenerateQueue.Count() > 0 )
{
ActivateAO();
}