fix icon problem
authorjungmin76.park <jungmin76.park@samsung.com>
Tue, 19 Mar 2013 12:30:42 +0000 (21:30 +0900)
committerjungmin76.park <jungmin76.park@samsung.com>
Tue, 19 Mar 2013 12:30:42 +0000 (21:30 +0900)
Change-Id: Ic379e51515257cf8695bfec9e5e6a8b8ae1a38d7
Signed-off-by: jungmin76.park <jungmin76.park@samsung.com>
project/src/AppWidgetViewerMainForm.cpp

index 8a5fcec..88d7cc6 100644 (file)
@@ -26,6 +26,7 @@
 
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
+using namespace Tizen::Io;
 using namespace Tizen::App;
 using namespace Tizen::Graphics;
 using namespace Tizen::Ui;
@@ -48,16 +49,6 @@ AppWidgetViewerMainForm::AppWidgetViewerMainForm(void)
 
        __pAppWidgetIconList = new ArrayList(SingleObjectDeleter);
        __pAppWidgetIconList->Construct();
-       for( int i = 0; i < __pAppWidgetProviderList->GetCount(); i++)
-       {
-               AppWidgetProviderInfo* pAppWidgetProviderInfo = dynamic_cast<AppWidgetProviderInfo*>(__pAppWidgetProviderList->GetAt(i) );
-
-               Tizen::Media::Image image;
-               result r = image.Construct();
-               Bitmap* pBmp = image.DecodeN(pAppWidgetProviderInfo->GetIconPath(), BITMAP_PIXEL_FORMAT_ARGB8888);
-
-               __pAppWidgetIconList->Add(pBmp);
-       }
 }
 
 AppWidgetViewerMainForm::~AppWidgetViewerMainForm(void)
@@ -234,7 +225,7 @@ AppWidgetViewerMainForm::GetItemCount(void)
 }
 
 Tizen::Ui::Controls::ListItemBase*
-AppWidgetViewerMainForm::CreateItem (int index, int itemWidth)
+AppWidgetViewerMainForm::CreateItem(int index, int itemWidth)
 {
        CustomItem* pItem = new (std::nothrow) CustomItem();
        pItem->Construct(Tizen::Graphics::Dimension(itemWidth, LIST_ITEM_HEIGHT), LIST_ANNEX_STYLE_NORMAL);
@@ -244,12 +235,20 @@ AppWidgetViewerMainForm::CreateItem (int index, int itemWidth)
        Rectangle textRect(text_x, LIST_ITEM_MARGIN_TOP, GetClientAreaBounds().width - LIST_ITEM_MARGIN_LEFT - text_x, LIST_ITEM_TEXT_HEIGHT);
        
        AppWidgetProviderInfo* pProviderInfo = dynamic_cast<AppWidgetProviderInfo*>(__pAppWidgetProviderList->GetAt(index));
-
        if (pProviderInfo)
        {
-               Bitmap* pBmp = dynamic_cast<Bitmap*>(__pAppWidgetIconList->GetAt(index));
-
-               pItem->AddElement(iconRect, ID_FORMAT_BITMAP, *pBmp, null, null);
+               String iconPath = pProviderInfo->GetIconPath();
+               if( File::IsFileExist(iconPath) )
+               {
+                       Tizen::Media::Image image;
+                       image.Construct();
+                       Bitmap* pBmp = image.DecodeN(iconPath, BITMAP_PIXEL_FORMAT_ARGB8888);
+                       if(pBmp)
+                       {
+                               pItem->AddElement(iconRect, ID_FORMAT_BITMAP, *pBmp, null, null);
+                               __pAppWidgetIconList->Add(pBmp);
+                       }
+               }
                pItem->AddElement(textRect, ID_FORMAT_STRING, pProviderInfo->GetDisplayName()+" ("+pProviderInfo->GetAppId()+")", true);
        }