idlehomescreen/widgetmanager/src/wminstaller.cpp
branchRCL_3
changeset 12 9674c1a575e9
parent 11 ff572dfe6d86
child 17 b8fae6b8a148
--- a/idlehomescreen/widgetmanager/src/wminstaller.cpp	Fri Mar 12 15:41:49 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wminstaller.cpp	Mon Mar 15 12:39:47 2010 +0200
@@ -20,6 +20,7 @@
 
 #include "wminstaller.h"
 #include "wmwidgetdata.h"
+#include "wmplugin.h"
 
 
 // CONSTANTS
@@ -29,9 +30,9 @@
 // CWmInstaller::NewL
 // ---------------------------------------------------------
 //
-CWmInstaller* CWmInstaller::NewL()
+CWmInstaller* CWmInstaller::NewL( CWmPlugin& aWmPlugin )
     {
-    CWmInstaller* self = CWmInstaller::NewLC();
+    CWmInstaller* self = CWmInstaller::NewLC( aWmPlugin );
     CleanupStack::Pop(); // self;
     return self;
     }
@@ -40,9 +41,9 @@
 // CWmInstaller::NewLC
 // ---------------------------------------------------------
 //
-CWmInstaller* CWmInstaller::NewLC()
+CWmInstaller* CWmInstaller::NewLC( CWmPlugin& aWmPlugin )
     {
-    CWmInstaller* self = new ( ELeave ) CWmInstaller();
+    CWmInstaller* self = new ( ELeave ) CWmInstaller( aWmPlugin );
     CleanupStack::PushL(self);
     self->ConstructL();
     return self;
@@ -52,7 +53,9 @@
 // CWmInstaller::CWmInstaller
 // ---------------------------------------------------------
 //
-CWmInstaller::CWmInstaller() : CActive( EPriorityStandard )
+CWmInstaller::CWmInstaller( CWmPlugin& aWmPlugin ) :
+    CActive( EPriorityStandard ),
+    iWmPlugin( aWmPlugin )
     {
     iUid = KNullUid;
     iIdle = NULL;
@@ -107,6 +110,16 @@
 //
 void CWmInstaller::RunL()
     {
+    // error has occurred, stop uninstallation animation.
+    if ( iStatus != KErrNone )
+        { 
+        CWmWidgetData* widget = iWmPlugin.GetUninstalledWidgetByUid( iUid );
+        if ( widget )
+            {
+            widget->StopUninstallAnimationL();
+            }
+        }
+    
     // close SWI session
     if ( iIdle && iIdle->IsActive() )
         {