idlehomescreen/widgetmanager/src/wmwidgetdata.cpp
branchRCL_3
changeset 19 79311d856354
parent 18 d05a55b217df
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Wed Apr 14 15:47:59 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Tue Apr 27 16:26:12 2010 +0300
@@ -36,6 +36,7 @@
 #include "wmpersistentwidgetorder.h"
 #include "wmresourceloader.h"
 #include "wmcommon.h"
+#include "wmimageconverter.h"
 
 // ---------------------------------------------------------
 // CWmWidgetData::NewL
@@ -87,32 +88,26 @@
     iPublisherUid = KNullUid;
     iLogoSize = aLogoSize;
     iAnimationTimer = NULL;
-    iTimeoutTimer = NULL;
     iAnimationIndex = 0;
     iAsyncUninstalling = EFalse;
-    iFireLogoChanged = EFalse;
     iMdcaPoint = NULL;
-    iWidgetName = NULL;
     }
 
 // ---------------------------------------------------------
 // CWmWidgetData::ConstructL
 // ---------------------------------------------------------
 //
-void CWmWidgetData::ConstructL( 
+void CWmWidgetData::ConstructL(         
         CHsContentInfo* aHsContentInfo,
         RWidgetRegistryClientSession* aRegistryClientSession )
     {
     // start decoding the icon
-    iImageConverter = CWmImageConverter::NewL( this );
-    iWait = new (ELeave) CActiveSchedulerWait();
+	iImageConverter = CWmImageConverter::NewL();
     iAnimationTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-    iTimeoutTimer = CPeriodic::NewL( CActive::EPriorityStandard );
 
     InitL( aHsContentInfo, aRegistryClientSession );
     
     // start logo handling
-    iImageConverter->SetLogoSize( iLogoSize );
     HandleIconString( HsContentInfo().IconPath() );
     }
 
@@ -154,19 +149,6 @@
 //
 CWmWidgetData::~CWmWidgetData()
     {
-    if ( iTimeoutTimer && 
-        iTimeoutTimer->IsActive() )
-        {
-        iTimeoutTimer->Cancel();
-        }
-    delete iTimeoutTimer;
-
-    delete iWidgetName;
-    if ( iWait && iWait->IsStarted() )
-        {
-        iWait->AsyncStop();
-        }
-    delete iWait;
     SetObserver( NULL );
     DestroyAnimData();
     delete iAnimationTimer;
@@ -243,37 +225,6 @@
     }
 
 // ---------------------------------------------------------
-// CWmWidgetData::NotifyCompletion
-// ---------------------------------------------------------
-//
-void CWmWidgetData::NotifyCompletion( TInt aError )
-    {
-    delete iLogoImage;
-    iLogoImage = NULL;
-    delete iLogoImageMask;
-    iLogoImageMask = NULL;
-    if ( KErrNone != aError )
-        {
-        // no image available. Do nothing.
-        }
-    else
-        {
-        iLogoImage = iImageConverter->Bitmap();
-        iLogoImageMask = iImageConverter->Mask();
-
-        if ( iWait && iWait->IsStarted() )
-            {
-            iWait->AsyncStop();
-            }
-        if ( iFireLogoChanged ) 
-            {
-            iFireLogoChanged = EFalse;
-            FireDataChanged();
-            }
-        }
-    }
-
-// ---------------------------------------------------------
 // CWmWidgetData::HandleIconString
 // ---------------------------------------------------------
 //
@@ -305,27 +256,17 @@
         {
         size = iLogoSize;
         }
-    TInt err = iImageConverter->HandleIconString( 
-            size.iWidth, size.iHeight, *iconStr );
+    
+    iImageConverter->HandleIconString( 
+            size, 
+            *iconStr, 
+            iLogoImage, 
+            iLogoImageMask );
     
     delete iconStr;
     iconStr = NULL;
     
-    // handle result
-    if ( KErrNone == err && iWait &&
-        IsPrepairingLogo() && iTimeoutTimer )
-        {
-        iTimeoutTimer->Cancel();
-        const TInt tickInterval = 200000;        
-        iTimeoutTimer->Start(
-                tickInterval,tickInterval,TCallBack(TimeoutTick, this));
-        iWait->Start();
-        }
-    else if ( KErrNone != err && iFireLogoChanged )
-        {
-        FireDataChanged(); // draw default icon
-        iFireLogoChanged = EFalse;
-        }
+    FireDataChanged(); // draw default icon
     }
 
 // ---------------------------------------------------------
@@ -447,21 +388,25 @@
 // CWmWidgetData::ReCreateLogo
 // ---------------------------------------------------------
 //
-void CWmWidgetData::ReCreateLogo( const TSize& aSize )
-    {    
-    delete iLogoImage;
-    iLogoImage = NULL;
-    delete iLogoImageMask;
-    iLogoImageMask = NULL;
-    
-    if ( iWait && iWait->IsStarted() )
+void CWmWidgetData::UpdateLogo( const TSize& aSize, TBool aReCreateLogo )
+    {        
+    iLogoSize = aSize;
+    if ( aReCreateLogo )
         {
-        iWait->AsyncStop();
+        delete iLogoImage;
+        iLogoImage = NULL;
+        delete iLogoImageMask;
+        iLogoImageMask = NULL;
+        HandleIconString( HsContentInfo().IconPath() );
         }
-
-    iFireLogoChanged = ETrue;
-    iLogoSize = aSize;
-    HandleIconString( HsContentInfo().IconPath() );
+    else
+        {
+        iImageConverter->UpdateImageSize(
+                iLogoSize,
+                HsContentInfo().IconPath(),
+                *iLogoImage,
+                *iLogoImageMask );
+        }
     }
 
 // ---------------------------------------------------------
@@ -500,27 +445,13 @@
         {
         // re-convert image
         // change event will be fired later when bitmap is ready
-        ReCreateLogo( iLogoSize );
+        UpdateLogo( iLogoSize, ETrue );
         }
 
     return !( sameAppearance && sameLogo );
     }
 
 // ---------------------------------------------------------
-// CWmWidgetData::IsPrepairingLogo
-// ---------------------------------------------------------
-//
-TBool CWmWidgetData::IsPrepairingLogo()
-    {
-    TBool prepairing( EFalse );            
-    if ( !iLogoImage )
-        {
-        prepairing = iImageConverter->IsProcessing();
-        }
-    return prepairing;
-    }
-
-// ---------------------------------------------------------
 // CWmWidgetData::VisualizeUninstall
 // ---------------------------------------------------------
 //
@@ -606,21 +537,6 @@
     }
 
 // ---------------------------------------------------------
-// CWmWidgetData::TimeoutTick
-// ---------------------------------------------------------
-//
-TInt CWmWidgetData::TimeoutTick( TAny* aPtr )
-    {
-    CWmWidgetData* self = static_cast< CWmWidgetData* >( aPtr );
-    self->iTimeoutTimer->Cancel();
-    if ( self->iWait && self->iWait->IsStarted() )
-        {
-        self->iWait->AsyncStop();
-        }
-    return 1;
-    }
-
-// ---------------------------------------------------------
 // CWmWidgetData::AnimationBitmap
 // ---------------------------------------------------------
 //