static gboolean send_files (NstPlugin *plugin, GtkWidget *contact_widget, GList *file_list) { EmpathyContact *contact; GList *l; contact = get_selected_contact (contact_widget); if (!contact) return FALSE; factory = empathy_ft_factory_dup_singleton (); g_signal_connect (factory, "new-ft-handler", G_CALLBACK (handler_ready_cb), plugin); for (l = file_list; l; l = l->next) { gchar *path = l->data; GFile *file; file = g_file_new_for_uri (path); ++transfers; empathy_ft_factory_new_transfer_outgoing (factory, contact, file); g_object_unref (file); } g_object_unref (contact); if (transfers == 0) { destroy (NULL); return TRUE; } return FALSE; }
void empathy_send_file (EmpathyContact *contact, GFile *file) { EmpathyFTFactory *factory; GtkRecentManager *manager; gchar *uri; g_return_if_fail (EMPATHY_IS_CONTACT (contact)); g_return_if_fail (G_IS_FILE (file)); factory = empathy_ft_factory_dup_singleton (); empathy_ft_factory_new_transfer_outgoing (factory, contact, file, empathy_get_current_action_time ()); uri = g_file_get_uri (file); manager = gtk_recent_manager_get_default (); gtk_recent_manager_add_item (manager, uri); g_free (uri); g_object_unref (factory); }