'everything' fix bug in sorting of 'all' list.

- added 'subtype' to Evry_Item


SVN revision: 48125
This commit is contained in:
Hannes Janetzek 2010-04-19 07:26:56 +00:00
parent f578d2218f
commit 90517199bc
6 changed files with 24 additions and 12 deletions

View File

@ -255,8 +255,8 @@ _scan_end_func(void *data)
evry_util_file_detail_set(file);
if (cnt >= MAX_ITEMS) continue;
cnt += _append_file(p, file);
item->priority = cnt;
}
if (d->files)
p->thread = ecore_thread_run(_scan_func, _scan_end_func, _scan_cancel_func, d);
@ -264,6 +264,7 @@ _scan_end_func(void *data)
E_FREE(d);
EVRY_PLUGIN_ITEMS_SORT(p, _cb_sort);
evry_plugin_async_update(EVRY_PLUGIN(p), EVRY_ASYNC_UPDATE_ADD);
}
@ -487,11 +488,14 @@ _fetch(Evry_Plugin *plugin, const char *input)
else
p->input = eina_stringshare_add(input);
}
EINA_LIST_FOREACH(p->files, l, file)
{
if (cnt >= MAX_ITEMS);
cnt += _append_file(p, file);
if (cnt <= MAX_ITEMS)
{
cnt += _append_file(p, file);
EVRY_ITEM(file)->priority = cnt;
}
}
if (!EVRY_PLUGIN(p)->items)

View File

@ -3,7 +3,7 @@
#include "e.h"
#define EVRY_API_VERSION 3
#define EVRY_API_VERSION 4
#define EVRY_ACTION_OTHER 0
#define EVRY_ACTION_FINISHED 1
@ -136,6 +136,9 @@ struct _Evry_Item
* was performed on a file with a specific mimetype */
const char *context;
/* optional */
const char *subtype;
/* do not set by plugin! */
Evry_Item *next;
Eina_Bool selected;

View File

@ -309,7 +309,7 @@ evry_item_new(Evry_Item *base, Evry_Plugin *p, const char *label, void (*cb_free
it->free = cb_free;
it->ref = 1;
it->usage = -1;
/* it->usage = -1; */
#ifdef CHECK_REFS
item_cnt++;

View File

@ -41,7 +41,12 @@ _cb_sort_recent(const void *data1, const void *data2)
(it2->plugin->config->priority + it2->priority));
}
return -1;
if (it1->plugin == it2->plugin)
return (it1->priority - it2->priority);
return strcmp(it1->label, it2->label);
return 1;
}
static int
@ -72,7 +77,7 @@ _cb_sort(const void *data1, const void *data2)
if ((it1->plugin == it2->plugin) &&
(it1->priority - it2->priority))
return (it1->priority - it2->priority);
if (it1->fuzzy_match || it2->fuzzy_match)
{
if (it1->fuzzy_match && !it2->fuzzy_match)
@ -88,8 +93,8 @@ _cb_sort(const void *data1, const void *data2)
if (it1->plugin->config->priority - it2->plugin->config->priority)
return (it1->plugin->config->priority - it2->plugin->config->priority);
if (it1->priority - it2->priority)
return (it1->priority - it2->priority);
/* if (it1->priority - it2->priority)
* return (it1->priority - it2->priority); */
return strcasecmp(it1->label, it2->label);
}
@ -138,6 +143,7 @@ _fetch(Evry_Plugin *plugin, const char *input)
* if (!plugin->changed)
* return 1; */
/* printf("aggreator changed\n"); */
EVRY_PLUGIN_ITEMS_FREE(p);

View File

@ -717,7 +717,7 @@ _pan_item_select(Evas_Object *obj, Item *it, int scroll)
{
double now = ecore_time_get();
if (now - sd->last_select < 0.05 && sd->sel_pos == sd->sel_pos_to)
if (now - sd->last_select < 0.1 && sd->sel_pos == sd->sel_pos_to)
{
sd->scroll_align = sd->scroll_align_to;

View File

@ -115,7 +115,6 @@ _tabs_update(Tab_View *v)
v->timer = ecore_timer_add(0.1, _timer_cb, v);
return;
}
printf("width %d\n", w);
/* remove tabs for not active plugins */
e_box_freeze(v->o_tabs);