static void search_monitor_remove (NautilusDirectory *directory, gconstpointer client) { NautilusSearchDirectory *search; SearchMonitor *monitor; GList *list; search = NAUTILUS_SEARCH_DIRECTORY (directory); for (list = search->details->monitor_list; list != NULL; list = list->next) { monitor = list->data; if (monitor->client == client) { search->details->monitor_list = g_list_delete_link (search->details->monitor_list, list); search_monitor_destroy (monitor, search); break; } } if (!search->details->monitor_list) { stop_search (search); } }
static void search_dispose (GObject *object) { NemoSearchDirectory *search; GList *list; search = NEMO_SEARCH_DIRECTORY (object); /* Remove search monitors */ if (search->details->monitor_list) { for (list = search->details->monitor_list; list != NULL; list = list->next) { search_monitor_destroy ((SearchMonitor *)list->data, search); } g_list_free (search->details->monitor_list); search->details->monitor_list = NULL; } reset_file_list (search); if (search->details->callback_list) { /* Remove callbacks */ g_list_foreach (search->details->callback_list, (GFunc)search_callback_destroy, NULL); g_list_free (search->details->callback_list); search->details->callback_list = NULL; } if (search->details->pending_callback_list) { g_list_foreach (search->details->pending_callback_list, (GFunc)search_callback_destroy, NULL); g_list_free (search->details->pending_callback_list); search->details->pending_callback_list = NULL; } if (search->details->query) { g_object_unref (search->details->query); search->details->query = NULL; } if (search->details->engine) { if (search->details->search_running) { nemo_search_engine_stop (search->details->engine); } g_object_unref (search->details->engine); search->details->engine = NULL; } G_OBJECT_CLASS (nemo_search_directory_parent_class)->dispose (object); }
static void search_dispose (GObject *object) { NautilusSearchDirectory *search; GList *list; search = NAUTILUS_SEARCH_DIRECTORY (object); clear_base_model (search); /* Remove search monitors */ if (search->details->monitor_list) { for (list = search->details->monitor_list; list != NULL; list = list->next) { search_monitor_destroy ((SearchMonitor *)list->data, search); } g_list_free (search->details->monitor_list); search->details->monitor_list = NULL; } reset_file_list (search); if (search->details->callback_list) { /* Remove callbacks */ g_list_foreach (search->details->callback_list, (GFunc)search_callback_destroy, NULL); g_list_free (search->details->callback_list); search->details->callback_list = NULL; } if (search->details->pending_callback_list) { g_list_foreach (search->details->pending_callback_list, (GFunc)search_callback_destroy, NULL); g_list_free (search->details->pending_callback_list); search->details->pending_callback_list = NULL; } g_clear_object (&search->details->query); stop_search (search); search_disconnect_engine(search); g_clear_object (&search->details->engine); G_OBJECT_CLASS (nautilus_search_directory_parent_class)->dispose (object); }
static void search_monitor_remove (NemoDirectory *directory, gconstpointer client) { NemoSearchDirectory *search; SearchMonitor *monitor; GList *list; search = NEMO_SEARCH_DIRECTORY (directory); for (list = search->details->monitor_list; list != NULL; list = list->next) { monitor = list->data; if (monitor->client == client) { search->details->monitor_list = g_list_delete_link (search->details->monitor_list, list); search_monitor_destroy (monitor, search); break; } } start_or_stop_search_engine (search, FALSE); }