diff --git a/src/bin/ephoto_thumb_browser.c b/src/bin/ephoto_thumb_browser.c index fca1eba..ea72125 100644 --- a/src/bin/ephoto_thumb_browser.c +++ b/src/bin/ephoto_thumb_browser.c @@ -53,12 +53,14 @@ struct _Ephoto_Thumb_Browser Ecore_Timer *click_timer; Eina_Bool thumbs_only; Eina_Bool dirs_only; + double totsize; + double totsize_old; int totimages; + int totimages_old; int file_errors; Eina_Bool dragging; Eina_Bool searching; Eina_Bool processing; - double totsize; struct { Ecore_Animator *todo_items; @@ -91,6 +93,65 @@ static Eina_Bool _monitor_deleted(void *data, int type EINA_UNUSED, static Eina_Bool _monitor_modified(void *data, int type EINA_UNUSED, void *event); +static void +_update_info_label(Ephoto_Thumb_Browser *tb) +{ + char buf[PATH_MAX]; + char isize[PATH_MAX]; + char image_info[PATH_MAX]; + double totsize; + + + if (!tb->totimages) + { + elm_object_text_set(tb->nolabel, + _("No images matched your search")); + snprintf(buf, PATH_MAX, "%s: 0 %s %s: 0%s", + _("Total"), ngettext("image", "images", 0), _("Size"), + ngettext("B", "B", 0)); + elm_object_text_set(tb->infolabel, buf); + } + else + { + elm_object_text_set(tb->nolabel, " "); + totsize = tb->totsize; + if (totsize < 1024.0) + snprintf(isize, sizeof(isize), "%'.0f%s", totsize, ngettext("B", + "B", totsize)); + else + { + totsize /= 1024.0; + if (totsize < 1024) + snprintf(isize, sizeof(isize), "%'.0f%s", totsize, + ngettext("KB", "KB", totsize)); + else + { + totsize /= 1024.0; + if (totsize < 1024) + snprintf(isize, sizeof(isize), "%'.1f%s", totsize, + ngettext("MB", "MB", totsize)); + else + { + totsize /= 1024.0; + if (totsize < 1024) + snprintf(isize, sizeof(isize), "%'.1f%s", totsize, + ngettext("GB", "GB", totsize)); + else + { + totsize /= 1024.0; + snprintf(isize, sizeof(isize), "%'.1f%s", + totsize, ngettext("TB", "TB", totsize)); + } + } + } + } + snprintf(image_info, PATH_MAX, "%s: %d %s %s: %s", + _("Total"), tb->totimages, ngettext("image", "images", + tb->totimages), _("Size"), isize); + elm_object_text_set(tb->infolabel, image_info); + } +} + static void _todo_items_free(Ephoto_Thumb_Browser *tb) { @@ -854,11 +915,10 @@ _ephoto_search_go(void *data, Evas_Object *obj EINA_UNUSED, tb->searchentries = NULL; if (results) { - char isize[PATH_MAX]; - char image_info[PATH_MAX]; - double totsize = 0; - int totimages = 0; - + tb->totimages_old = tb->totimages; + tb->totsize_old = tb->totsize; + tb->totimages = 0; + tb->totsize = 0; EINA_LIST_FOREACH(results, l, o) { const Elm_Gengrid_Item_Class *ic = NULL; @@ -888,9 +948,9 @@ _ephoto_search_go(void *data, Evas_Object *obj EINA_UNUSED, { Eina_File *f; elm_object_item_data_set(e->item, e); - totimages++; + tb->totimages++; f = eina_file_open(e->path, EINA_FALSE); - totsize += (double) eina_file_size_get(f); + tb->totsize += (double) eina_file_size_get(f); eina_file_close(f); tb->searchentries = eina_list_append(tb->searchentries, e); } @@ -900,53 +960,14 @@ _ephoto_search_go(void *data, Evas_Object *obj EINA_UNUSED, } } tb->entries = tb->searchentries; - elm_object_text_set(tb->nolabel, " "); - if (totsize < 1024.0) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, ngettext("B", - "B", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, - ngettext("KB", "KB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("MB", "MB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("GB", "GB", totsize)); - else - { - totsize /= 1024.0; - snprintf(isize, sizeof(isize), "%'.1f%s", - totsize, ngettext("TB", "TB", totsize)); - } - } - } - } - snprintf(image_info, PATH_MAX, "%s: %d %s %s: %s", - _("Total"), totimages, ngettext("image", "images", - totimages), _("Size"), isize); - elm_object_text_set(tb->infolabel, image_info); + _update_info_label(tb); eina_list_free(results); } else { - char buf[PATH_MAX]; - - elm_object_text_set(tb->nolabel, - _("No images matched your search")); - snprintf(buf, PATH_MAX, "%s: 0 %s %s: 0%s", - _("Total"), ngettext("image", "images", 0), _("Size"), - ngettext("B", "B", 0)); - elm_object_text_set(tb->infolabel, buf); + tb->totimages = 0; + tb->totsize = 0; + _update_info_label(tb); tb->searchentries = NULL; tb->entries = NULL; } @@ -978,60 +999,17 @@ _ephoto_search_cancel(void *data, Evas_Object *obj EINA_UNUSED, elm_box_pack_end(tb->gridbox, tb->grid); evas_object_show(tb->grid); tb->original_grid = NULL; + tb->totimages = tb->totimages_old; + tb->totsize = tb->totsize_old; + tb->totimages_old = 0; + tb->totsize_old = 0; } if (!tb->ephoto->entries) { - char buf[PATH_MAX]; - - elm_object_text_set(tb->nolabel, - _("There are no images in this directory")); - snprintf(buf, PATH_MAX, "%s: 0 %s %s: 0%s", - _("Total"), ngettext("image", "images", 0), _("Size"), - ngettext("B", "B", 0)); - elm_object_text_set(tb->infolabel, buf); - } - else - { - char isize[PATH_MAX]; - char image_info[PATH_MAX]; - - elm_object_text_set(tb->nolabel, " "); - if (tb->totsize < 1024.0) - snprintf(isize, sizeof(isize), "%'.0f%s", tb->totsize, ngettext("B", - "B", tb->totsize)); - else - { - tb->totsize /= 1024.0; - if (tb->totsize < 1024) - snprintf(isize, sizeof(isize), "%'.0f%s", tb->totsize, - ngettext("KB", "KB", tb->totsize)); - else - { - tb->totsize /= 1024.0; - if (tb->totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", tb->totsize, - ngettext("MB", "MB", tb->totsize)); - else - { - tb->totsize /= 1024.0; - if (tb->totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", - tb->totsize, ngettext("GB", "GB", tb->totsize)); - else - { - tb->totsize /= 1024.0; - snprintf(isize, sizeof(isize), "%'.1f%s", - tb->totsize, - ngettext("TB", "TB", tb->totsize)); - } - } - } - } - snprintf(image_info, PATH_MAX, "%s: %d %s %s: %s", - _("Total"), tb->totimages, ngettext("image", "images", - tb->totimages), _("Size"), isize); - elm_object_text_set(tb->infolabel, image_info); + tb->totimages = 0; + tb->totsize = 0; } + _update_info_label(tb); elm_object_focus_set(tb->main, EINA_TRUE); evas_object_del(tb->search); tb->search = NULL; @@ -3633,58 +3611,10 @@ _ephoto_thumb_populate_end(void *data, int type EINA_UNUSED, } if (!tb->ephoto->entries) { - char buf[PATH_MAX]; - - elm_object_text_set(tb->nolabel, - _("There are no images in this directory")); - snprintf(buf, PATH_MAX, "%s: 0 %s %s: 0%s", - _("Total"), ngettext("image", "images", 0), _("Size"), - ngettext("B", "B", 0)); - elm_object_text_set(tb->infolabel, buf); - } - else if (!tb->dirs_only) - { - char isize[PATH_MAX]; - char image_info[PATH_MAX]; - double totsize = tb->totsize; - - elm_object_text_set(tb->nolabel, " "); - - if (totsize < 1024.0) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, ngettext("B", - "B", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, - ngettext("KB", "KB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("MB", "MB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("GB", "GB", totsize)); - else - { - totsize /= 1024.0; - snprintf(isize, sizeof(isize), "%'.1f%s", - totsize, ngettext("TB", "TB", totsize)); - } - } - } - } - snprintf(image_info, PATH_MAX, "%s: %d %s %s: %s", - _("Total"), tb->totimages, ngettext("image", "images", - tb->totimages), _("Size"), isize); - elm_object_text_set(tb->infolabel, image_info); + tb->totimages = 0; + tb->totsize = 0; } + _update_info_label(tb); tb->dirs_only = 0; tb->thumbs_only = 0; tb->entries = tb->ephoto->entries; @@ -3860,9 +3790,6 @@ ephoto_thumb_browser_insert(Ephoto *ephoto, Ephoto_Entry *entry) { Eina_File *f; const Elm_Gengrid_Item_Class *ic; - char isize[PATH_MAX]; - char image_info[PATH_MAX]; - double totsize; tb->totimages += 1; f = eina_file_open(entry->path, EINA_FALSE); @@ -3895,43 +3822,7 @@ ephoto_thumb_browser_insert(Ephoto *ephoto, Ephoto_Entry *entry) { ephoto_entry_free(tb->ephoto, entry); } - elm_object_text_set(tb->nolabel, " "); - - totsize = tb->totsize; - if (totsize < 1024.0) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, ngettext("B", - "B", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, - ngettext("KB", "KB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("MB", "MB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("GB", "GB", totsize)); - else - { - totsize /= 1024.0; - snprintf(isize, sizeof(isize), "%'.1f%s", - totsize, ngettext("TB", "TB", totsize)); - } - } - } - } - snprintf(image_info, PATH_MAX, "%s: %d %s %s: %s", - _("Total"), tb->totimages, ngettext("image", "images", - tb->totimages), _("Size"), isize); - elm_object_text_set(tb->infolabel, image_info); + _update_info_label(tb); } } @@ -3943,65 +3834,15 @@ ephoto_thumb_browser_remove(Ephoto *ephoto, Ephoto_Entry *entry) if (!entry->is_dir) { - char image_info[PATH_MAX]; - tb->totimages -= 1; tb->totsize -= entry->size; if (eina_list_count(tb->ephoto->entries) == 1) { - char buf[PATH_MAX]; - - elm_object_text_set(tb->nolabel, - _("There are no images in this directory")); - snprintf(buf, PATH_MAX, "%s: 0 %s %s: 0%s", - _("Total"), ngettext("image", "images", 0), _("Size"), - ngettext("B", "B", 0)); - elm_object_text_set(tb->infolabel, buf); - } - else - { - char isize[PATH_MAX]; - double totsize; - - elm_object_text_set(tb->nolabel, " "); - - totsize = tb->totsize; - if (totsize < 1024.0) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, - ngettext("B", "B", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.0f%s", totsize, - ngettext("KB", "KB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", totsize, - ngettext("MB", "MB", totsize)); - else - { - totsize /= 1024.0; - if (totsize < 1024) - snprintf(isize, sizeof(isize), "%'.1f%s", - totsize, ngettext("GB", "GB", totsize)); - else - { - totsize /= 1024.0; - snprintf(isize, sizeof(isize), "%'.1f%s", - totsize, ngettext("TB", "TB", totsize)); - } - } - } - } - snprintf(image_info, PATH_MAX, "%s: %d %s " - "%s: %s", _("Total"), tb->totimages, - ngettext("image", "images", tb->totimages), _("Size"), isize); - elm_object_text_set(tb->infolabel, image_info); + tb->totimages = 0; + tb->totsize = 0; } + _update_info_label(tb); elm_object_item_del(entry->item); } }