photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp
branchRCL_3
changeset 22 2dac0fdba72b
parent 18 bcb43dc84c44
child 30 a60acebbbd9d
--- a/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp	Wed Mar 31 21:31:03 2010 +0300
+++ b/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp	Wed Apr 14 15:57:24 2010 +0300
@@ -72,7 +72,7 @@
 CGlxProgressIndicator::~CGlxProgressIndicator()
     {
     TRACER("CGlxProgressIndicator::~CGlxProgressIndicator()");
-    if (iProgressbarTicker && iProgressbarTicker->IsActive())
+    if (iProgressbarTicker)
         {
         iProgressbarTicker->Cancel();
         delete iProgressbarTicker;
@@ -83,13 +83,11 @@
         }
 
 	// Stop force generation of thumbnails when progress dialog is dismissed
-	CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-    CleanupClosePushL(*uiUtility);
-	if ( uiUtility )
-		{
-		uiUtility->StopTNMDaemonL();
-		}
-    CleanupStack::PopAndDestroy(uiUtility);
+    if (iUiUtility)
+        {
+        iUiUtility->StopTNMDaemon();
+        iUiUtility->Close();
+        }
     }
 
 // ---------------------------------------------------------
@@ -99,39 +97,16 @@
 void CGlxProgressIndicator::ConstructL()
     {
     TRACER("CGlxProgressIndicator::ConstructL()");
-    CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-    CleanupClosePushL(*uiUtility);
-    TRAPD(err,uiUtility->StartTNMDaemonL());
+    iUiUtility->StartTNMDaemon();
 
-    if(err != KErrNone)
-        {
-        GLX_LOG_INFO1("CGlxProgressIndicator RProperty::Set errorcode %d",err);
-        //need to check what to do in fail cases
-        }
     if(!iProgressbarTicker)
         {
         iProgressbarTicker = CPeriodic::NewL(CActive::EPriorityStandard);
         }
 
-    iFinalCount = uiUtility->GetItemsLeftCountL();
+    iFinalCount = iUiUtility->GetItemsLeftCount();
     GLX_LOG_INFO1("final count in viewactivate = %d",iFinalCount);
-    
 
-    if(iFinalCount)
-        {
-        StartProgressNoteL(iFinalCount,ETrue);
-        if ( !iProgressbarTicker->IsActive())
-            {
-            iProgressbarTicker->Start( KPeriodicStartDelay, KPeriodicStartDelay, TCallBack( 
-                    &PeriodicCallbackL, static_cast<TAny*>( this ) ) );
-            }            
-         }
-    else
-        {
-        GLX_LOG_INFO("Reset the RProperty flag to EFalse");
-        uiUtility->StopTNMDaemonL();
-        }
-    CleanupStack::PopAndDestroy(uiUtility);
     }
 
 
