Skip to content

Commit 7ba869d

Browse files
yetistraveit65
authored and
raveit65
committed
use new mate-menus api
1 parent 7137397 commit 7ba869d

File tree

1 file changed

+24
-30
lines changed

1 file changed

+24
-30
lines changed

libslab/app-shell.c

+24-30
Original file line numberDiff line numberDiff line change
@@ -871,8 +871,9 @@ void
871871
generate_categories (AppShellData * app_data)
872872
{
873873
MateMenuTreeDirectory *root_dir;
874-
GSList *contents, *l;
875874
gboolean need_misc = FALSE;
875+
MateMenuTreeIter *iter;
876+
MateMenuTreeItemType type;
876877

877878
if (!app_data->tree)
878879
{
@@ -888,42 +889,35 @@ generate_categories (AppShellData * app_data)
888889
}
889890

890891
}
891-
root_dir = matemenu_tree_get_root_directory (app_data->tree);
892-
if (root_dir)
893-
contents = matemenu_tree_directory_get_contents (root_dir);
894-
else
895-
contents = NULL;
896-
if (!root_dir || !contents)
897-
{
892+
893+
if ((root_dir = matemenu_tree_get_root_directory (app_data->tree)) == NULL ) {
898894
GtkWidget *dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
899-
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure loading - %s",
900-
app_data->menu_name);
895+
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure loading - %s",
896+
app_data->menu_name);
901897
gtk_dialog_run (GTK_DIALOG (dialog));
902898
gtk_widget_destroy (dialog);
903899
exit (1); /* Fixme - is there a MATE/GTK way to do this. */
904900
}
905901

906-
for (l = contents; l; l = l->next)
907-
{
902+
iter = matemenu_tree_directory_iter (root_dir);
903+
while ((type = matemenu_tree_iter_next (iter)) != MATEMENU_TREE_ITEM_INVALID) {
904+
gpointer item;
908905
const char *category;
909-
MateMenuTreeItem *item = l->data;
910-
911-
switch (matemenu_tree_item_get_type (item))
912-
{
913-
case MATEMENU_TREE_ITEM_DIRECTORY:
914-
category = matemenu_tree_directory_get_name ((MateMenuTreeDirectory*)item);
915-
generate_category(category, (MateMenuTreeDirectory*)item, app_data, TRUE);
916-
break;
917-
case MATEMENU_TREE_ITEM_ENTRY:
918-
need_misc = TRUE;
919-
break;
920-
default:
921-
break;
906+
switch (type) {
907+
case MATEMENU_TREE_ITEM_DIRECTORY:
908+
item = matemenu_tree_iter_get_directory (iter);
909+
category = matemenu_tree_directory_get_name (item);
910+
generate_category(category, item, app_data, TRUE);
911+
matemenu_tree_item_unref (item);
912+
break;
913+
case MATEMENU_TREE_ITEM_ENTRY:
914+
need_misc = TRUE;
915+
break;
916+
default:
917+
break;
922918
}
923-
924-
matemenu_tree_item_unref (item);
925919
}
926-
g_slist_free (contents);
920+
matemenu_tree_iter_unref(iter);
927921

928922
if (need_misc)
929923
generate_category (_("Other"), root_dir, app_data, FALSE);
@@ -1034,7 +1028,7 @@ generate_launchers (MateMenuTreeDirectory * root_dir, AppShellData * app_data, C
10341028
MateMenuTreeIter *iter;
10351029
MateMenuTreeItemType type;
10361030

1037-
iter = matemenu_tree_directory_iter (directory);
1031+
iter = matemenu_tree_directory_iter (root_dir);
10381032
while ((type = matemenu_tree_iter_next (iter)) != MATEMENU_TREE_ITEM_INVALID) {
10391033
gpointer item;
10401034
switch (type) {
@@ -1075,10 +1069,10 @@ generate_launchers (MateMenuTreeDirectory * root_dir, AppShellData * app_data, C
10751069
matemenu_tree_item_unref (item);
10761070
break;
10771071
default:
1078-
g_assert_not_reached ();
10791072
break;
10801073
}
10811074
}
1075+
matemenu_tree_iter_unref(iter);
10821076
}
10831077

10841078
static void

0 commit comments

Comments
 (0)