Fix bug 53/37553/2
authorKim Tae Soo <taesoo46.kim@samsung.com>
Tue, 31 Mar 2015 02:01:46 +0000 (11:01 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Tue, 31 Mar 2015 02:06:29 +0000 (11:06 +0900)
: Checking songs mal-function in case of creation of playlist.

Change-Id: Iab7fe57de9218a2888c0a67c556f4b1fe9c5ca20
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
include/category-songs-layout.h
src/views/category-songs-layout.cpp

index 7cb286a..8c87665 100644 (file)
@@ -26,7 +26,8 @@ class CCategorySongsLayout :
        public IKeyDownListener,
        public IMouseMoveListener,
        public IMouseClickedListener,
-       public IRealizedListener {
+       public IRealizedListener,
+       public IActivatedListener {
 public:
        enum EDepth {
                DEPTH_SELECT_LIST,
@@ -68,7 +69,6 @@ private:
        void m_OnSongItemSelect(Evas_Object *obj, Elm_Object_Item *event_info);
 
        static void sm_CbSelectlistItemSelect(void *data, Evas_Object *obj, void *event_info);
-       void m_OnSelectlistItemSelect(Evas_Object *obj, Elm_Object_Item *event_info);
 
 private:
        void m_RemoveFocusIdler(void);
@@ -97,6 +97,7 @@ public:
                IMouseMoveListener(this),
                IMouseClickedListener(this),
                IRealizedListener(this),
+               IActivatedListener(this),
                m(0) {}
        virtual ~CCategorySongsLayout() {}
 
@@ -116,6 +117,7 @@ public:
        virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
        virtual void OnMouseClicked(int id, Evas_Object *obj);
        virtual void OnRealized(int id, Evas_Object *obj, Elm_Object_Item *item);
+       virtual void OnActivated(int id, Evas_Object *obj, Elm_Object_Item *item);
 };
 
 
index 00711bf..452411c 100644 (file)
@@ -345,45 +345,8 @@ void CCategorySongsLayout::m_OnSongItemSelect(Evas_Object *obj, Elm_Object_Item
 
 void CCategorySongsLayout::sm_CbSelectlistItemSelect(void *data, Evas_Object *obj, void *event_info)
 {
-       CCategorySongsLayout *root = (CCategorySongsLayout *)data;
-       if (root)
-               root->m_OnSelectlistItemSelect(obj, (Elm_Object_Item *)event_info);
-}
-
-
-void CCategorySongsLayout::m_OnSelectlistItemSelect(Evas_Object *obj, Elm_Object_Item *event_info)
-{
-       SCategorySongsItemsInfo *itinfo = NULL;
-       int tc;
-
-       if (!obj)
-               return;
-
-       itinfo = m_FindItemInfoFromItem(m->it_infolist, (Elm_Object_Item *)event_info);
-       if (!itinfo) {
-               _ERR(" no item info found ");
-               return;
-       }
-
-       tc = eina_list_count(m->it_infolist);
-       if (itinfo->check_status) {
-               if (tc == m->count)
-                       elm_object_text_set(m->selectBtns[SBTN_SELECT_ALL],
-                       _(MUSIC_TEXT_SELECT_ALL));
-               m->count = m->count - 1;
-               elm_object_item_signal_emit(itinfo->item,
-                       MUSIC_SIGNAL_CHECK_OFF, MUSIC_BASE_VIEW);
-               itinfo->check_status = false;
-       }
-       else {
-               m->count = m->count + 1;
-               if (tc == m->count)
-                       elm_object_text_set(m->selectBtns[SBTN_SELECT_ALL],
-                       _(MUSIC_TEXT_DESELECT_ALL));
-               elm_object_item_signal_emit(itinfo->item,
-                       MUSIC_SIGNAL_CHECK_ON, MUSIC_BASE_VIEW);
-               itinfo->check_status = true;
-       }
+       // Do nothing.
+       // Handling for selectlist item will be done in OnActivated function.
 }
 
 
@@ -735,7 +698,7 @@ void CCategorySongsLayout::m_CreateSongList(void)
                        EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                elm_object_part_content_set(layout, MUSIC_PART_SONGLIST, genlist);
                Connect(genlist, CATEGORY_SONGS_GENLIST, TYPE_MOUSE_MOVE | TYPE_KEY_DOWN |
-                       TYPE_REALIZED);
+                       TYPE_REALIZED | TYPE_ACTIVATED);
                m->songlist = genlist;
        }
 
@@ -1281,4 +1244,49 @@ void CCategorySongsLayout::OnRealized(int id, Evas_Object *obj, Elm_Object_Item
        default:
                break;
        }
-}
\ No newline at end of file
+}
+
+
+void CCategorySongsLayout::OnActivated(int id, Evas_Object *obj, Elm_Object_Item *item)
+{
+       switch (id) {
+       case CATEGORY_SONGS_GENLIST:
+               if (m->depth == DEPTH_SELECT_LIST) {
+                       SCategorySongsItemsInfo *itinfo = NULL;
+                       int tc;
+
+                       if (!obj || !item)
+                               return;
+
+                       itinfo = m_FindItemInfoFromItem(m->it_infolist, item);
+                       if (!itinfo) {
+                               _ERR(" no item info found ");
+                               return;
+                       }
+
+                       tc = eina_list_count(m->it_infolist);
+                       if (itinfo->check_status) {
+                               if (tc == m->count)
+                                       elm_object_text_set(m->selectBtns[SBTN_SELECT_ALL],
+                                       _(MUSIC_TEXT_SELECT_ALL));
+                               m->count = m->count - 1;
+                               elm_object_item_signal_emit(itinfo->item,
+                                       MUSIC_SIGNAL_CHECK_OFF, MUSIC_BASE_VIEW);
+                               itinfo->check_status = false;
+                       }
+                       else {
+                               m->count = m->count + 1;
+                               if (tc == m->count)
+                                       elm_object_text_set(m->selectBtns[SBTN_SELECT_ALL],
+                                       _(MUSIC_TEXT_DESELECT_ALL));
+                               elm_object_item_signal_emit(itinfo->item,
+                                       MUSIC_SIGNAL_CHECK_ON, MUSIC_BASE_VIEW);
+                               itinfo->check_status = true;
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+}