mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-09-19 07:41:26 +00:00
5488240840
In 7840b533e2
, `nautilus-directory-provider` extension point was added
to the code paths used by the tests. When glib is asked for extensions,
it assumes the extension point is registered so it segfaults.
This patch registers the extension point before the tests are run.
https://bugzilla.gnome.org/show_bug.cgi?id=779178
100 lines
2.3 KiB
C
100 lines
2.3 KiB
C
#include <gtk/gtk.h>
|
|
#include <src/nautilus-directory.h>
|
|
#include <src/nautilus-file-utilities.h>
|
|
#include <src/nautilus-search-directory.h>
|
|
#include <src/nautilus-file.h>
|
|
#include <unistd.h>
|
|
|
|
void *client1, *client2;
|
|
|
|
static void
|
|
files_added (NautilusDirectory *directory,
|
|
GList *added_files)
|
|
{
|
|
#if 0
|
|
GList *list;
|
|
|
|
for (list = added_files; list != NULL; list = list->next)
|
|
{
|
|
NautilusFile *file = list->data;
|
|
|
|
g_print (" - %s\n", nautilus_file_get_uri (file));
|
|
}
|
|
#endif
|
|
|
|
g_print ("files added: %d files\n",
|
|
g_list_length (added_files));
|
|
}
|
|
|
|
static void
|
|
files_changed (NautilusDirectory *directory,
|
|
GList *changed_files)
|
|
{
|
|
#if 0
|
|
GList *list;
|
|
|
|
for (list = changed_files; list != NULL; list = list->next)
|
|
{
|
|
NautilusFile *file = list->data;
|
|
|
|
g_print (" - %s\n", nautilus_file_get_uri (file));
|
|
}
|
|
#endif
|
|
g_print ("files changed: %d\n",
|
|
g_list_length (changed_files));
|
|
}
|
|
|
|
static void
|
|
done_loading (NautilusDirectory *directory)
|
|
{
|
|
g_print ("done loading\n");
|
|
gtk_main_quit ();
|
|
}
|
|
|
|
int
|
|
main (int argc,
|
|
char **argv)
|
|
{
|
|
NautilusDirectory *directory;
|
|
NautilusFileAttributes attributes;
|
|
const char *uri;
|
|
|
|
client1 = g_new0 (int, 1);
|
|
client2 = g_new0 (int, 1);
|
|
|
|
gtk_init (&argc, &argv);
|
|
|
|
nautilus_ensure_extension_points ();
|
|
|
|
if (argv[1] == NULL)
|
|
{
|
|
uri = "file:///tmp";
|
|
}
|
|
else
|
|
{
|
|
uri = argv[1];
|
|
}
|
|
g_print ("loading %s", uri);
|
|
directory = nautilus_directory_get_by_uri (uri);
|
|
|
|
g_signal_connect (directory, "files-added", G_CALLBACK (files_added), NULL);
|
|
g_signal_connect (directory, "files-changed", G_CALLBACK (files_changed), NULL);
|
|
g_signal_connect (directory, "done-loading", G_CALLBACK (done_loading), NULL);
|
|
|
|
attributes =
|
|
NAUTILUS_FILE_ATTRIBUTES_FOR_ICON |
|
|
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT |
|
|
NAUTILUS_FILE_ATTRIBUTE_INFO |
|
|
NAUTILUS_FILE_ATTRIBUTE_LINK_INFO |
|
|
NAUTILUS_FILE_ATTRIBUTE_MOUNT |
|
|
NAUTILUS_FILE_ATTRIBUTE_EXTENSION_INFO;
|
|
|
|
nautilus_directory_file_monitor_add (directory, client1, TRUE,
|
|
attributes,
|
|
NULL, NULL);
|
|
|
|
|
|
gtk_main ();
|
|
return 0;
|
|
}
|