Add PhotoLayout, VideoLayout, MusicLayout code and layout change code
[profile/tv/apps/native/filebrowser.git] / src / views / BaseView / FileGrid.cpp
index 18a40b3..ed95029 100644 (file)
@@ -17,7 +17,6 @@
 #include <Elementary.h>
 #include <Eina.h>
 #include <Ecore.h>
-#include <utilX.h>
 #include <aul.h>
 #include "dbg.h"
 #include "i18n.h"
@@ -27,7 +26,8 @@
 #include <AppCommon.h>
 #include "Mediadata.h"
 #include "ExtNameInfo.h"
-#include "SortName.h"
+#include <Sort.h>
+#include <SortMgr.h>
 #include "GengridItemClass.h"
 #include "InputHandler.h"
 #include "FileGrid.h"
@@ -125,6 +125,7 @@ void CFileGrid::sm_CbUnrealized(void *data, Evas_Object *obj, void *event_info)
 
 void CFileGrid::Action(void)
 {
+       _DBG();
        m->handle_itinfo = m->ctxt_itinfo;
        m_HandleSelection();
        m_DeleteContextView();
@@ -138,6 +139,7 @@ void CFileGrid::m_DeleteContextView(void)
 
 void CFileGrid::sm_CbSelectItem(void *data, Elm_Object_Item *it, const char *emission, const char *source)
 {
+       _DBG();
        CFileGrid* root = (CFileGrid*)data;
        SItemInfo *pItemInfo;
 
@@ -265,7 +267,7 @@ void CFileGrid::t_Empty(bool sort_flag)
                m->pGengridItemClass = NULL;
        }
 
-       if (sort_flag == false) {
+       if (sort_flag == false && m->elFile != NULL) {
                eina_list_free(m->elFile);
                m->elFile = NULL;
        }
@@ -288,7 +290,37 @@ void CFileGrid::t_Update(char *fid, bool sort_flag)
                else
                        m_GetFolderList();
        }
-       m->elFile = CSortName::Sort(m->elFile, (CSortName::ESort)CInfo::SortType());
+       
+       const char* sortType;
+       switch(CInfo::SortType())
+       {
+               case 0:
+                       sortType = SORT_BY_NAME_AZ;
+                       break;
+               case 1:
+                       sortType = SORT_BY_NAME_ZA;
+                       break;
+               case 2:
+                       sortType = SORT_BY_DATE_ASC;
+                       break;
+               case 3:
+                       sortType = SORT_BY_DATE_DES;
+                       break;
+               case 4:
+                       sortType = SORT_BY_SIZE_ASC;
+                       break;
+               case 5:
+                       sortType = SORT_BY_SIZE_DES;
+                       break;
+               default:
+                       _DBG("Fix your code : sortType is invalid");
+                       sortType = SORT_BY_NAME_AZ;
+                       break;
+       }
+
+       //ASSERT(m->elFile);
+
+       m->elFile = CSort::Sort(m->elFile, sortType);
        t_Fill();
 
        if (fid)    // folder
@@ -406,11 +438,13 @@ Evas_Object* CFileGrid::Grid(void)
 
 
 void CFileGrid::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) {
-       _DBG();
        Elm_Object_Item *it;
        SItemInfo *pItemInfo;
+       
+       if(ev->keyname)
+               _DBG("%s", ev->keyname);
 
-       if (strcmp(ev->keyname, KEY_BACK) == 0) {
+       if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                if (m->depth == 0) {
                        if (m->callback.cbUnsetFocus)
                                m->callback.cbUnsetFocus(m->callback.cookie);
@@ -422,7 +456,20 @@ void CFileGrid::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev
                        elm_object_item_focus_set(it, EINA_TRUE);
                }
        }
-       else if (strcmp(ev->keyname, KEY_MENU) == 0) {
+       else if (!strcmp(ev->keyname, KEY_ENTER) || !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
+               it = elm_object_focused_item_get(obj);
+               if (!it) {
+                       _ERR(" unable to get focused item ");
+                       return;
+               }
+               pItemInfo = _find_item_info(m->elItemInfo, it);
+               if (!pItemInfo)
+                       return;
+
+               m->handle_itinfo = pItemInfo;
+               m_HandleSelection();
+       }
+       else if (!strcmp(ev->keyname, KEY_MENU) || !strcmp(ev->keyname, KEY_MENU_REMOTE)) {
                it = elm_object_focused_item_get(obj);
                if (!it) {
                        _ERR(" unable to get focused item ");