forked from enlightenment/efl
parent
0a4617ae38
commit
7b5e166c85
|
@ -272,11 +272,11 @@ static Efreet_Desktop *efreet_menu_directory_get(Efreet_Menu_Internal *internal,
|
||||||
const char *path);
|
const char *path);
|
||||||
static void efreet_menu_process_filters(Efreet_Menu_Internal *internal,
|
static void efreet_menu_process_filters(Efreet_Menu_Internal *internal,
|
||||||
unsigned int only_unallocated);
|
unsigned int only_unallocated);
|
||||||
static Eina_List * efreet_menu_process_app_pool(Eina_List *pool,
|
static Eina_List *efreet_menu_process_app_pool(Eina_List *pool,
|
||||||
Eina_List *applications,
|
Eina_List *applications,
|
||||||
Eina_Hash *matches,
|
Eina_Hash *matches,
|
||||||
Efreet_Menu_Filter *filter,
|
Efreet_Menu_Filter *filter,
|
||||||
unsigned int only_unallocated);
|
unsigned int only_unallocated);
|
||||||
static int efreet_menu_filter_matches(Efreet_Menu_Filter_Op *op,
|
static int efreet_menu_filter_matches(Efreet_Menu_Filter_Op *op,
|
||||||
Efreet_Menu_Desktop *md);
|
Efreet_Menu_Desktop *md);
|
||||||
static int efreet_menu_filter_or_matches(Efreet_Menu_Filter_Op *op,
|
static int efreet_menu_filter_or_matches(Efreet_Menu_Filter_Op *op,
|
||||||
|
@ -700,6 +700,7 @@ efreet_menu_parse(const char *path)
|
||||||
|
|
||||||
/* split appart the filename and the path */
|
/* split appart the filename and the path */
|
||||||
internal = efreet_menu_internal_new();
|
internal = efreet_menu_internal_new();
|
||||||
|
if (!internal) return NULL;
|
||||||
|
|
||||||
/* Set default values */
|
/* Set default values */
|
||||||
internal->show_empty = 0;
|
internal->show_empty = 0;
|
||||||
|
@ -1122,6 +1123,7 @@ efreet_menu_handle_sub_menu(Efreet_Menu_Internal *parent, Efreet_Xml *xml)
|
||||||
efreet_menu_create_sub_menu_list(parent);
|
efreet_menu_create_sub_menu_list(parent);
|
||||||
|
|
||||||
internal = efreet_menu_internal_new();
|
internal = efreet_menu_internal_new();
|
||||||
|
if (!internal) return 0;
|
||||||
internal->file.path = eina_stringshare_add(parent->file.path);
|
internal->file.path = eina_stringshare_add(parent->file.path);
|
||||||
if (!efreet_menu_handle_menu(internal, xml))
|
if (!efreet_menu_handle_menu(internal, xml))
|
||||||
{
|
{
|
||||||
|
@ -1682,6 +1684,7 @@ efreet_menu_merge(Efreet_Menu_Internal *parent, Efreet_Xml *xml, const char *pat
|
||||||
FREE(rp);
|
FREE(rp);
|
||||||
|
|
||||||
internal = efreet_menu_internal_new();
|
internal = efreet_menu_internal_new();
|
||||||
|
if (!internal) return 0;
|
||||||
efreet_menu_path_set(internal, path);
|
efreet_menu_path_set(internal, path);
|
||||||
efreet_menu_handle_menu(internal, merge_xml);
|
efreet_menu_handle_menu(internal, merge_xml);
|
||||||
efreet_menu_concatenate(parent, internal);
|
efreet_menu_concatenate(parent, internal);
|
||||||
|
@ -1845,8 +1848,11 @@ efreet_menu_handle_legacy_dir(Efreet_Menu_Internal *parent, Efreet_Xml *xml)
|
||||||
|
|
||||||
legacy = efreet_menu_handle_legacy_dir_helper(NULL, parent, xml->text,
|
legacy = efreet_menu_handle_legacy_dir_helper(NULL, parent, xml->text,
|
||||||
efreet_xml_attribute_get(xml, "prefix"));
|
efreet_xml_attribute_get(xml, "prefix"));
|
||||||
efreet_menu_concatenate(parent, legacy);
|
if (legacy)
|
||||||
efreet_menu_internal_free(legacy);
|
{
|
||||||
|
efreet_menu_concatenate(parent, legacy);
|
||||||
|
efreet_menu_internal_free(legacy);
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -1880,13 +1886,15 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root,
|
||||||
path = efreet_menu_path_get(parent, legacy_dir);
|
path = efreet_menu_path_get(parent, legacy_dir);
|
||||||
|
|
||||||
/* nothing to do if the legacy path doesn't exist */
|
/* nothing to do if the legacy path doesn't exist */
|
||||||
if (!ecore_file_exists(path))
|
if (!path || !ecore_file_exists(path))
|
||||||
{
|
{
|
||||||
eina_stringshare_del(path);
|
eina_stringshare_del(path);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
legacy_internal = efreet_menu_internal_new();
|
legacy_internal = efreet_menu_internal_new();
|
||||||
|
if (!legacy_internal)
|
||||||
|
return NULL;
|
||||||
legacy_internal->name.internal = eina_stringshare_add(ecore_file_file_get(path));
|
legacy_internal->name.internal = eina_stringshare_add(ecore_file_file_get(path));
|
||||||
|
|
||||||
/* add the legacy dir as an app dir */
|
/* add the legacy dir as an app dir */
|
||||||
|
@ -1916,6 +1924,11 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root,
|
||||||
/* setup a filter for all the conforming .desktop files in the legacy
|
/* setup a filter for all the conforming .desktop files in the legacy
|
||||||
* dir */
|
* dir */
|
||||||
filter = efreet_menu_filter_new();
|
filter = efreet_menu_filter_new();
|
||||||
|
if (!filter)
|
||||||
|
{
|
||||||
|
efreet_menu_internal_free(legacy_internal);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
filter->type = EFREET_MENU_FILTER_INCLUDE;
|
filter->type = EFREET_MENU_FILTER_INCLUDE;
|
||||||
|
|
||||||
filter->op->type = EFREET_MENU_FILTER_OP_OR;
|
filter->op->type = EFREET_MENU_FILTER_OP_OR;
|
||||||
|
@ -2378,6 +2391,7 @@ efreet_menu_handle_filter(Efreet_Menu_Internal *parent, Efreet_Xml *xml,
|
||||||
|
|
||||||
/* filters have a default or relationship */
|
/* filters have a default or relationship */
|
||||||
filter = efreet_menu_filter_new();
|
filter = efreet_menu_filter_new();
|
||||||
|
if (!filter) return 0;
|
||||||
filter->type = type;
|
filter->type = type;
|
||||||
filter->op->type = EFREET_MENU_FILTER_OP_OR;
|
filter->op->type = EFREET_MENU_FILTER_OP_OR;
|
||||||
|
|
||||||
|
@ -2795,8 +2809,6 @@ efreet_menu_process_app_pool(Eina_List *pool, Eina_List *applications,
|
||||||
Efreet_Menu_Desktop *md;
|
Efreet_Menu_Desktop *md;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
if (!pool) return NULL;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(pool, l, md)
|
EINA_LIST_FOREACH(pool, l, md)
|
||||||
{
|
{
|
||||||
if (eina_hash_find(matches, md->id)) continue;
|
if (eina_hash_find(matches, md->id)) continue;
|
||||||
|
@ -3121,6 +3133,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
|
||||||
*path = '\0';
|
*path = '\0';
|
||||||
|
|
||||||
ancestor = efreet_menu_internal_new();
|
ancestor = efreet_menu_internal_new();
|
||||||
|
if (!ancestor) goto error;
|
||||||
ancestor->name.internal = eina_stringshare_add(tmp);
|
ancestor->name.internal = eina_stringshare_add(tmp);
|
||||||
|
|
||||||
efreet_menu_create_sub_menu_list(parent);
|
efreet_menu_create_sub_menu_list(parent);
|
||||||
|
@ -3143,6 +3156,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
|
||||||
efreet_menu_internal_free(origin);
|
efreet_menu_internal_free(origin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
error:
|
||||||
IF_FREE_LIST(internal->moves, efreet_menu_move_free);
|
IF_FREE_LIST(internal->moves, efreet_menu_move_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue