Ephoto: More monitor work
This commit is contained in:
parent
3855fd4795
commit
9ec91c1297
|
@ -470,9 +470,11 @@ _monitor_created(void *data, int type EINA_UNUSED, void *event)
|
||||||
|
|
||||||
snprintf(file, PATH_MAX, "%s", ev->filename);
|
snprintf(file, PATH_MAX, "%s", ev->filename);
|
||||||
snprintf(dir, PATH_MAX, "%s", ecore_file_dir_get(file));
|
snprintf(dir, PATH_MAX, "%s", ecore_file_dir_get(file));
|
||||||
|
|
||||||
|
printf("Howdy %s\n", ev->filename);
|
||||||
|
|
||||||
if (strcmp(ephoto->config->directory, dir))
|
if (strcmp(ephoto->config->directory, dir))
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
|
||||||
if (evas_object_image_extension_can_load_get(ev->filename))
|
if (evas_object_image_extension_can_load_get(ev->filename))
|
||||||
{
|
{
|
||||||
|
@ -552,6 +554,8 @@ _monitor_modified(void *data, int type EINA_UNUSED, void *event)
|
||||||
Eio_Monitor_Event *ev = event;
|
Eio_Monitor_Event *ev = event;
|
||||||
char file[PATH_MAX], dir[PATH_MAX];
|
char file[PATH_MAX], dir[PATH_MAX];
|
||||||
|
|
||||||
|
printf("Doody %s\n", ev->filename);
|
||||||
|
|
||||||
snprintf(file, PATH_MAX, "%s", ev->filename);
|
snprintf(file, PATH_MAX, "%s", ev->filename);
|
||||||
snprintf(dir, PATH_MAX, "%s", ecore_file_dir_get(file));
|
snprintf(dir, PATH_MAX, "%s", ecore_file_dir_get(file));
|
||||||
|
|
||||||
|
@ -562,6 +566,7 @@ _monitor_modified(void *data, int type EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Ephoto_Entry *entry;
|
Ephoto_Entry *entry;
|
||||||
|
int found = 0;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ephoto->entries, l, entry)
|
EINA_LIST_FOREACH(ephoto->entries, l, entry)
|
||||||
{
|
{
|
||||||
|
@ -574,11 +579,17 @@ _monitor_modified(void *data, int type EINA_UNUSED, void *event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ephoto_thumb_browser_update(ephoto, entry);
|
if (!entry->item)
|
||||||
|
ephoto_thumb_browser_insert(ephoto, entry);
|
||||||
|
else
|
||||||
|
ephoto_thumb_browser_update(ephoto, entry);
|
||||||
}
|
}
|
||||||
|
found = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!found)
|
||||||
|
_monitor_created(ephoto, 0, ev);
|
||||||
}
|
}
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,6 @@ struct _Ephoto_Viewer
|
||||||
double zoom;
|
double zoom;
|
||||||
Eina_Bool fit:1;
|
Eina_Bool fit:1;
|
||||||
Eina_Bool zoom_first:1;
|
Eina_Bool zoom_first:1;
|
||||||
Eina_Bool modified:1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void _zoom_set(Ephoto_Single_Browser *sb, double zoom);
|
static void _zoom_set(Ephoto_Single_Browser *sb, double zoom);
|
||||||
|
@ -71,33 +70,6 @@ _viewer_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
free(v);
|
free(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_monitor_modified(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
|
|
||||||
{
|
|
||||||
Ephoto_Single_Browser *sb = data;
|
|
||||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
|
||||||
|
|
||||||
if (!ecore_file_exists(sb->entry->path))
|
|
||||||
ephoto_entry_free(sb->ephoto, sb->entry);
|
|
||||||
else
|
|
||||||
v->modified = EINA_TRUE;
|
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_monitor_closed(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
|
|
||||||
{
|
|
||||||
Ephoto_Single_Browser *sb = data;
|
|
||||||
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
|
||||||
|
|
||||||
if (v->modified == EINA_TRUE)
|
|
||||||
{
|
|
||||||
ephoto_single_browser_entry_set(sb->main, sb->entry);
|
|
||||||
v->modified = EINA_FALSE;
|
|
||||||
}
|
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_image_create_icon(void *data, Evas_Object *parent, Evas_Coord *xoff,
|
_image_create_icon(void *data, Evas_Object *parent, Evas_Coord *xoff,
|
||||||
Evas_Coord *yoff)
|
Evas_Coord *yoff)
|
||||||
|
@ -179,6 +151,63 @@ _image_mouse_up_cb(void *data, Evas *e EINA_UNUSED,
|
||||||
_1s_hold = NULL;
|
_1s_hold = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
_get_edje_group(const char *path)
|
||||||
|
{
|
||||||
|
const char *group = NULL;
|
||||||
|
const char *ext = strrchr(path, '.');
|
||||||
|
|
||||||
|
if (ext)
|
||||||
|
{
|
||||||
|
ext++;
|
||||||
|
if ((strcasecmp(ext, "edj") == 0))
|
||||||
|
{
|
||||||
|
if (edje_file_group_exists(path, "e/desktop/background"))
|
||||||
|
group = "e/desktop/background";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Eina_List *g = edje_file_collection_list(path);
|
||||||
|
|
||||||
|
group = eina_list_data_get(g);
|
||||||
|
edje_file_collection_list_free(g);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return group;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_monitor_modified(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Ephoto_Single_Browser *sb = data;
|
||||||
|
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||||
|
|
||||||
|
printf("Cutie\n");
|
||||||
|
|
||||||
|
if (!ecore_file_exists(sb->entry->path))
|
||||||
|
ephoto_entry_free(sb->ephoto, sb->entry);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Evas_Object *tmp;
|
||||||
|
Evas_Coord w, h;
|
||||||
|
const char *group = _get_edje_group(sb->entry->path);
|
||||||
|
|
||||||
|
tmp = evas_object_image_add(evas_object_evas_get(v->table));
|
||||||
|
evas_object_image_file_set(tmp, sb->entry->path, group);
|
||||||
|
evas_object_image_size_get(tmp, &w, &h);
|
||||||
|
evas_object_del(tmp);
|
||||||
|
|
||||||
|
if (w > 0 && h > 0)
|
||||||
|
{
|
||||||
|
evas_object_hide(v->image);
|
||||||
|
elm_image_file_set(v->image, sb->entry->path, group);
|
||||||
|
evas_object_show(v->image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
_viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
|
@ -188,25 +217,8 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
||||||
v->zoom_first = EINA_TRUE;
|
v->zoom_first = EINA_TRUE;
|
||||||
|
|
||||||
Evas_Coord w, h;
|
Evas_Coord w, h;
|
||||||
const char *group = NULL;
|
const char *group = _get_edje_group(path);
|
||||||
const char *ext = strrchr(path, '.');
|
|
||||||
|
|
||||||
if (ext)
|
|
||||||
{
|
|
||||||
ext++;
|
|
||||||
if ((strcasecmp(ext, "edj") == 0))
|
|
||||||
{
|
|
||||||
if (edje_file_group_exists(path, "e/desktop/background"))
|
|
||||||
group = "e/desktop/background";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Eina_List *g = edje_file_collection_list(path);
|
|
||||||
|
|
||||||
group = eina_list_data_get(g);
|
|
||||||
edje_file_collection_list_free(g);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
v->scroller = elm_scroller_add(parent);
|
v->scroller = elm_scroller_add(parent);
|
||||||
evas_object_size_hint_weight_set(v->scroller, EVAS_HINT_EXPAND,
|
evas_object_size_hint_weight_set(v->scroller, EVAS_HINT_EXPAND,
|
||||||
EVAS_HINT_EXPAND);
|
EVAS_HINT_EXPAND);
|
||||||
|
@ -229,7 +241,7 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
||||||
elm_image_file_set(v->image, path, group);
|
elm_image_file_set(v->image, path, group);
|
||||||
err = evas_object_image_load_error_get(elm_image_object_get(v->image));
|
err = evas_object_image_load_error_get(elm_image_object_get(v->image));
|
||||||
if (err != EVAS_LOAD_ERROR_NONE)
|
if (err != EVAS_LOAD_ERROR_NONE)
|
||||||
goto error;
|
goto error;
|
||||||
evas_object_image_size_get(elm_image_object_get(v->image), &w, &h);
|
evas_object_image_size_get(elm_image_object_get(v->image), &w, &h);
|
||||||
elm_drop_target_add(v->image, ELM_SEL_FORMAT_IMAGE, NULL, NULL, NULL, NULL,
|
elm_drop_target_add(v->image, ELM_SEL_FORMAT_IMAGE, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, NULL);
|
||||||
|
@ -252,9 +264,6 @@ _viewer_add(Evas_Object *parent, const char *path, Ephoto_Single_Browser *sb)
|
||||||
v->handlers = eina_list_append(v->handlers,
|
v->handlers = eina_list_append(v->handlers,
|
||||||
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
|
ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED,
|
||||||
_monitor_modified, sb));
|
_monitor_modified, sb));
|
||||||
v->handlers = eina_list_append(v->handlers,
|
|
||||||
ecore_event_handler_add(EIO_MONITOR_FILE_CLOSED, _monitor_closed, sb));
|
|
||||||
|
|
||||||
return v->scroller;
|
return v->scroller;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
@ -2882,27 +2891,8 @@ ephoto_single_browser_cancel_editing(Evas_Object *main, Evas_Object *image)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char *group = NULL;
|
const char *group = _get_edje_group(sb->entry->path);
|
||||||
const char *ext = strrchr(sb->entry->path, '.');
|
elm_image_file_set(image, sb->entry->path, group);
|
||||||
|
|
||||||
if (ext)
|
|
||||||
{
|
|
||||||
ext++;
|
|
||||||
if ((strcasecmp(ext, "edj") == 0))
|
|
||||||
{
|
|
||||||
if (edje_file_group_exists(sb->entry->path,
|
|
||||||
"e/desktop/background"))
|
|
||||||
group = "e/desktop/background";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Eina_List *g =
|
|
||||||
edje_file_collection_list(sb->entry->path);
|
|
||||||
group = eina_list_data_get(g);
|
|
||||||
edje_file_collection_list_free(g);
|
|
||||||
}
|
|
||||||
elm_image_file_set(image, sb->entry->path, group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
evas_object_freeze_events_set(sb->bar, EINA_FALSE);
|
evas_object_freeze_events_set(sb->bar, EINA_FALSE);
|
||||||
elm_object_disabled_set(sb->bar, EINA_FALSE);
|
elm_object_disabled_set(sb->bar, EINA_FALSE);
|
||||||
|
|
Loading…
Reference in New Issue