forked from enlightenment/enlightenment
'everything' module: results from valgrind session and some cleanups
SVN revision: 41692
This commit is contained in:
parent
dd0c34e4c5
commit
01d1ae246e
|
@ -587,6 +587,7 @@ _evry_selector_free(Evry_Selector *sel)
|
||||||
if (p->tab) evas_object_del(p->tab);
|
if (p->tab) evas_object_del(p->tab);
|
||||||
p->tab = NULL;
|
p->tab = NULL;
|
||||||
}
|
}
|
||||||
|
E_FREE(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
_evry_plug_aggregator_free(sel->aggregator);
|
_evry_plug_aggregator_free(sel->aggregator);
|
||||||
|
@ -1020,8 +1021,10 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
if (ev->event_window != input_window) return 1;
|
if (ev->event_window != input_window) return 1;
|
||||||
|
|
||||||
if (!strcmp(ev->key, "Up"))
|
if (!strcmp(ev->key, "Up"))
|
||||||
|
/* if (!strcmp(ev->key, "K")) */
|
||||||
_evry_list_item_prev(s);
|
_evry_list_item_prev(s);
|
||||||
else if (!strcmp(ev->key, "Down"))
|
else if (!strcmp(ev->key, "Down"))
|
||||||
|
/* else if (!strcmp(ev->key, "J")) */
|
||||||
_evry_list_item_next(s);
|
_evry_list_item_next(s);
|
||||||
else if (!strcmp(ev->key, "Right") &&
|
else if (!strcmp(ev->key, "Right") &&
|
||||||
(ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT))
|
(ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT))
|
||||||
|
@ -1030,8 +1033,10 @@ _evry_cb_key_down(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
(ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT))
|
(ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT))
|
||||||
_evry_list_plugin_prev(s);
|
_evry_list_plugin_prev(s);
|
||||||
else if (!strcmp(ev->key, "Right"))
|
else if (!strcmp(ev->key, "Right"))
|
||||||
|
/* else if (!strcmp(ev->key, "L")) */
|
||||||
_evry_browse_item(selector);
|
_evry_browse_item(selector);
|
||||||
else if (!strcmp(ev->key, "Left"))
|
else if (!strcmp(ev->key, "Left"))
|
||||||
|
/* else if (!strcmp(ev->key, "H")) */
|
||||||
_evry_browse_back(selector);
|
_evry_browse_back(selector);
|
||||||
else if ((!strcmp(ev->key, "Return")) &&
|
else if ((!strcmp(ev->key, "Return")) &&
|
||||||
((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) ||
|
((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) ||
|
||||||
|
@ -1363,8 +1368,9 @@ _evry_matches_update(Evry_Selector *sel, Evry_Plugin *plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((has_items && eina_list_count(p->items) > 0) ||
|
if ((has_items && eina_list_count(p->items) > 0) ||
|
||||||
(sel->states->next) ||
|
(sel->states->next)
|
||||||
(p->async_query)) /* XXX append in async_update instead?*/
|
/* (p->async_query) */
|
||||||
|
) /* XXX append in async_update instead?*/
|
||||||
{
|
{
|
||||||
s->cur_plugins = eina_list_append(s->cur_plugins, p);
|
s->cur_plugins = eina_list_append(s->cur_plugins, p);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,8 @@ typedef struct _Inst Inst;
|
||||||
struct _Inst
|
struct _Inst
|
||||||
{
|
{
|
||||||
Eina_Hash *added;
|
Eina_Hash *added;
|
||||||
Eina_List *apps;
|
Eina_List *apps_mime;
|
||||||
|
Eina_List *apps_all;
|
||||||
Evry_Item *candidate;
|
Evry_Item *candidate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -37,20 +38,27 @@ _begin(Evry_Plugin *p, Evry_Item *it)
|
||||||
else
|
else
|
||||||
mime = it->mime;
|
mime = it->mime;
|
||||||
|
|
||||||
|
/* TODO show plugin for items without mimetype ? */
|
||||||
if (!mime) return 0;
|
if (!mime) return 0;
|
||||||
|
|
||||||
inst = E_NEW(Inst, 1);
|
inst = E_NEW(Inst, 1);
|
||||||
inst->candidate = it;
|
inst->candidate = it;
|
||||||
|
inst->apps_mime = efreet_util_desktop_mime_list(mime);
|
||||||
inst->apps = efreet_util_desktop_mime_list(mime);
|
|
||||||
desktop = e_exehist_mime_desktop_get(mime);
|
desktop = e_exehist_mime_desktop_get(mime);
|
||||||
if (desktop)
|
if (desktop)
|
||||||
{
|
{
|
||||||
efreet_desktop_ref(desktop);
|
efreet_desktop_ref(desktop);
|
||||||
inst->apps = eina_list_prepend(inst->apps, desktop);
|
inst->apps_mime = eina_list_prepend(inst->apps_mime, desktop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inst = E_NEW(Inst, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inst)
|
||||||
|
inst->apps_all = efreet_util_desktop_name_glob_list("*");
|
||||||
|
|
||||||
p->private = inst;
|
p->private = inst;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -81,25 +89,31 @@ _cleanup(Evry_Plugin *p)
|
||||||
|
|
||||||
if (inst)
|
if (inst)
|
||||||
{
|
{
|
||||||
if (inst->apps) eina_list_free(inst->apps);
|
Efreet_Desktop *desktop;
|
||||||
|
EINA_LIST_FREE(inst->apps_mime, desktop)
|
||||||
|
efreet_desktop_free(desktop);
|
||||||
|
EINA_LIST_FREE(inst->apps_all, desktop)
|
||||||
|
efreet_desktop_free(desktop);
|
||||||
|
|
||||||
E_FREE(inst);
|
E_FREE(inst);
|
||||||
}
|
}
|
||||||
|
|
||||||
p->private = NULL;
|
p->private = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
_item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
_item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
||||||
{
|
{
|
||||||
Evry_Item *it;
|
Evry_Item *it;
|
||||||
Evry_App *app;
|
Evry_App *app;
|
||||||
Efreet_Desktop *d2;
|
Efreet_Desktop *d2;
|
||||||
Inst *inst = p->private;
|
Inst *inst = p->private;
|
||||||
|
int already_refd = 0;
|
||||||
|
|
||||||
if (desktop)
|
if (desktop)
|
||||||
file = desktop->exec;
|
file = desktop->exec;
|
||||||
|
|
||||||
if (!file) return;
|
if (!file) return 0;
|
||||||
|
|
||||||
if (!desktop)
|
if (!desktop)
|
||||||
{
|
{
|
||||||
|
@ -109,7 +123,7 @@ _item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
if (eina_hash_find(inst->added, file))
|
if (eina_hash_find(inst->added, file))
|
||||||
return;
|
return 0;
|
||||||
|
|
||||||
len = strlen(file);
|
len = strlen(file);
|
||||||
tmp = ecore_file_app_exe_get(file);
|
tmp = ecore_file_app_exe_get(file);
|
||||||
|
@ -121,6 +135,7 @@ _item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
||||||
if (!desktop && d2->exec && !strncmp(file, d2->exec, len))
|
if (!desktop && d2->exec && !strncmp(file, d2->exec, len))
|
||||||
{
|
{
|
||||||
desktop = d2;
|
desktop = d2;
|
||||||
|
already_refd = 1;
|
||||||
efreet_desktop_ref(desktop);
|
efreet_desktop_ref(desktop);
|
||||||
}
|
}
|
||||||
efreet_desktop_free(d2);
|
efreet_desktop_free(d2);
|
||||||
|
@ -137,9 +152,10 @@ _item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
||||||
if ((d2 = eina_hash_find(inst->added, file)) &&
|
if ((d2 = eina_hash_find(inst->added, file)) &&
|
||||||
((desktop == d2) ||
|
((desktop == d2) ||
|
||||||
(!strcmp(desktop->exec, d2->exec))))
|
(!strcmp(desktop->exec, d2->exec))))
|
||||||
return;
|
return 0;
|
||||||
|
|
||||||
efreet_desktop_ref(desktop);
|
if (!already_refd)
|
||||||
|
efreet_desktop_ref(desktop);
|
||||||
eina_hash_add(inst->added, file, desktop);
|
eina_hash_add(inst->added, file, desktop);
|
||||||
file = NULL;
|
file = NULL;
|
||||||
}
|
}
|
||||||
|
@ -156,6 +172,8 @@ _item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
|
||||||
it->priority = prio;
|
it->priority = prio;
|
||||||
|
|
||||||
p->items = eina_list_append(p->items, it);
|
p->items = eina_list_append(p->items, it);
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -191,8 +209,6 @@ _add_desktop_list(Evry_Plugin *p, Eina_List *apps, char *m1, char *m2)
|
||||||
* _item_add(p, desktop, NULL, 4);
|
* _item_add(p, desktop, NULL, 4);
|
||||||
* } */
|
* } */
|
||||||
}
|
}
|
||||||
EINA_LIST_FOREACH(apps, l, desktop)
|
|
||||||
efreet_desktop_free(desktop);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -227,7 +243,6 @@ _cb_sort(const void *data1, const void *data2)
|
||||||
|
|
||||||
if ((int)(t2 - t1))
|
if ((int)(t2 - t1))
|
||||||
return (int)(t2 - t1);
|
return (int)(t2 - t1);
|
||||||
|
|
||||||
|
|
||||||
// TODO compare exe strings?
|
// TODO compare exe strings?
|
||||||
else return 0;
|
else return 0;
|
||||||
|
@ -244,13 +259,8 @@ _fetch(Evry_Plugin *p, const char *input)
|
||||||
Evry_Item *it;
|
Evry_Item *it;
|
||||||
Evry_App *app;
|
Evry_App *app;
|
||||||
Inst *inst = p->private;
|
Inst *inst = p->private;
|
||||||
|
|
||||||
if (!inst)
|
inst->added = eina_hash_string_small_new(NULL);
|
||||||
{
|
|
||||||
inst = E_NEW(Inst, 1);
|
|
||||||
p->private = inst;
|
|
||||||
}
|
|
||||||
inst->added = eina_hash_string_superfast_new(NULL);
|
|
||||||
|
|
||||||
_list_free(p);
|
_list_free(p);
|
||||||
|
|
||||||
|
@ -261,40 +271,34 @@ _fetch(Evry_Plugin *p, const char *input)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add apps for a given mimetype */
|
/* add apps for a given mimetype */
|
||||||
if (inst && inst->apps)
|
if (p->type == type_action)
|
||||||
{
|
{
|
||||||
if (!input)
|
if (input)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(inst->apps, l, desktop)
|
_add_desktop_list(p, inst->apps_mime, match1, match2);
|
||||||
{
|
|
||||||
_item_add(p, desktop, NULL, 1);
|
|
||||||
efreet_desktop_free(desktop);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_add_desktop_list(p, inst->apps, match1, match2);
|
EINA_LIST_FOREACH(inst->apps_mime, l, desktop)
|
||||||
inst->apps = NULL;
|
_item_add(p, desktop, NULL, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (input)
|
||||||
|
EINA_LIST_FOREACH(p->items, l, it)
|
||||||
|
it->priority += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add apps matching input */
|
/* add apps matching input */
|
||||||
if (!p->items && input)
|
if (input)
|
||||||
{
|
_add_desktop_list(p, inst->apps_all, match1, match2);
|
||||||
l = efreet_util_desktop_name_glob_list("*");
|
|
||||||
if (l)
|
|
||||||
{
|
|
||||||
_add_desktop_list(p, l, match1, match2);
|
|
||||||
eina_list_free(l);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* add exe history items */
|
/* add exe history items */
|
||||||
else if (!p->items)
|
else if (!p->items)
|
||||||
{
|
{
|
||||||
l = e_exehist_list_get();
|
l = e_exehist_list_get();
|
||||||
EINA_LIST_FREE(l, file)
|
EINA_LIST_FREE(l, file)
|
||||||
_item_add(p, NULL, file, 1);
|
_item_add(p, NULL, file, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* show 'Run Command' item */
|
/* show 'Run Command' item */
|
||||||
|
@ -351,11 +355,7 @@ _fetch(Evry_Plugin *p, const char *input)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inst->added)
|
eina_hash_free(inst->added);
|
||||||
{
|
|
||||||
eina_hash_free(inst->added);
|
|
||||||
inst->added = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p->items)
|
if (p->items)
|
||||||
{
|
{
|
||||||
|
|
|
@ -357,7 +357,7 @@ static Evas_Object *
|
||||||
_item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
_item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
||||||
{
|
{
|
||||||
Evas_Object *o = NULL;
|
Evas_Object *o = NULL;
|
||||||
char *item_path;
|
char *icon_path;
|
||||||
|
|
||||||
if (!it->mime)
|
if (!it->mime)
|
||||||
_item_fill(it);
|
_item_fill(it);
|
||||||
|
@ -371,11 +371,14 @@ _item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item_path = efreet_mime_type_icon_get(it->mime, e_config->icon_theme, 64);
|
icon_path = efreet_mime_type_icon_get(it->mime, e_config->icon_theme, 64);
|
||||||
|
|
||||||
if (item_path)
|
if (icon_path)
|
||||||
o = e_util_icon_add(item_path, e);
|
{
|
||||||
if (!o)
|
o = e_util_icon_add(icon_path, e);
|
||||||
|
free(icon_path);
|
||||||
|
}
|
||||||
|
if (!o)
|
||||||
{
|
{
|
||||||
o = e_icon_add(e);
|
o = e_icon_add(e);
|
||||||
evry_icon_theme_set(o, "none");
|
evry_icon_theme_set(o, "none");
|
||||||
|
|
|
@ -143,7 +143,7 @@ _fetch(Evry_Plugin *p, const char *input)
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
_item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
||||||
{
|
{
|
||||||
char *item_path;
|
char *icon_path;
|
||||||
Evas_Object *o = NULL;
|
Evas_Object *o = NULL;
|
||||||
|
|
||||||
if (it->browseable)
|
if (it->browseable)
|
||||||
|
@ -153,10 +153,13 @@ _item_icon_get(Evry_Plugin *p __UNUSED__, Evry_Item *it, Evas *e)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item_path = efreet_mime_type_icon_get(it->mime, e_config->icon_theme, 64);
|
icon_path = efreet_mime_type_icon_get(it->mime, e_config->icon_theme, 64);
|
||||||
|
|
||||||
if (item_path)
|
if (icon_path)
|
||||||
o = e_util_icon_add(item_path, e);
|
{
|
||||||
|
o = e_util_icon_add(icon_path, e);
|
||||||
|
free(icon_path);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
o = e_icon_add(e);
|
o = e_icon_add(e);
|
||||||
|
|
Loading…
Reference in New Issue