forked from enlightenment/efl
efreet: Store known desktop environments
This commit is contained in:
parent
5bc2efcf87
commit
54d5653e1b
|
@ -39,6 +39,7 @@ static Eina_Hash *name = NULL;
|
|||
static Eina_Hash *generic_name = NULL;
|
||||
static Eina_Hash *comment = NULL;
|
||||
static Eina_Hash *exec = NULL;
|
||||
static Eina_Hash *environments = NULL;
|
||||
|
||||
static int
|
||||
cache_add(const char *path, const char *file_id, int priority EINA_UNUSED, int *changed)
|
||||
|
@ -118,6 +119,8 @@ cache_add(const char *path, const char *file_id, int priority EINA_UNUSED, int *
|
|||
ADD_ELEM(desk->generic_name, generic_name);
|
||||
ADD_ELEM(desk->comment, comment);
|
||||
ADD_ELEM(desk->exec, exec);
|
||||
ADD_LIST(desk->only_show_in, environments);
|
||||
ADD_LIST(desk->not_show_in, environments);
|
||||
eina_hash_add(file_ids, file_id, desk->orig_path);
|
||||
eina_hash_add(desktops, desk->orig_path, desk);
|
||||
}
|
||||
|
@ -352,6 +355,7 @@ main(int argc, char **argv)
|
|||
generic_name = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
|
||||
comment = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
|
||||
exec = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
|
||||
environments = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
|
||||
|
||||
dirs = efreet_default_dirs_get(efreet_data_home_get(), efreet_data_dirs_get(),
|
||||
"applications");
|
||||
|
@ -401,6 +405,7 @@ main(int argc, char **argv)
|
|||
STORE_HASH_ARRAY(generic_name);
|
||||
STORE_HASH_ARRAY(comment);
|
||||
STORE_HASH_ARRAY(exec);
|
||||
STORE_HASH_ARRAY(environments);
|
||||
if (eina_hash_population(file_ids) > 0)
|
||||
{
|
||||
hash.hash = file_ids;
|
||||
|
@ -414,6 +419,7 @@ main(int argc, char **argv)
|
|||
eina_hash_free(generic_name);
|
||||
eina_hash_free(comment);
|
||||
eina_hash_free(exec);
|
||||
eina_hash_free(environments);
|
||||
|
||||
if (old_file_ids)
|
||||
{
|
||||
|
|
|
@ -318,6 +318,20 @@ efreet_util_desktop_category_list(const char *category)
|
|||
return efreet_util_cache_list("categories", category);
|
||||
}
|
||||
|
||||
EAPI Eina_List *
|
||||
efreet_util_desktop_environments_list(void)
|
||||
{
|
||||
Efreet_Cache_Array_String *array;
|
||||
Eina_List *ret = NULL;
|
||||
unsigned int i;
|
||||
|
||||
array = efreet_cache_util_names("environments_list");
|
||||
if (!array) return NULL;
|
||||
for (i = 0; i < array->array_count; i++)
|
||||
ret = eina_list_append(ret, array->array[i]);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
efreet_util_glob_match(const char *str, const char *glob)
|
||||
{
|
||||
|
|
|
@ -152,6 +152,16 @@ EAPI Eina_List *efreet_util_desktop_category_list(const char *category);
|
|||
*/
|
||||
EAPI Eina_List *efreet_util_menus_find(void);
|
||||
|
||||
/**
|
||||
* Find all known desktop environments
|
||||
* This list must be freed using EINA_LIST_FREE
|
||||
* @since 1.12
|
||||
*
|
||||
* @return an Eina_List of desktop environments names (const char *)
|
||||
*/
|
||||
EAPI Eina_List *efreet_util_desktop_environments_list(void);
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue