Enlightenment CVS committal
Author : kiwi
Project : e_modules
Module : photo
Dir : e_modules/photo/src/module
Modified Files:
photo_picture.c photo_picture.h photo_picture_histo.c
photo_picture_local.c photo_picture_local.h
Log Message:
fixes, and better status messages
* better support if the thumb fails to generate
* working on fixing the status messages for popups and main config pannel
* some more checks in histoic menu, to avoid segv
===================================================================
RCS file: /cvs/e/e_modules/photo/src/module/photo_picture.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- photo_picture.c 12 Jul 2006 06:11:39 -0000 1.4
+++ photo_picture.c 12 Jul 2006 18:39:08 -0000 1.5
@@ -75,9 +75,20 @@
if (!force) return 0;
if (!force_now)
{
- p->delete_me = 1;
+ if (!p->delete_me)
+ {
+ if (p->from == PICTURE_LOCAL)
+ photo_picture_local_picture_deleteme_nb_update(+1);
+ p->delete_me = 1;
+ }
return 0;
}
+ }
+
+ if (p->delete_me)
+ {
+ if (p->from == PICTURE_LOCAL)
+ photo_picture_local_picture_deleteme_nb_update(-1);
}
DD(("Picture Free : %s", p->path));
===================================================================
RCS file: /cvs/e/e_modules/photo/src/module/photo_picture.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- photo_picture.h 11 Jul 2006 05:52:13 -0000 1.3
+++ photo_picture.h 12 Jul 2006 18:39:08 -0000 1.4
@@ -42,7 +42,7 @@
const char *comments;
} infos;
int original_w, original_h;
- unsigned char from;
+ unsigned char from : 2;
unsigned char delete_me : 1;
===================================================================
RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_histo.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- photo_picture_histo.c 12 Jul 2006 06:11:39 -0000 1.4
+++ photo_picture_histo.c 12 Jul 2006 18:39:08 -0000 1.5
@@ -175,12 +175,14 @@
pi = data;
mn = pi->menu_histo;
+ if (!mn) return;
+
for (l=mn->items; l; l=evas_list_next(l))
{
E_Menu_Item *mi;
mi = evas_list_data(l);
- if (mi->separator) continue;
+ if (!mi || mi->separator) continue;
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_IN,
_cb_menu_pre_select, mi);
evas_object_event_callback_add(mi->event_object, EVAS_CALLBACK_MOUSE_OUT,
@@ -212,7 +214,9 @@
int number;
mi = data;
+ if (!mi) return;
pi = mi->cb.data;
+ if (!pi) return;
number = (evas_list_count(pi->histo.list) - (e_menu_item_num_get(mi)+1));
@@ -241,7 +245,9 @@
Photo_Item *pi;
mi = data;
+ if (!mi) return;
pi = mi->cb.data;
+ if (!pi) return;
DPIC(("Histo menu : Post select callback"));
===================================================================
RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_local.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- photo_picture_local.c 12 Jul 2006 06:11:39 -0000 1.4
+++ photo_picture_local.c 12 Jul 2006 18:39:08 -0000 1.5
@@ -24,6 +24,7 @@
struct _Picture_Local_List
{
Evas_List *pictures;
+ int pictures_waiting_delete;
/* thumb */
struct
@@ -159,7 +160,7 @@
DPICL(("Trying to get a picture, position = %d", position));
- if (!evas_list_count(pl->pictures))
+ if (!evas_list_count(pl->pictures) - pl->pictures_waiting_delete)
return NULL;
if (position != PICTURE_LOCAL_GET_RANDOM)
@@ -192,8 +193,9 @@
int photo_picture_local_loaded_nb_get(void)
{
- return (evas_list_count(pictures_local->pictures) -
- pictures_local->thumb.nb);
+ return ((evas_list_count(pictures_local->pictures) -
+ pictures_local->thumb.nb) -
+ pictures_local->pictures_waiting_delete);
}
int photo_picture_local_tothumb_nb_get(void)
@@ -228,6 +230,11 @@
DPICL(("Loader event RAISED !"));
}
+void photo_picture_local_picture_deleteme_nb_update(int how_much)
+{
+ pictures_local->pictures_waiting_delete += how_much;
+}
+
Picture_Local_Dir *photo_picture_local_dir_new(char *path, int recursive, int
read_hidden)
{
Picture_Local_Dir *dir;
@@ -281,7 +288,7 @@
if (photo_picture_free(p, force, force_now))
pictures_local->pictures =
evas_list_remove(pictures_local->pictures, p);
else
- no++;
+ no++;
}
}
@@ -348,15 +355,8 @@
char buf[50];
snprintf(buf, sizeof(buf), "Scan finished : %d pictures found",
- evas_list_count(pl->pictures) + pl->thumb.nb);
+ evas_list_count(pl->pictures) -
pl->pictures_waiting_delete);
POPUP_LOADING(pl, buf, 3);
- /* tell how much pictures to thumb */
- if (pl->thumb.nb)
- {
- snprintf(buf, sizeof(buf), "Still %d pictures to
thumbnail",
- pl->thumb.nb);
- POPUP_THUMBNAILING(pl, buf, 3);
- }
}
return 0;
}
@@ -415,7 +415,7 @@
int nb;
/* loading popup message */
- nb = evas_list_count(pl->pictures) + pl->thumb.nb;
+ nb = evas_list_count(pl->pictures) - pl->pictures_waiting_delete;
if (nb && ((nb == 1) || !(nb%PICTURE_LOCAL_POPUP_LOADER_MOD)))
{
char buf[50];
@@ -517,9 +517,12 @@
DPICL(("back from thumb generation of %s", picture->infos.name));
+ pl->thumb.nb--;
+
if (!obj)
{
DPICL(("generated object is NULL !!"));
+ pl->pictures = evas_list_remove(pl->pictures, picture);
photo_picture_free(picture, 1, 1);
return;
}
@@ -530,18 +533,8 @@
picture->thumb = PICTURE_THUMB_READY;
- pl->thumb.nb--;
-
/* popups about thumbnailing */
- /* first thumbnailing popup message */
- if (photo->config->local.popup &&
- pl->thumb.popup_show && (pl->thumb.nb == 1))
- {
- pl->thumb.popup_show = 0;
- POPUP_THUMBNAILING(pl, "Thumbnailing some pictures", 0);
- }
-
/* thumbnailing message, only one time */
if (photo->config->local.thumb_msg)
{
@@ -583,15 +576,21 @@
/* refreshes */
- if (!pl->thumb.nb && photo->config_dialog)
- photo_config_dialog_refresh_local_load();
+ if (photo->config_dialog)
+ {
+ if (!pl->thumb.nb)
+ {
+ photo_config_dialog_refresh_local_load();
+ photo_config_dialog_refresh_local_infos();
+ }
+ if ( !(pl->thumb.nb%100) )
+ photo_config_dialog_refresh_local_infos();
+ }
+
+ /* new picture event */
if (pl->loader_ev.nb_clients)
photo_picture_local_ev_raise(1);
-
- if (photo->config_dialog &&
- !(evas_list_count(pl->pictures)%100))
- photo_config_dialog_refresh_local_infos();
/* if the pic is loaded, remove it, we dont want it */
===================================================================
RCS file: /cvs/e/e_modules/photo/src/module/photo_picture_local.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- photo_picture_local.h 7 Jul 2006 17:15:25 -0000 1.1
+++ photo_picture_local.h 12 Jul 2006 18:39:08 -0000 1.2
@@ -61,5 +61,7 @@
Picture_Local_Dir *photo_picture_local_dir_new(char *path, int recursive, int
read_hidden);
void photo_picture_local_dir_free(Picture_Local_Dir *dir, int
del_dialog);
+void photo_picture_local_picture_deleteme_nb_update(int
how_much);
+
#endif
#endif
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs