468
465
applications = xfce_resource_lookup_all (XFCE_RESOURCE_DATA, "applications/");
469
for (napplications = 0; applications[napplications] != NULL; ++napplications);
471
467
apps = xfce_resource_lookup_all (XFCE_RESOURCE_DATA, "apps/");
472
for (napps = 0; apps[napps] != NULL; ++napps);
474
469
applnk = xfce_resource_lookup_all (XFCE_RESOURCE_DATA, "applnk/");
475
for (napplnk = 0; applnk[napplnk] != NULL; ++napplnk);
477
desktop_entries_paths = g_new0 (gchar *, 2 * napplications + napps + napplnk + 6);
480
desktop_entries_paths[i++] = xfce_get_homefile (".gnome", "share", "apps", NULL);
481
desktop_entries_paths[i++] = xfce_get_homefile (".kde", "share", "applnk", NULL);
471
desktop_entries_paths = g_ptr_array_new ();
473
g_ptr_array_add (desktop_entries_paths, (gpointer) xfce_get_homefile (".gnome", "share", "apps", NULL));
474
g_ptr_array_add (desktop_entries_paths, (gpointer) xfce_get_homefile (".kde", "share", "applnk", NULL));
482
475
if ((kdedir = g_getenv("KDEDIR")) != NULL)
484
desktop_entries_paths[i++] = g_build_filename (kdedir, "share", "applications", "kde", NULL);
477
g_ptr_array_add (desktop_entries_paths, (gpointer) g_build_filename (kdedir, "share", "applications", "kde", NULL));
487
480
/* FreeBSD Gnome stuff */
488
desktop_entries_paths[i++] = g_build_filename ("/usr", "X11R6", "share", "gnome", "applications", NULL);
481
g_ptr_array_add (desktop_entries_paths, (gpointer) g_build_filename ("/usr", "X11R6", "share", "gnome", "applications", NULL));
490
483
/* /usr/global stuff */
491
desktop_entries_paths[i++] = g_build_filename ("/usr", "global", "share", "applications", NULL);
484
g_ptr_array_add (desktop_entries_paths, (gpointer) g_build_filename ("/usr", "global", "share", "applications", NULL));
493
for (n = 0; n < napplications; ++n)
486
for (n = 0; applications[n] != NULL; ++n)
495
desktop_entries_paths[i++] = applications[n];
496
desktop_entries_paths[i++] = g_build_filename (applications[n], "kde", NULL);
488
g_ptr_array_add (desktop_entries_paths, (gpointer) applications[n]);
489
g_ptr_array_add (desktop_entries_paths, (gpointer) g_build_filename (applications[n], "kde", NULL));
498
491
g_free (applications);
500
for (n = 0; n < napps; ++i, ++n)
493
for (n = 0; apps[n] != NULL; ++n)
502
desktop_entries_paths[i] = apps[n];
495
g_ptr_array_add (desktop_entries_paths, (gpointer) apps[n]);
506
for (n = 0; n < napplnk; ++i, ++n)
499
for (n = 0; applnk[n] != NULL; ++n)
508
desktop_entries_paths[i] = applnk[n];
501
g_ptr_array_add (desktop_entries_paths, (gpointer) applnk[n]);
512
desktop_path_number = n;
515
506
static gchar *get_path_from_name(gchar *name, XfceAppfinder *appfinder)
583
574
gtk_list_store_append(GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(af->appsTree))), &iter);
584
575
gtk_list_store_set(GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(af->appsTree))),
585
&iter, APPLICATION_TREE_ICON, xfce_inline_icon_at_size (default_icon_data_48_48, 24, 24),
576
&iter, APPLICATION_TREE_ICON, xfce_themed_icon_load("xfce4-appfinder", 24),
586
577
APPLICATION_TREE_TEXT, _("No items available"), -1);
587
578
gtk_widget_set_sensitive(af->appsTree, FALSE);
623
614
gtk_list_store_append(GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(appfinder->appsTree))), &iter);
624
615
gtk_list_store_set(GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(appfinder->appsTree))),
625
&iter, APPLICATION_TREE_ICON, xfce_inline_icon_at_size (default_icon_data_48_48, 24, 24),
616
&iter, APPLICATION_TREE_ICON, xfce_themed_icon_load("xfce4-appfinder", 24),
626
617
APPLICATION_TREE_TEXT, _("Sorry, no match for searched text."), -1);
627
618
gtk_widget_set_sensitive(appfinder->appsTree, FALSE);
747
738
gchar *filename = NULL;
748
739
gchar *fullpath = NULL;
750
gint n = desktop_path_number - 1;
751
741
gint i = 0; /* A counter for general use */
753
743
hash = g_hash_table_new ((GHashFunc) g_str_hash, (GEqualFunc) g_str_equal);
755
while (desktop_entries_paths[i]!=NULL)
745
while (i<desktop_entries_paths->len)
757
if ((dir = g_dir_open (desktop_entries_paths[i], 0, NULL))!=NULL)
747
if ((dir = g_dir_open ((gchar *) g_ptr_array_index(desktop_entries_paths,i), 0, NULL))!=NULL)
759
749
while ((filename = (gchar *)g_dir_read_name(dir))!=NULL)
761
fullpath = g_build_filename(desktop_entries_paths[i], filename, NULL);
751
fullpath = g_build_filename(g_ptr_array_index(desktop_entries_paths,i), filename, NULL);
762
752
if (g_str_has_suffix(filename, ".desktop"))
764
754
dentry = xfce_desktop_entry_new (fullpath, dotDesktopKeys, 7);