From af1c2ceaef7d949e36a7680f463c5e25f79c43d6 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sun, 13 Jan 2008 20:42:01 +0000 Subject: Drop gnome-vfs dependency. Now Epiphany depends on glib >= 2.15.1. Also, optional Zeroconf support depends on Avahi >= 0.6.22. Bug #507152. svn path=/trunk/; revision=7858 --- src/ephy-extensions-manager.c | 47 +++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 26 deletions(-) (limited to 'src/ephy-extensions-manager.c') diff --git a/src/ephy-extensions-manager.c b/src/ephy-extensions-manager.c index 9d489d1cb..10aa75f9c 100644 --- a/src/ephy-extensions-manager.c +++ b/src/ephy-extensions-manager.c @@ -49,11 +49,9 @@ #include #include -#include -#include - #include +#include #include #include #include @@ -998,35 +996,35 @@ schedule_load_from_monitor (EphyExtensionsManager *manager, } static void -dir_changed_cb (GnomeVFSMonitorHandle *handle, - const char *monitor_uri, - const char *info_uri, - GnomeVFSMonitorEventType event_type, +dir_changed_cb (GFileMonitor *monitor, + GFile *child, + GFile *other_child, + GFileMonitorEvent event_type, EphyExtensionsManager *manager) { char *path; + + path = g_file_get_path (child); /* * We only deal with XML and INI files: * Add them to the manager when created, remove them when deleted. */ - if (format_from_path (info_uri) == FORMAT_UNKNOWN) return; - - path = gnome_vfs_get_local_path_from_uri (info_uri); + if (format_from_path (path) == FORMAT_UNKNOWN) return; switch (event_type) { - case GNOME_VFS_MONITOR_EVENT_CREATED: - case GNOME_VFS_MONITOR_EVENT_CHANGED: + case G_FILE_MONITOR_EVENT_CREATED: + case G_FILE_MONITOR_EVENT_CHANGED: schedule_load_from_monitor (manager, path); break; - case GNOME_VFS_MONITOR_EVENT_DELETED: + case G_FILE_MONITOR_EVENT_DELETED: ephy_extensions_manager_unload_file (manager, path); break; default: break; } - + g_free (path); } @@ -1037,9 +1035,8 @@ ephy_extensions_manager_load_dir (EphyExtensionsManager *manager, DIR *d; struct dirent *e; char *file_path; - char *file_uri; - GnomeVFSMonitorHandle *monitor; - GnomeVFSResult res; + GFile *directory; + GFileMonitor *monitor; LOG ("Scanning directory '%s'", path); @@ -1061,16 +1058,14 @@ ephy_extensions_manager_load_dir (EphyExtensionsManager *manager, } closedir (d); - file_uri = gnome_vfs_get_uri_from_local_path (path); - res = gnome_vfs_monitor_add (&monitor, - path, - GNOME_VFS_MONITOR_DIRECTORY, - (GnomeVFSMonitorCallback) dir_changed_cb, - manager); - g_free (file_uri); + directory = g_file_new_for_path (path); + monitor = g_file_monitor_directory (directory, 0, NULL); - if (res == GNOME_VFS_OK) + if (monitor != NULL) { + g_signal_connect (monitor, "changed", + G_CALLBACK (dir_changed_cb), + manager); manager->priv->dir_monitors = g_list_prepend (manager->priv->dir_monitors, monitor); } @@ -1165,7 +1160,7 @@ ephy_extensions_manager_dispose (GObject *object) if (priv->dir_monitors != NULL) { - g_list_foreach (priv->dir_monitors, (GFunc) gnome_vfs_monitor_cancel, NULL); + g_list_foreach (priv->dir_monitors, (GFunc) g_file_monitor_cancel, NULL); g_list_free (priv->dir_monitors); priv->dir_monitors = NULL; } -- cgit v1.2.3