'everything' module:

- dirbrowse: '..' or '/' + <tab> goes to parent resp root dir  


SVN revision: 41295
This commit is contained in:
Hannes Janetzek 2009-07-10 15:47:19 +00:00
parent c3576b941b
commit 234db9b3a3
4 changed files with 46 additions and 7 deletions

View File

@ -180,6 +180,7 @@ EAPI void evry_plugin_unregister(Evry_Plugin *p);
EAPI void evry_action_register(Evry_Action *act); EAPI void evry_action_register(Evry_Action *act);
EAPI void evry_action_unregister(Evry_Action *act); EAPI void evry_action_unregister(Evry_Action *act);
EAPI void evry_plugin_async_update(Evry_Plugin *plugin, int state); EAPI void evry_plugin_async_update(Evry_Plugin *plugin, int state);
EAPI void evry_clear_input(void);
EAPI int evry_plug_apps_init(void); EAPI int evry_plug_apps_init(void);
EAPI int evry_plug_apps_shutdown(void); EAPI int evry_plug_apps_shutdown(void);

View File

@ -370,6 +370,16 @@ evry_plugin_async_update(Evry_Plugin *p, int action)
} }
} }
EAPI void
evry_clear_input(void)
{
if (cur_state->input[0] != 0)
{
cur_state->input[0] = 0;
}
}
/* local subsystem functions */ /* local subsystem functions */
static int static int
_evry_cb_plugin_sort(const void *data1, const void *data2) _evry_cb_plugin_sort(const void *data1, const void *data2)
@ -389,6 +399,13 @@ _evry_push_state(void)
s = cur_state; s = cur_state;
if (update_timer)
{
_evry_matches_update(s->cur_plugin);
ecore_timer_del(update_timer);
update_timer = NULL;
}
if (s) if (s)
{ {
if (!s->cur_plugin || !s->sel_item) if (!s->cur_plugin || !s->sel_item)
@ -838,6 +855,13 @@ _evry_plugin_action(int finished)
{ {
Evry_State *s = cur_state; Evry_State *s = cur_state;
if (update_timer)
{
_evry_matches_update(s->cur_plugin);
ecore_timer_del(update_timer);
update_timer = NULL;
}
if (s->cur_plugin == action_selector) if (s->cur_plugin == action_selector)
{ {
/* set cur_action and start plugins for second parameter (if required)*/ /* set cur_action and start plugins for second parameter (if required)*/
@ -960,7 +984,7 @@ _evry_show_items(Evry_Plugin *p)
/* TODO add option */ /* TODO add option */
if (!s->initial && !s->sel_item && p->items) if (/*!s->initial &&*/!s->sel_item && p->items)
{ {
s->sel_item = p->items->data; s->sel_item = p->items->data;
_evry_item_sel(s->sel_item); _evry_item_sel(s->sel_item);

View File

@ -303,10 +303,8 @@ _item_add(Evry_Plugin *p, Efreet_Desktop *desktop, char *file, int prio)
/* ignore screensaver.. */ /* ignore screensaver.. */
EINA_LIST_FOREACH(desktop->categories, l, cat) EINA_LIST_FOREACH(desktop->categories, l, cat)
{ if (cat && !strcmp(cat, "Screensaver"))
if (cat && !strcmp(cat, "Screensaver")) return;
return;
}
file = desktop->exec; file = desktop->exec;
} }

View File

@ -7,6 +7,7 @@ struct _State
{ {
const char *directory; const char *directory;
Eina_List *items; Eina_List *items;
int command;
}; };
static int _begin(Evry_Plugin *p, Evry_Item *it); static int _begin(Evry_Plugin *p, Evry_Item *it);
@ -58,6 +59,12 @@ _begin(Evry_Plugin *p, Evry_Item *it)
{ {
State *s; State *s;
if (stack)
{
s = stack->data;
if (s->command) evry_clear_input();
}
if (it) if (it)
{ {
if (!it->uri || !ecore_file_is_dir(it->uri)) if (!it->uri || !ecore_file_is_dir(it->uri))
@ -141,8 +148,13 @@ _fetch(Evry_Plugin *p, const char *input)
{ {
if (!strncmp(input, "/", 1)) if (!strncmp(input, "/", 1))
{ {
directory = "/"; it = E_NEW(Evry_Item, 1);
input = input + 1; it->uri = eina_stringshare_add("/");
it->label = eina_stringshare_add("/");
p->items = eina_list_append(p->items, it);
s->command = 1;
return 1;
} }
else if (!strncmp(input, "..", 2)) else if (!strncmp(input, "..", 2))
{ {
@ -150,6 +162,8 @@ _fetch(Evry_Plugin *p, const char *input)
char dir[4096]; char dir[4096];
char *tmp; char *tmp;
int prio = 0; int prio = 0;
if (!strcmp(s->directory, "/")) return 0;
snprintf(dir, 4096, "%s", s->directory); snprintf(dir, 4096, "%s", s->directory);
end = strrchr(dir, '/'); end = strrchr(dir, '/');
@ -174,6 +188,8 @@ _fetch(Evry_Plugin *p, const char *input)
it->priority = prio; it->priority = prio;
p->items = eina_list_append(p->items, it); p->items = eina_list_append(p->items, it);
s->command = 1;
return 1; return 1;
} }
} }