only sort by fuzzy match before usage, when match differs a lot
SVN revision: 48467
This commit is contained in:
parent
a355fc0dfa
commit
586b7d6f64
|
@ -140,7 +140,7 @@ e_modapi_init(E_Module *m)
|
|||
NULL, "preferences-extensions");
|
||||
|
||||
e_configure_registry_item_add("extensions/run_everything", 40,
|
||||
_("Run Everything"),
|
||||
_("Everything Configuration"),
|
||||
NULL, "system-run",
|
||||
evry_config_dialog);
|
||||
evry_init();
|
||||
|
|
|
@ -10,12 +10,6 @@ struct _Plugin
|
|||
Evry_Selector *selector;
|
||||
};
|
||||
|
||||
/* inline static int
|
||||
* _is_action(const Evry_Item *it)
|
||||
* {
|
||||
* return (it->plugin->name == action_selector);
|
||||
* } */
|
||||
|
||||
static int
|
||||
_cb_sort_recent(const void *data1, const void *data2)
|
||||
{
|
||||
|
@ -47,9 +41,18 @@ _cb_sort_recent(const void *data1, const void *data2)
|
|||
return -1;
|
||||
if (it2->usage && !it1->usage)
|
||||
return 1;
|
||||
|
||||
if (it1->plugin == it2->plugin)
|
||||
return (it1->priority - it2->priority);
|
||||
|
||||
if ((it1->plugin == it2->plugin) &&
|
||||
(it1->priority - it2->priority))
|
||||
{
|
||||
return (it1->priority - it2->priority);
|
||||
}
|
||||
else if (it1->plugin->config->priority -
|
||||
it2->plugin->config->priority)
|
||||
{
|
||||
return (it1->plugin->config->priority -
|
||||
it2->plugin->config->priority);
|
||||
}
|
||||
|
||||
return strcmp(it1->label, it2->label);
|
||||
|
||||
|
@ -62,7 +65,6 @@ _cb_sort(const void *data1, const void *data2)
|
|||
const Evry_Item *it1 = data1;
|
||||
const Evry_Item *it2 = data2;
|
||||
|
||||
/* sort actions matching the subtype always before those matching type*/
|
||||
if ((it1->type == EVRY_TYPE_ACTION) &&
|
||||
(it2->type == EVRY_TYPE_ACTION))
|
||||
{
|
||||
|
@ -81,16 +83,24 @@ _cb_sort(const void *data1, const void *data2)
|
|||
}
|
||||
}
|
||||
|
||||
if (it1->fuzzy_match > 0 || it2->fuzzy_match > 0)
|
||||
{
|
||||
if (it2->fuzzy_match <= 0)
|
||||
return -1;
|
||||
|
||||
if (it1->fuzzy_match <= 0)
|
||||
return 1;
|
||||
|
||||
if (abs (it1->fuzzy_match - it2->fuzzy_match) > 5)
|
||||
return (it1->fuzzy_match - it2->fuzzy_match);
|
||||
}
|
||||
|
||||
if (it1->usage && it2->usage)
|
||||
return (it1->usage > it2->usage ? -1 : 1);
|
||||
if (it1->usage && !it2->usage)
|
||||
return -1;
|
||||
if (it2->usage && !it1->usage)
|
||||
return 1;
|
||||
|
||||
if ((it1->plugin == it2->plugin) &&
|
||||
(it1->priority - it2->priority))
|
||||
return (it1->priority - it2->priority);
|
||||
|
||||
if (it1->fuzzy_match > 0 || it2->fuzzy_match > 0)
|
||||
{
|
||||
|
@ -104,9 +114,18 @@ _cb_sort(const void *data1, const void *data2)
|
|||
return (it1->fuzzy_match - it2->fuzzy_match);
|
||||
}
|
||||
|
||||
if (it1->plugin->config->priority - it2->plugin->config->priority)
|
||||
return (it1->plugin->config->priority - it2->plugin->config->priority);
|
||||
|
||||
if ((it1->plugin == it2->plugin) &&
|
||||
(it1->priority - it2->priority))
|
||||
{
|
||||
return (it1->priority - it2->priority);
|
||||
}
|
||||
else if (it1->plugin->config->priority -
|
||||
it2->plugin->config->priority)
|
||||
{
|
||||
return (it1->plugin->config->priority -
|
||||
it2->plugin->config->priority);
|
||||
}
|
||||
|
||||
return strcasecmp(it1->label, it2->label);
|
||||
}
|
||||
|
||||
|
|
|
@ -103,7 +103,8 @@ evry_fuzzy_match(const char *str, const char *match)
|
|||
last = 0;
|
||||
min = 1;
|
||||
first = 0;
|
||||
|
||||
/* m_len = 0; */
|
||||
|
||||
/* match current word of string against current match */
|
||||
for (p = next; *next != 0; p++)
|
||||
{
|
||||
|
@ -137,6 +138,8 @@ evry_fuzzy_match(const char *str, const char *match)
|
|||
else
|
||||
offset += 3;
|
||||
|
||||
/* m_len++; */
|
||||
|
||||
if (offset <= m_len * 3)
|
||||
continue;
|
||||
}
|
||||
|
@ -208,7 +211,7 @@ evry_fuzzy_match(const char *str, const char *match)
|
|||
if (sum > 0)
|
||||
{
|
||||
/* exact match ? */
|
||||
if (strlen(str) != m_len)
|
||||
if (strcmp(match, str))
|
||||
sum += 10;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue