From 536f9dd9919b15d1b7558a6d1ce8fa6991569647 Mon Sep 17 00:00:00 2001 From: Kiseok Chang Date: Tue, 12 Jan 2021 10:45:59 +0900 Subject: [PATCH] Fix a error in more menu - add codes to check if misc list is empty before show menu Change-Id: Id48574966a758d23cff7492a94babed3f6a5a603 Signed-off-by: Kiseok Chang --- setting-storage/include/setting-storage.h | 3 +++ .../src/setting-storage-miscellaneous.c | 23 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/setting-storage/include/setting-storage.h b/setting-storage/include/setting-storage.h index c06bda5..8f4553e 100755 --- a/setting-storage/include/setting-storage.h +++ b/setting-storage/include/setting-storage.h @@ -136,6 +136,9 @@ typedef struct _SettingStorage { Evas_Object *misces_genlist; /** genlist for misc list */ Elm_Widget_Item *apps_uninstall_ctx_it; /* More menu popup uninstall item */ Evas_Object *main_menu_popup; + Elm_Object_Item *misc_more_delete; + Elm_Object_Item * misc_more_sort; + Evas_Object *sort_by_sub_menu_popup; Evas_Object *sort_by_radio_group; Evas_Object *no_content_layout; diff --git a/setting-storage/src/setting-storage-miscellaneous.c b/setting-storage/src/setting-storage-miscellaneous.c index c4704ed..41021d8 100755 --- a/setting-storage/src/setting-storage-miscellaneous.c +++ b/setting-storage/src/setting-storage-miscellaneous.c @@ -186,28 +186,39 @@ static void __create_sort_by_sub_menu(SettingStorage *ad) static void __create_more_main_menu(SettingStorage *ad) { + int count = elm_genlist_items_count(ad->misces_genlist); + SETTING_TRACE_DEBUG("count of ad->misces_genlist : %d", count); + ad->main_menu_popup = __create_ctxpopup(ad); Elm_Object_Item *it = NULL; it = elm_ctxpopup_item_append(ad->main_menu_popup, _("IDS_ST_BODY_DELETE"), NULL, __ctx_delete_click_cb, ad); - elm_object_item_disabled_set(it, - (elm_genlist_items_count(ad->misces_genlist) == 0)); + elm_object_item_disabled_set(it, (count == 0)); + ad->misc_more_delete = it; it = elm_ctxpopup_item_append(ad->main_menu_popup, _("IDS_ST_HEADER_SORT_BY"), NULL, __show_sort_by_menu_cb, ad); - elm_object_item_disabled_set(it, - (elm_genlist_items_count(ad->misces_genlist) == 0)); + elm_object_item_disabled_set(it, (count == 0)); + ad->misc_more_sort = it; } static void __show_more_menu_cb(void *data, Evas_Object *obj, void *event_info) { - int y; - SettingStorage *ad = (SettingStorage *)data; + SETTING_TRACE_BEGIN; + SettingStorage *ad = (SettingStorage *)data; ret_if(!ad || ad->select_mode); + int count = elm_genlist_items_count(ad->misces_genlist); + SETTING_TRACE_DEBUG("count of ad->misces_genlist : %d", count); + if(ad->misc_more_delete) + elm_object_item_disabled_set(ad->misc_more_delete, (count == 0)); + if(ad->misc_more_sort) + elm_object_item_disabled_set(ad->misc_more_sort, (count == 0)); + + int y; evas_object_geometry_get(ad->md.genlist, NULL, &y, NULL, NULL); evas_object_move(ad->main_menu_popup, 1280, y); evas_object_show(ad->main_menu_popup); -- 2.34.1