[Bug] Fix N_SE-12288 : disable the left button if there are no items be selected.
authorJing Yigang <yigang.jing@samsung.com>
Wed, 24 Oct 2012 07:40:18 +0000 (15:40 +0800)
committerJing Yigang <yigang.jing@samsung.com>
Wed, 24 Oct 2012 07:40:18 +0000 (15:40 +0800)
Change-Id: I17d8ab4d90e69d156f0f55551c9706347c4eb519

setting-common/src/setting-common-draw-genlist.c
setting-reset/src/setting-reset-settings.c
setting-storage/include/setting-storage.h
setting-storage/src/setting-storage-main.c
setting-storage/src/setting-storage-miscellaneous-files.c
setting-storage/src/setting-storage.c

index 0d09d64..cfecfb3 100755 (executable)
@@ -1453,6 +1453,8 @@ static void __setting_done_list_item_sel(void *data)
 
        /* SETTING_TRACE("sel_num:%d", sel_num); */
        if (!sel_num) {
+               Elm_Object_Item *button = elm_toolbar_first_item_get(list_data->controllbar);
+               elm_object_item_disabled_set(button, EINA_TRUE);
                evas_object_hide(list_data->selInfoPop);
                return;
        }
@@ -1462,6 +1464,8 @@ static void __setting_done_list_item_sel(void *data)
        /*  text set and timeout set */
        edje_object_part_text_set(_EDJ(list_data->selInfoPop_layout), "elm.text", text);
 
+       Elm_Object_Item *button = elm_toolbar_first_item_get(list_data->controllbar);
+       elm_object_item_disabled_set(button, EINA_FALSE);
 }
 
 /**
@@ -1537,6 +1541,8 @@ static void __setting_select_all_done(void *data)
 
        /* SETTING_TRACE("sel_num:%d", sel_num); */
        if (!sel_num) {
+               Elm_Object_Item *button = elm_toolbar_first_item_get(list_data->controllbar);
+               elm_object_item_disabled_set(button, EINA_TRUE);
                evas_object_hide(list_data->selInfoPop);
                return;
        }
@@ -1545,7 +1551,8 @@ static void __setting_select_all_done(void *data)
 
        /*  text set and timeout set */
        edje_object_part_text_set(_EDJ(list_data->selInfoPop_layout), "elm.text", text);
-
+       Elm_Object_Item *button = elm_toolbar_first_item_get(list_data->controllbar);
+       elm_object_item_disabled_set(button, EINA_FALSE);
 }
 
 static void __setting_select_all_layout_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
index 899156b..d5ec465 100755 (executable)
@@ -335,6 +335,11 @@ static int setting_reset_settings_create(void *cb)
        scroller = setting_create_done_list(list_data);
        elm_object_part_content_set(view_layout, "elm.swallow.contents", scroller);
 
+       if(idx == 0 || !setting_done_list_is_some_item_selected(list_data)) {
+               Elm_Object_Item *button = elm_toolbar_first_item_get(list_data->controllbar);
+               elm_object_item_disabled_set(button, EINA_TRUE);
+       }
+
        ad->view_layout = view_layout;
        ad->controllbar = controllbar;
        ad->reset_list = elm_object_part_content_get(scroller, "search_list");
@@ -564,6 +569,11 @@ static Eina_Bool __reset_animator_cb(void *data)
                        elm_genlist_item_show(elm_genlist_first_item_get(genlist), ELM_GENLIST_ITEM_SCROLLTO_TOP);
                if(ad->reset_list)
                        elm_genlist_item_show(elm_genlist_first_item_get(ad->reset_list), ELM_GENLIST_ITEM_SCROLLTO_TOP);
