diff --git a/source/libublsettings-gtk3-apps.c b/source/libublsettings-gtk3-apps.c index 2bda4fc..d3e7482 100644 --- a/source/libublsettings-gtk3-apps.c +++ b/source/libublsettings-gtk3-apps.c @@ -19,10 +19,8 @@ int yon_app_set_from_file(apps *target, const char *path){ GKeyFile *cur_file = g_key_file_new(); if (!g_key_file_load_from_file(cur_file,path,G_KEY_FILE_KEEP_TRANSLATIONS,NULL)) return 0; - gsize names_size; - config_str names = g_key_file_get_locale_string_list(cur_file,"Desktop Entry","Name",NULL,&names_size,NULL); + target->Name = g_key_file_get_locale_string(cur_file,"Desktop Entry","Name",NULL,NULL); target->Desktop_path = yon_char_new(path); - target->Name = names[0]; target->Comment = g_key_file_get_string(cur_file,"Desktop Entry","Comment",NULL); char *categories = g_key_file_get_string(cur_file,"Desktop Entry","Categories",NULL); target->Categories = yon_char_parse(categories,&target->categories_size,";"); @@ -34,6 +32,7 @@ int yon_app_set_from_file(apps *target, const char *path){ target->DualPluggable = !yon_char_is_empty(dual_pluggable)&&!strcmp(dual_pluggable,"true"); char *type = g_key_file_get_string(cur_file,"Desktop Entry","Type",NULL); target->Type = !yon_char_is_empty(type)&&!strcmp(type,"Application"); + target->keywords = g_key_file_get_locale_string(cur_file,"Desktop Entry","Keywords",NULL,NULL); if (!yon_char_is_empty(target->Exec)){ int parsed_size; @@ -66,7 +65,7 @@ void yon_apps_init(){ char *cur_path = yon_char_unite(DesktopPath,"/",paths[i],NULL); apps *cur_app = yon_app_new(); yon_app_set_from_file(cur_app,cur_path); - g_hash_table_insert(_apps,yon_char_new(cur_app->Name),cur_app); + g_hash_table_insert(_apps,yon_char_new(cur_app->Desktop_path),cur_app); } } @@ -99,7 +98,7 @@ config_str yon_apps_get_by_categories(config_str categories, int categories_size for (iter=list;iter;iter=iter->next){ apps *cur_app = (apps*)iter->data; if (yon_char_parsed_includes_char_parsed(cur_app->Categories,categories,cur_app->categories_size, categories_size)){ - yon_char_parsed_add_or_create_if_exists(final,final_size,cur_app->Name); + yon_char_parsed_add_or_create_if_exists(final,final_size,cur_app->Desktop_path); } } return final; diff --git a/source/libublsettings-gtk3.h b/source/libublsettings-gtk3.h index 3ebf4a6..df5fda9 100644 --- a/source/libublsettings-gtk3.h +++ b/source/libublsettings-gtk3.h @@ -629,6 +629,7 @@ typedef struct apps char *Icon; int Pluggable; int DualPluggable; + char *keywords; } apps; /// @brief Initiallize applications system