Fix bugs
[profile/tv/apps/native/filebrowser.git] / src / views / BaseView / FileGrid.cpp
index ed95029..191302b 100644 (file)
 #include <aul.h>
 #include "dbg.h"
 #include "i18n.h"
-#include "define.h" 
+#include "define.h"
 #include "common.h"
 
 #include <AppCommon.h>
 #include "Mediadata.h"
 #include "ExtNameInfo.h"
-#include <Sort.h>
 #include <SortMgr.h>
 #include "GengridItemClass.h"
 #include "InputHandler.h"
@@ -223,19 +222,15 @@ void CFileGrid::t_CreateFileGrid(void)
        grid = elm_gengrid_add(m->eoBase);
        if (!grid)
                return;
-       evas_object_size_hint_weight_set(grid,
-               EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        elm_gengrid_align_set(grid, 0, 0);
        elm_object_part_content_set(m->eoBase, FBR_PART_MEDIA_GRID, grid);
 
-
        Connect(grid);
 
        evas_object_smart_callback_add(grid, FBR_SIGNAL_REALIZED,      sm_CbRealized, this);
        evas_object_smart_callback_add(grid, FBR_SIGNAL_UNREALIZED,    sm_CbUnrealized, this);
-       elm_gengrid_item_size_set(grid,
-               elm_config_scale_get() * GENGRID_ITEM_SIZE_W,
-               elm_config_scale_get() * GENGRID_ITEM_SIZE_H);
+       elm_gengrid_item_size_set(grid, elm_config_scale_get() * GENGRID_ITEM_SIZE_W, elm_config_scale_get() * GENGRID_ITEM_SIZE_H);
 
        m->eoGrid = grid;
 
@@ -247,7 +242,7 @@ void CFileGrid::t_CreateFileGrid(void)
                _ERR(" elm_genlist_item_class_new failed ");
                return;
        }
-       
+
        evas_object_show(grid);
 }
 
@@ -281,8 +276,16 @@ void CFileGrid::t_Empty(bool sort_flag)
 void CFileGrid::t_Update(char *fid, bool sort_flag)
 {
        _DBG("fid: %s, sort_flag: %d", fid, sort_flag);
-       t_Empty(sort_flag);
-       t_CreateFileGrid();
+
+       elm_gengrid_clear(m->eoGrid);
+       if (sort_flag == false && m->elFile != NULL) {
+               eina_list_free(m->elFile);
+               m->elFile = NULL;
+       }
+
+       m->elItemInfo = NULL;
+       if (m->callback.cbUpdateEmptyFocusSequence)
+               m->callback.cbUpdateEmptyFocusSequence(m->callback.cookie);
 
        if (sort_flag == false) {
                if (fid)
@@ -318,9 +321,7 @@ void CFileGrid::t_Update(char *fid, bool sort_flag)
                        break;
        }
 
-       //ASSERT(m->elFile);
-
-       m->elFile = CSort::Sort(m->elFile, sortType);
+       m->elFile = CSortMgr::Sort(m->elFile, sortType);
        t_Fill();
 
        if (fid)    // folder
@@ -345,7 +346,6 @@ void CFileGrid::t_Fill(void)
        ts = eina_list_count(m->elFile);
        _DBG("count: %d", ts);
        if (ts == 0) {
-               t_Empty(false);
                return;
        }
 
@@ -353,7 +353,7 @@ void CFileGrid::t_Fill(void)
                pInfo = (CExtNameInfo*)obj;
                pItemInfo = (SItemInfo *)calloc(1, sizeof(SItemInfo));
                if (!pItemInfo) {
-                       t_Empty(false);
+                       _DBG("Fail to allocate memory!!!!!!");
                        return;
                }
 
@@ -377,16 +377,18 @@ bool CFileGrid::Create(Evas_Object* win, Evas_Object *base, const SCallback *cb)
                _CHECK(m->pMediadata = new CMediadata )
                _CHECK(m->pMediadata->Create())
 
-               _WHEN_SUCCESS{}
+               _WHEN_SUCCESS{
+                       m->eoWin    = win;
+                       m->eoBase   = base;
+                       m->callback = *cb;
+                       t_CreateFileGrid();
+               }
 
                _CHECK_FAIL{ m->pMediadata->Destroy(); }
                _CHECK_FAIL{ delete m->pMediadata; }
                _CHECK_FAIL{ delete m; m = NULL; }
        } _CREATE_END_AND_CATCH{ return false; }
 
-       m->eoWin    = win;
-       m->eoBase   = base;
-       m->callback = *cb;
 
        return true;
 }
@@ -440,7 +442,7 @@ Evas_Object* CFileGrid::Grid(void)
 void CFileGrid::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) {
        Elm_Object_Item *it;
        SItemInfo *pItemInfo;
-       
+
        if(ev->keyname)
                _DBG("%s", ev->keyname);