Skip to content

Commit 7137397

Browse files
yetistraveit65
authored andcommitted
use new api
1 parent ede274e commit 7137397

File tree

1 file changed

+43
-41
lines changed

1 file changed

+43
-41
lines changed

libslab/app-shell.c

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,52 +1031,54 @@ generate_launchers (MateMenuTreeDirectory * root_dir, AppShellData * app_data, C
10311031
{
10321032
MateDesktopItem *desktop_item;
10331033
const gchar *desktop_file;
1034-
GSList *contents, *l;
1035-
1036-
contents = matemenu_tree_directory_get_contents (root_dir);
1037-
for (l = contents; l; l = l->next)
1038-
{
1039-
switch (matemenu_tree_item_get_type (l->data))
1040-
{
1041-
case MATEMENU_TREE_ITEM_DIRECTORY:
1042-
/* g_message ("Found sub-category %s", matemenu_tree_directory_get_name (l->data)); */
1043-
if (recursive)
1044-
generate_launchers (l->data, app_data, cat_data, TRUE);
1045-
break;
1046-
case MATEMENU_TREE_ITEM_ENTRY:
1047-
/* g_message ("Found item name is:%s", matemenu_tree_entry_get_name (l->data)); */
1048-
desktop_file = matemenu_tree_entry_get_desktop_file_path (l->data);
1049-
if (desktop_file)
1050-
{
1051-
if (g_hash_table_lookup (app_data->hash, desktop_file))
1034+
MateMenuTreeIter *iter;
1035+
MateMenuTreeItemType type;
1036+
1037+
iter = matemenu_tree_directory_iter (directory);
1038+
while ((type = matemenu_tree_iter_next (iter)) != MATEMENU_TREE_ITEM_INVALID) {
1039+
gpointer item;
1040+
switch (type) {
1041+
case MATEMENU_TREE_ITEM_DIRECTORY:
1042+
item = matemenu_tree_iter_get_directory(iter);
1043+
/* g_message ("Found sub-category %s", matemenu_tree_directory_get_name (item)); */
1044+
if (recursive)
1045+
generate_launchers (item, app_data, cat_data, TRUE);
1046+
matemenu_tree_item_unref (item);
1047+
break;
1048+
case MATEMENU_TREE_ITEM_ENTRY:
1049+
item = matemenu_tree_iter_get_entry(iter);
1050+
/* g_message ("Found item name is:%s", matemenu_tree_entry_get_desktop_file_id(item)); */
1051+
desktop_file = matemenu_tree_entry_get_desktop_file_path (item);
1052+
if (desktop_file)
1053+
{
1054+
if (g_hash_table_lookup (app_data->hash, desktop_file))
1055+
{
1056+
break; /* duplicate */
1057+
}
1058+
/* Fixme - make sure it's safe to store this without duping it. As far as I can tell it is
1059+
safe as long as I don't hang on to this anylonger than I hang on to the MateMenuTreeEntry*
1060+
which brings up another point - am I supposed to free these or does freeing the top level recurse
1061+
*/
1062+
g_hash_table_insert (app_data->hash, (gpointer) desktop_file,
1063+
(gpointer) desktop_file);
1064+
}
1065+
desktop_item = mate_desktop_item_new_from_file (desktop_file, 0, NULL);
1066+
if (!desktop_item)
10521067
{
1053-
break; /* duplicate */
1068+
g_critical ("Failure - mate_desktop_item_new_from_file(%s)",
1069+
desktop_file);
1070+
break;
10541071
}
1055-
/* Fixme - make sure it's safe to store this without duping it. As far as I can tell it is
1056-
safe as long as I don't hang on to this anylonger than I hang on to the MateMenuTreeEntry*
1057-
which brings up another point - am I supposed to free these or does freeing the top level recurse
1058-
*/
1059-
g_hash_table_insert (app_data->hash, (gpointer) desktop_file,
1060-
(gpointer) desktop_file);
1061-
}
1062-
desktop_item = mate_desktop_item_new_from_file (desktop_file, 0, NULL);
1063-
if (!desktop_item)
1064-
{
1065-
g_critical ("Failure - mate_desktop_item_new_from_file(%s)",
1066-
desktop_file);
1072+
if (!check_specific_apps_hack (desktop_item))
1073+
insert_launcher_into_category (cat_data, desktop_item, app_data);
1074+
mate_desktop_item_unref (desktop_item);
1075+
matemenu_tree_item_unref (item);
1076+
break;
1077+
default:
1078+
g_assert_not_reached ();
10671079
break;
1068-
}
1069-
if (!check_specific_apps_hack (desktop_item))
1070-
insert_launcher_into_category (cat_data, desktop_item, app_data);
1071-
mate_desktop_item_unref (desktop_item);
1072-
break;
1073-
default:
1074-
break;
10751080
}
1076-
1077-
matemenu_tree_item_unref (l->data);
10781081
}
1079-
g_slist_free (contents);
10801082
}
10811083

10821084
static void

0 commit comments

Comments
 (0)