+
+               if(!setting_done_list_is_some_item_selected(&ad->list_data)) {
+                       Elm_Object_Item *button = elm_toolbar_first_item_get(ad->list_data.controllbar);
+                       elm_object_item_disabled_set(button, EINA_TRUE);
+               }
                return ECORE_CALLBACK_CANCEL;
        }
        if (ad->list_data.chk_items[ad->gl_index].data_GenItem->chk_status) {
index 383451e..53e82b2 100755 (executable)
@@ -82,6 +82,7 @@
 #define SETTING_STORAGE_MEDIA_PATH             "/opt/media"
 #define SETTING_STORAGE_PICTURES_PATH          "/opt/media/Images"
 #define SETTING_STORAGE_VIDEOS_PATH            "/opt/media/Videos"
+#define SETTING_STORAGE_CAMERA_PATH            "/opt/media/Camera"
 #define SETTING_STORAGE_DOWNLOADS_PATH         "/opt/media/Downloads"
 #define SETTING_STORAGE_AUDIO_PATH             "/opt/media/Sounds"
 #define SETTING_STORAGE_MMC_PATH               "/opt/storage/sdcard"
@@ -104,7 +105,7 @@ typedef struct _Node_Info Node_Info;
 struct _Node_Info {
        char path[SETTING_STORAGE_DIR_PATH_LEN_MAX + 1];
        char name[SETTING_STORAGE_FILE_NAME_LEN_MAX + 1];
-       unsigned int size;
+       unsigned long long size;
 };
 
 typedef struct _app_info_t {
index 5ea4394..eeba091 100755 (executable)
@@ -224,12 +224,12 @@ static int __setting_storage_main_fs_stat(double *total, double *avail, const ch
        return SETTING_RETURN_SUCCESS;
 }
 
-static long __setting_storage_main_folder_size_get(char *path)
+static long long __setting_storage_main_folder_size_get(char *path)
 {
        SETTING_TRACE_BEGIN;
        setting_retvm_if(NULL == path, SETTING_RETURN_FAIL, "path is NULL");
 
-       unsigned long size = 0;
+       unsigned long long size = 0;
        Eina_List *file_list = NULL;
        Eina_List *dir_list = NULL;
 
@@ -348,6 +348,12 @@ static void __setting_storage_main_pictures_videos_status_get(void *data)
        //SETTING_TRACE("pics_videos_status = %f", dTotal);
        pics_videos_status.dTotal += dTotal;
 
+       dTotal = 0.0;
+       dTotal = __setting_storage_main_folder_size_get(SETTING_STORAGE_CAMERA_PATH);
+       setting_retm_if(ret == SETTING_RETURN_FAIL, "get camera status failed");
+       //SETTING_TRACE("pics_videos_status = %f", dTotal);
+       pics_videos_status.dTotal += dTotal;
+
        //SETTING_TRACE("pics_videos_status = %f", pics_videos_status.dTotal);
 
        ad->pics_videos_status = pics_videos_status;
@@ -530,7 +536,7 @@ static void __setting_storage_main_miscellaneous_size_get(void *data)
        setting_retm_if(data == NULL, "Data parameter is NULL");
        SettingStorageUG *ad = (SettingStorageUG *) data;
 
-       unsigned long size = 0;
+       unsigned long long size = 0;
        Eina_List *file_list = NULL;
        Eina_List *dir_list = NULL;
 
@@ -1347,6 +1353,22 @@ static void __setting_storage_vconf_change_cb(keynode_t *key, void *data)
        }
 }
 
+static void __setting_storage_main_genlist_update(Setting_GenGroupItem_Data *data, Setting_Storage_Status status)
+{
+       SETTING_TRACE_BEGIN;
+       setting_retm_if(data == NULL, "Data parameter is NULL");
+       Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) data;
+
+       char desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
+       int ret = __setting_storage_status_size_transition(status.dTotal, desc);
+       setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
+
+       G_FREE(item_data->sub_desc);
+       item_data->sub_desc = (char *)g_strdup(desc);
+       elm_object_item_data_set(item_data->item, item_data);
+       elm_genlist_item_update(item_data->item);
+}
+
 /* ***************************************************
  *
  *basic func
@@ -1651,16 +1673,35 @@ static int setting_storage_main_update(void *cb)
 
        SettingStorageUG *ad = (SettingStorageUG *) cb;
 
+       /* update internal */
+       __setting_storage_main_internal_storage_status_get(ad);
+       __setting_storage_main_genlist_update(ad->internal, ad->internal_status);
+
+       /* update pictures videos */
+       __setting_storage_main_pictures_videos_status_get(ad);
+       __setting_storage_main_genlist_update(ad->pics_videos, ad->pics_videos_status);
+
+       /* update download */
+       __setting_storage_main_downloads_status_get(ad);
+       __setting_storage_main_genlist_update(ad->downloads, ad->downloads_status);
+
+       /* update audio */
+       __setting_storage_main_audio_status_get(ad);
+       __setting_storage_main_genlist_update(ad->audio, ad->audio_status);
+
+       /* update miscellaneous */
        __setting_storage_main_miscellaneous_size_get(ad);
+       __setting_storage_main_genlist_update(ad->others, ad->others_status);
 
-       char others_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
-       int ret = __setting_storage_status_size_transition(ad->others_status.dTotal, others_desc);
+       /* update available */
+       char desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
+       int ret = __setting_storage_status_size_transition(ad->internal_status.dAvail, desc);
        setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
 
-       G_FREE(ad->others->sub_desc);
-       ad->others->sub_desc = (char *)g_strdup(others_desc);
-       elm_object_item_data_set(ad->others->item, ad->others);
-       elm_genlist_item_update(ad->others->item);
+       G_FREE(ad->avail->sub_desc);
+       ad->avail->sub_desc = (char *)g_strdup(desc);
+       elm_object_item_data_set(ad->avail->item, ad->avail);
+       elm_genlist_item_update(ad->avail->item);
 
        if (ad->ly_main != NULL) {
                evas_object_show(ad->ly_main);
index e776d3c..08055eb 100755 (executable)
@@ -149,7 +149,7 @@ static int setting_storage_miscellaneous_files_create(void *cb)
                list = NULL;
        }
 
-       if(i == 0) {
+       if(i == 0 || !setting_done_list_is_some_item_selected(&ad->miscellaneous_list)) {
                /* disable "Delete" button */
                Elm_Object_Item *delete_button = elm_toolbar_first_item_get(controllbar);
                elm_object_item_disabled_set(delete_button, EINA_TRUE);
@@ -306,7 +306,7 @@ static void __setting_storage_miscellaneous_files_genlist_update(void *data)
                list = NULL;
        }
 
-       if(i == 0) {
+       if(i == 0 || !setting_done_list_is_some_item_selected(&ad->miscellaneous_list)) {
                /* disable "Delete" button */
                Elm_Object_Item *delete_button = elm_toolbar_first_item_get(ad->miscellaneous_list.controllbar);
                elm_object_item_disabled_set(delete_button, EINA_TRUE);
index bf963f2..c67931c 100755 (executable)
@@ -172,6 +172,11 @@ static void setting_storage_ug_on_pause(ui_gadget_h ug, service_h service,
 static void setting_storage_ug_on_resume(ui_gadget_h ug, service_h service,
                                      void *priv)
 {
+       SETTING_TRACE_BEGIN;
+       setting_retm_if((!ug || !priv), "!ug || !priv");
+       SettingStorageUG *storageUG = priv;
+
+       setting_view_update(&setting_view_storage_main, storageUG);
 }
 
 static void setting_storage_ug_on_destroy(ui_gadget_h ug, service_h service,