more testing with clean profile. use predefined plugin/item priority

SVN revision: 48556
This commit is contained in:
Hannes Janetzek 2010-05-02 18:14:21 +00:00
parent 24b5a3cf4f
commit 20cd1af8ca
1 changed files with 22 additions and 14 deletions

View File

@ -44,26 +44,30 @@ _cb_sort_recent(const void *data1, const void *data2)
} }
if (it1->usage > 0 || it2->usage > 0) if (it1->usage > 0 || it2->usage > 0)
{ {
return (it1->usage > it2->usage ? -1 : 1); return (it1->usage > it2->usage ? -1 : 1);
} }
if (it1->type != EVRY_TYPE_ACTION && if (it1->type != EVRY_TYPE_ACTION &&
it2->type != EVRY_TYPE_ACTION) it2->type != EVRY_TYPE_ACTION)
{ {
int prio1, prio2;
if ((it1->plugin == it2->plugin) && if ((it1->plugin == it2->plugin) &&
(it1->priority - it2->priority)) (it1->priority - it2->priority))
{ {
return (it1->priority - it2->priority); return (it1->priority - it2->priority);
} }
else if (it1->plugin->config->priority - else if ((prio1 = it1->plugin->config->priority) -
it2->plugin->config->priority) (prio2 = it2->plugin->config->priority))
{ {
return (it1->plugin->config->priority - return (prio1 < prio2 ? -1 : 1);
it2->plugin->config->priority);
} }
} }
if (it1->priority - it2->priority)
return (it1->priority < it2->priority ? -1 : 1);
return strcmp(it1->label, it2->label); return strcmp(it1->label, it2->label);
return 1; return 1;
@ -114,10 +118,10 @@ _cb_sort(const void *data1, const void *data2)
} }
if (it1->usage > 0 || it2->usage > 0) if (it1->usage > 0 || it2->usage > 0)
{ {
return (it1->usage > it2->usage ? -1 : 1); return (it1->usage > it2->usage ? -1 : 1);
} }
if (it1->fuzzy_match > 0 || it2->fuzzy_match > 0) if (it1->fuzzy_match > 0 || it2->fuzzy_match > 0)
{ {
if (it2->fuzzy_match <= 0) if (it2->fuzzy_match <= 0)
@ -131,19 +135,23 @@ _cb_sort(const void *data1, const void *data2)
if (it1->type != EVRY_TYPE_ACTION && if (it1->type != EVRY_TYPE_ACTION &&
it2->type != EVRY_TYPE_ACTION) it2->type != EVRY_TYPE_ACTION)
{ {
int prio1, prio2;
if ((it1->plugin == it2->plugin) && if ((it1->plugin == it2->plugin) &&
(it1->priority - it2->priority)) (it1->priority - it2->priority))
{ {
return (it1->priority - it2->priority); return (it1->priority - it2->priority);
} }
else if (it1->plugin->config->priority - else if ((prio1 = it1->plugin->config->priority) -
it2->plugin->config->priority) (prio2 = it2->plugin->config->priority))
{ {
return (it1->plugin->config->priority - return (prio1 < prio2 ? -1 : 1);
it2->plugin->config->priority);
} }
} }
if (it1->priority - it2->priority)
return (it1->priority < it2->priority ? -1 : 1);
return strcasecmp(it1->label, it2->label); return strcasecmp(it1->label, it2->label);
} }
@ -325,7 +333,7 @@ static void
_free(Evry_Plugin *plugin) _free(Evry_Plugin *plugin)
{ {
GET_PLUGIN(p, plugin); GET_PLUGIN(p, plugin);
_finish(plugin); _finish(plugin);
free(p); free(p);