forked from enlightenment/enlightenment
Show correct wallpaper name in thumbnail list - do not use thumbnail name.
SVN revision: 34125
This commit is contained in:
parent
66dde291b8
commit
12818af2f7
|
@ -26,7 +26,7 @@ struct _Import
|
||||||
struct _E_Config_Dialog_Data
|
struct _E_Config_Dialog_Data
|
||||||
{
|
{
|
||||||
Evas_Object *ofm, *o, *osfm, *ol;
|
Evas_Object *ofm, *o, *osfm, *ol;
|
||||||
Ecore_List *thumbs, *medias;
|
Ecore_List *thumbs, *names, *medias;
|
||||||
Ecore_Con_Url *ecu;
|
Ecore_Con_Url *ecu;
|
||||||
Ecore_Event_Handler *hdata, *hcomplete;
|
Ecore_Event_Handler *hdata, *hcomplete;
|
||||||
FILE *feed;
|
FILE *feed;
|
||||||
|
@ -100,6 +100,8 @@ e_int_config_wallpaper_web(E_Config_Dialog *parent)
|
||||||
cfdata->o = o;
|
cfdata->o = o;
|
||||||
cfdata->thumbs = ecore_list_new();
|
cfdata->thumbs = ecore_list_new();
|
||||||
ecore_list_free_cb_set(cfdata->thumbs, free);
|
ecore_list_free_cb_set(cfdata->thumbs, free);
|
||||||
|
cfdata->names = ecore_list_new();
|
||||||
|
ecore_list_free_cb_set(cfdata->names, free);
|
||||||
cfdata->medias = ecore_list_new();
|
cfdata->medias = ecore_list_new();
|
||||||
ecore_list_free_cb_set(cfdata->medias, free);
|
ecore_list_free_cb_set(cfdata->medias, free);
|
||||||
|
|
||||||
|
@ -207,6 +209,7 @@ e_int_config_wallpaper_web_del(E_Dialog *dia)
|
||||||
free(cfdata->tmpdir);
|
free(cfdata->tmpdir);
|
||||||
}
|
}
|
||||||
ecore_list_destroy(cfdata->thumbs);
|
ecore_list_destroy(cfdata->thumbs);
|
||||||
|
ecore_list_destroy(cfdata->names);
|
||||||
ecore_list_destroy(cfdata->medias);
|
ecore_list_destroy(cfdata->medias);
|
||||||
|
|
||||||
e_int_config_wallpaper_web_done(import->parent);
|
e_int_config_wallpaper_web_done(import->parent);
|
||||||
|
@ -296,7 +299,7 @@ _parse_feed(void *data)
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
FILE *fh;
|
FILE *fh;
|
||||||
char instr[1024];
|
char instr[1024];
|
||||||
char *edj, *img, *title;
|
char *edj, *img, *name, *title;
|
||||||
int state = -1;
|
int state = -1;
|
||||||
|
|
||||||
import = data;
|
import = data;
|
||||||
|
@ -314,7 +317,19 @@ _parse_feed(void *data)
|
||||||
state = 1;
|
state = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strstr(instr, "<link>") != NULL) && (state == 1))
|
if ((strstr(instr, "<title>") != NULL) && (state == 1))
|
||||||
|
{
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
name = strchr(instr, '>');
|
||||||
|
name++;
|
||||||
|
p = strchr(name, '<');
|
||||||
|
*p = 0;
|
||||||
|
name = strdup(name);
|
||||||
|
state = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((strstr(instr, "<link>") != NULL) && (state == 2))
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
@ -326,11 +341,11 @@ _parse_feed(void *data)
|
||||||
if (!strcmp(p, ".edj"))
|
if (!strcmp(p, ".edj"))
|
||||||
{
|
{
|
||||||
edj = strdup(edj);
|
edj = strdup(edj);
|
||||||
state = 2;
|
state = 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strstr(instr, "<enclosure") != NULL) && (state == 2))
|
if ((strstr(instr, "<enclosure") != NULL) && (state == 3))
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
@ -339,12 +354,13 @@ _parse_feed(void *data)
|
||||||
p = strchr(img, '"');
|
p = strchr(img, '"');
|
||||||
*p = 0;
|
*p = 0;
|
||||||
img = strdup(img);
|
img = strdup(img);
|
||||||
state = 3;
|
state = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strstr(instr, "</item>") != NULL) && (state == 3))
|
if ((strstr(instr, "</item>") != NULL) && (state == 4))
|
||||||
{
|
{
|
||||||
ecore_list_append(cfdata->thumbs, img);
|
ecore_list_append(cfdata->thumbs, img);
|
||||||
|
ecore_list_append(cfdata->names, name);
|
||||||
ecore_list_append(cfdata->medias, edj);
|
ecore_list_append(cfdata->medias, edj);
|
||||||
state = 0;
|
state = 0;
|
||||||
}
|
}
|
||||||
|
@ -371,7 +387,7 @@ _get_thumbs(void *data)
|
||||||
{
|
{
|
||||||
Import *import;
|
Import *import;
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
char *src, *dest, *dtmp;
|
char *src, *dest, *dtmp, *name, *ext;
|
||||||
|
|
||||||
import = data;
|
import = data;
|
||||||
cfdata = import->cfdata;
|
cfdata = import->cfdata;
|
||||||
|
@ -379,9 +395,12 @@ _get_thumbs(void *data)
|
||||||
asprintf(&dtmp, "%s/.tmp", cfdata->tmpdir);
|
asprintf(&dtmp, "%s/.tmp", cfdata->tmpdir);
|
||||||
ecore_file_mkdir(dtmp);
|
ecore_file_mkdir(dtmp);
|
||||||
ecore_list_first_goto(cfdata->thumbs);
|
ecore_list_first_goto(cfdata->thumbs);
|
||||||
|
ecore_list_first_goto(cfdata->names);
|
||||||
while ((src = ecore_list_next(cfdata->thumbs)))
|
while ((src = ecore_list_next(cfdata->thumbs)))
|
||||||
{
|
{
|
||||||
asprintf(&dest, "%s/%s", dtmp, ecore_file_file_get(src));
|
name = ecore_list_next(cfdata->names);
|
||||||
|
ext = strrchr(src, '.');
|
||||||
|
asprintf(&dest, "%s/%s%s", dtmp, name, ext);
|
||||||
ecore_file_download(src, dest, _get_thumb_complete, NULL, import);
|
ecore_file_download(src, dest, _get_thumb_complete, NULL, import);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -426,14 +445,14 @@ _file_click_cb(void *data, Evas_Object *obj, void *ev_info)
|
||||||
if (cfdata->ready_for_edj == 0) return;
|
if (cfdata->ready_for_edj == 0) return;
|
||||||
|
|
||||||
icon_info = sels->data;
|
icon_info = sels->data;
|
||||||
if (ecore_list_find(cfdata->thumbs, ECORE_COMPARE_CB(_list_find), icon_info->file))
|
if (ecore_list_find(cfdata->names, ECORE_COMPARE_CB(_list_find), icon_info->file))
|
||||||
cfdata->edj = ecore_list_index_goto(cfdata->medias, ecore_list_index(cfdata->thumbs));
|
cfdata->edj = ecore_list_index_goto(cfdata->medias, ecore_list_index(cfdata->names));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_list_find(const char *str1, const char *str2)
|
_list_find(const char *str1, const char *str2)
|
||||||
{
|
{
|
||||||
return strcmp(ecore_file_file_get(str1), str2);
|
return strcmp(str1, ecore_file_strip_ext(str2));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -605,6 +624,8 @@ _reset(void *data)
|
||||||
// Clean lists
|
// Clean lists
|
||||||
if (!ecore_list_empty_is(cfdata->thumbs))
|
if (!ecore_list_empty_is(cfdata->thumbs))
|
||||||
ecore_list_clear(cfdata->thumbs);
|
ecore_list_clear(cfdata->thumbs);
|
||||||
|
if (!ecore_list_empty_is(cfdata->names))
|
||||||
|
ecore_list_clear(cfdata->names);
|
||||||
if (!ecore_list_empty_is(cfdata->medias))
|
if (!ecore_list_empty_is(cfdata->medias))
|
||||||
ecore_list_clear(cfdata->medias);
|
ecore_list_clear(cfdata->medias);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue