added F1, F2 bindings for name/date sorting in files plugin

SVN revision: 49181
This commit is contained in:
Hannes Janetzek 2010-05-24 12:27:10 +00:00
parent 63bc52c2b6
commit 74547883df
2 changed files with 66 additions and 26 deletions

View File

@ -1286,41 +1286,78 @@ _file_copy_action(Evry_Action *act)
return 0;
}
static int
_file_sort_action(Evry_Action *act)
static void
_sort_by_date(Plugin *p)
{
Eina_List *l;
Evry_Item_File *file;
struct stat s;
EINA_LIST_FOREACH(p->files, l, file)
{
if (file->modified)
continue;
if (lstat(file->path, &s) == 0)
file->modified = s.st_mtime;
EVRY_ITEM(file)->usage = -1;
}
p->files = eina_list_sort(p->files, -1, _cb_sort_date);
_append_files(p);
EVRY_PLUGIN_UPDATE(p, EVRY_UPDATE_ADD);
}
static void
_sort_by_name(Plugin *p)
{
Eina_List *l;
Evry_Item *it;
EINA_LIST_FOREACH(p->files, l, it)
it->usage = 0;
p->files = eina_list_sort(p->files, -1, _cb_sort);
_append_files(p);
EVRY_PLUGIN_UPDATE(p, EVRY_UPDATE_ADD);
}
static int
_file_sort_action(Evry_Action *act)
{
GET_PLUGIN(p, act->it1.item);
if (!p) return 0;
if (EVRY_ITEM_DATA_INT_GET(act) == ACT_SORT_DATE)
{
GET_PLUGIN(p, act->it1.item);
if (!p) return 0;
EINA_LIST_FOREACH(p->files, l, file)
{
if (file->modified)
continue;
if (lstat(file->path, &s) == 0)
file->modified = s.st_mtime;
}
p->files = eina_list_sort(p->files, -1, _cb_sort_date);
_append_files(p);
EVRY_PLUGIN_UPDATE(p, EVRY_UPDATE_ADD);
_sort_by_date(p);
}
else
{
GET_PLUGIN(p, act->it1.item);
if (!p) return 0;
_sort_by_name(p);
}
p->files = eina_list_sort(p->files, -1, _cb_sort);
_append_files(p);
return 0;
}
EVRY_PLUGIN_UPDATE(p, EVRY_UPDATE_ADD);
static int
_cb_key_down(Evry_Plugin *plugin, const Ecore_Event_Key *ev)
{
GET_PLUGIN(p, plugin);
if (!strcmp(ev->key, "F1"))
{
_sort_by_name(p);
return 1;
}
if (!strcmp(ev->key, "F2"))
{
_sort_by_date(p);
return 1;
}
return 0;
@ -1390,6 +1427,7 @@ _plugins_init(const Evry_API *api)
PLUGIN_NEW(N_("Files"), _module_icon, _begin, _finish, _fetch, _browse);
p->input_type = EVRY_TYPE_FILE;
p->cb_key_down = &_cb_key_down;
p->actions = eina_list_append(p->actions, act_sort_date);
p->actions = eina_list_append(p->actions, act_sort_name);
if (evry->plugin_register(p, EVRY_PLUGIN_SUBJECT, 2))
@ -1397,6 +1435,7 @@ _plugins_init(const Evry_API *api)
PLUGIN_NEW(N_("Files"), _module_icon, _begin, _finish, _fetch, _browse);
p->cb_key_down = &_cb_key_down;
p->actions = eina_list_append(p->actions, act_sort_date);
p->actions = eina_list_append(p->actions, act_sort_name);
evry->plugin_register(p, EVRY_PLUGIN_OBJECT, 2);

View File

@ -96,9 +96,10 @@ _evry_aggregator_fetch(Evry_Selector *sel, const char *input)
if ((sel->aggregator->fetch(sel->aggregator, input)) &&
(!eina_list_data_find(s->cur_plugins, sel->aggregator)))
s->cur_plugins = eina_list_prepend(s->cur_plugins, sel->aggregator);
{
s->cur_plugins = eina_list_prepend(s->cur_plugins, sel->aggregator);
}
sel->aggregator->state = s;
return 1;