@@ -153,16 +128,10 @@
 inline void CGlxProgressIndicator::DisplayProgressBarL()
     {
     TRACER("CGlxProgressIndicator::DisplayProgressBarL");
-    CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-    CleanupClosePushL(*uiUtility);
-    TInt itemsLeft = uiUtility->GetItemsLeftCountL();
-    CleanupStack::PopAndDestroy(uiUtility);
+    TInt itemsLeft = iUiUtility->GetItemsLeftCount();
     GLX_LOG_INFO1("itemsLeft in DisplayProgressBarL = %d",iFinalCount);
-    if(itemsLeft)
-        {
-        UpdateProgressBar();
-        }
-    else
+    UpdateProgressBar();
+    if(!itemsLeft)
         {
         if(iProgressbarTicker->IsActive())
             {
@@ -179,12 +148,14 @@
 void CGlxProgressIndicator::StartProgressNoteL(TInt aFinalValue,TBool aShow)
     {
     TRACER("CGlxProgressIndicator::StartProgressNoteL()");
-    
+    TInt itemsLeft = iUiUtility->GetItemsLeftCount();
     if(aShow)
         {
         if(!iProgressDialog)
             {
-            iProgressDialog = new (ELeave)CAknProgressDialog((reinterpret_cast<CEikDialog**> (&iProgressDialog)),ETrue);
+            iProgressDialog = new (ELeave) CAknProgressDialog(
+                    (reinterpret_cast<CEikDialog**> (&iProgressDialog)),
+                    ETrue);
             }
         iProgressDialog->PrepareLC(R_PROGRESS_NOTE);
         
@@ -197,7 +168,7 @@
         iProgressDialog->SetTextL(*processingInfo);
         CleanupStack::PopAndDestroy(processingInfo );
         iProgressInfo->SetFinalValue(aFinalValue);
-        
+        iProgressInfo->SetAndDraw(iFinalCount-itemsLeft);
         iProgressDialog->RunLD();
         }
     else
@@ -229,7 +200,7 @@
          * GlxGeneralUiUtilities::FormatString(text,*processingInfo,-1,count,ETrue);
          * CleanupStack::PopAndDestroy(processingInfo); 
          */
-        iProgressInfo->SetAndDraw(CalculateDisplayBarIncrementL());
+        iProgressInfo->SetAndDraw(CalculateDisplayBarIncrement());
         }
     }
     
@@ -240,10 +211,6 @@
 void CGlxProgressIndicator::DialogDismissedL(TInt aButtonId)
     {
     TRACER("CGlxProgressIndicator::DialogDismissedL()");
-    CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-    CleanupClosePushL(*uiUtility);
-    uiUtility->StopTNMDaemonL();
-    CleanupStack::PopAndDestroy(uiUtility);
     if(iProgressbarTicker)
         {
         iProgressbarTicker->Cancel();
@@ -254,27 +221,65 @@
         {
         iProgressDialog = NULL;
         iProgressInfo = NULL;
-        }    
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CalculateDisplayBarIncrement
+// -----------------------------------------------------------------------------
+//  
+TInt CGlxProgressIndicator::CalculateDisplayBarIncrement()
+    {
+    TRACER("CGlxProgressIndicator::CalculateDisplayBarIncrement()");
+
+    TInt itemsLeft = iUiUtility->GetItemsLeftCount();
+
+    if (iFinalCount < itemsLeft)
+        {
+        iProgressInfo->SetFinalValue(itemsLeft);
+        iFinalCount = itemsLeft;
+        }
+    
+    GLX_LOG_INFO1("CalculateDisplayBarIncrement = %d ",(iFinalCount - itemsLeft));
+    return (iFinalCount - itemsLeft);
     }
 
 // -----------------------------------------------------------------------------
-// CalculateDisplayBarIncrementL
+// ShowProgressbar
 // -----------------------------------------------------------------------------
-//  
-TInt CGlxProgressIndicator::CalculateDisplayBarIncrementL()
+//
+void EXPORT_C CGlxProgressIndicator::ShowProgressbarL()
     {
-    TRACER("CGlxProgressIndicator::CalculateDisplayBarIncrement()");
-    CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-    CleanupClosePushL(*uiUtility);
-    TInt itemsLeft = uiUtility->GetItemsLeftCountL();
-    CleanupStack::PopAndDestroy(uiUtility);
-    GLX_LOG_INFO1("CalculateDisplayBarIncrement = %d ",(iFinalCount - itemsLeft));
-    
-    if(iFinalCount < itemsLeft)
+    TRACER("CGlxProgressIndicator::ShowProgressbarL");
+    iUiUtility->StartTNMDaemon();
+    TInt itemsLeft = iUiUtility->GetItemsLeftCount();
+
+    GLX_LOG_INFO1("ShowProgressbar itemsLeft = %d ",itemsLeft);
+    GLX_LOG_INFO1("ShowProgressbar iFinalCount = %d ",iFinalCount);
+    if (iFinalCount < itemsLeft)
         {
-        iProgressInfo->SetFinalValue( itemsLeft );
+        /*
+         *if user is in List view and inserts the MMC,update the total count 
+         */
         iFinalCount = itemsLeft;
         }
-    
-    return (iFinalCount - itemsLeft);
+    if (iFinalCount)
+        {
+        StartProgressNoteL(iFinalCount, ETrue);
+        if (!iProgressbarTicker)
+            {
+            iProgressbarTicker = CPeriodic::NewL(CActive::EPriorityStandard);
+            }
+        if (!iProgressbarTicker->IsActive())
+            {
+            iProgressbarTicker->Start(KPeriodicStartDelay,
+                    KPeriodicStartDelay, TCallBack(&PeriodicCallbackL,
+                            static_cast<TAny*> (this)));
+            }
+        }
+    else
+        {
+        GLX_LOG_INFO("Reset the RProperty flag to EFalse");
+        iUiUtility->StopTNMDaemon();
+        }
     }