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);
|
||||
static void efreet_menu_process_filters(Efreet_Menu_Internal *internal,
|
||||
unsigned int only_unallocated);
|
||||
static Eina_List * efreet_menu_process_app_pool(Eina_List *pool,
|
||||
Eina_List *applications,
|
||||
Eina_Hash *matches,
|
||||
Efreet_Menu_Filter *filter,
|
||||
unsigned int only_unallocated);
|
||||
static Eina_List *efreet_menu_process_app_pool(Eina_List *pool,
|
||||
Eina_List *applications,
|
||||
Eina_Hash *matches,
|
||||
Efreet_Menu_Filter *filter,
|
||||
unsigned int only_unallocated);
|
||||
static int efreet_menu_filter_matches(Efreet_Menu_Filter_Op *op,
|
||||
Efreet_Menu_Desktop *md);
|
||||
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 */
|
||||
internal = efreet_menu_internal_new();
|
||||
if (!internal) return NULL;
|
||||
|
||||
/* Set default values */
|
||||
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);
|
||||
|
||||
internal = efreet_menu_internal_new();
|
||||
if (!internal) return 0;
|
||||
internal->file.path = eina_stringshare_add(parent->file.path);
|
||||
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);
|
||||
|
||||
internal = efreet_menu_internal_new();
|
||||
if (!internal) return 0;
|
||||
efreet_menu_path_set(internal, path);
|
||||
efreet_menu_handle_menu(internal, merge_xml);
|
||||
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,
|
||||
efreet_xml_attribute_get(xml, "prefix"));
|
||||
efreet_menu_concatenate(parent, legacy);
|
||||
efreet_menu_internal_free(legacy);
|
||||
if (legacy)
|
||||
{
|
||||
efreet_menu_concatenate(parent, legacy);
|
||||
efreet_menu_internal_free(legacy);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
|
@ -1880,13 +1886,15 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root,
|
|||
path = efreet_menu_path_get(parent, legacy_dir);
|
||||
|
||||
/* 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);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
legacy_internal = efreet_menu_internal_new();
|
||||
if (!legacy_internal)
|
||||
return NULL;
|
||||
legacy_internal->name.internal = eina_stringshare_add(ecore_file_file_get(path));
|
||||
|
||||
/* 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
|
||||
* dir */
|
||||
filter = efreet_menu_filter_new();
|
||||
if (!filter)
|
||||
{
|
||||
efreet_menu_internal_free(legacy_internal);
|
||||
return NULL;
|
||||
}
|
||||
filter->type = EFREET_MENU_FILTER_INCLUDE;
|
||||
|
||||
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 */
|
||||
filter = efreet_menu_filter_new();
|
||||
if (!filter) return 0;
|
||||
filter->type = type;
|
||||
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;
|
||||
Eina_List *l;
|
||||
|
||||
if (!pool) return NULL;
|
||||
|
||||
EINA_LIST_FOREACH(pool, l, md)
|
||||
{
|
||||
if (eina_hash_find(matches, md->id)) continue;
|
||||
|
@ -3121,6 +3133,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
|
|||
*path = '\0';
|
||||
|
||||
ancestor = efreet_menu_internal_new();
|
||||
if (!ancestor) goto error;
|
||||
ancestor->name.internal = eina_stringshare_add(tmp);
|
||||
|
||||
efreet_menu_create_sub_menu_list(parent);
|
||||
|
@ -3143,6 +3156,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
|
|||
efreet_menu_internal_free(origin);
|
||||
}
|
||||
}
|
||||
error:
|
||||
IF_FREE_LIST(internal->moves, efreet_menu_move_free);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue