int main (int argc, char* argv[]) { GtkWidget *window; GList *sources; GFile *dest; GFile *source; int i; GList *infos; NautilusProgressInfoManager *manager; NautilusProgressInfo *progress_info; test_init (&argc, &argv); if (argc < 3) { g_print ("Usage test-copy <sources...> <dest dir>\n"); return 1; } sources = NULL; for (i = 1; i < argc - 1; i++) { source = g_file_new_for_commandline_arg (argv[i]); sources = g_list_prepend (sources, source); } sources = g_list_reverse (sources); dest = g_file_new_for_commandline_arg (argv[i]); window = test_window_new ("copy test", 5); gtk_widget_show (window); manager = nautilus_progress_info_manager_new (); nautilus_file_operations_copy (sources, NULL /* GArray *relative_item_points */, dest, GTK_WINDOW (window), copy_done, NULL); infos = nautilus_progress_info_manager_get_all_infos (manager); if (infos == NULL) { g_object_unref (manager); return 0; } progress_info = NAUTILUS_PROGRESS_INFO (infos->data); g_signal_connect (progress_info, "changed", (GCallback)changed_cb, NULL); g_signal_connect (progress_info, "progress-changed", (GCallback)progress_changed_cb, NULL); g_signal_connect (progress_info, "finished", (GCallback)finished_cb, NULL); gtk_main (); g_object_unref (manager); return 0; }
static void nautilus_progress_ui_handler_init (NautilusProgressUIHandler *self) { self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NAUTILUS_TYPE_PROGRESS_UI_HANDLER, NautilusProgressUIHandlerPriv); self->priv->manager = nautilus_progress_info_manager_new (); g_signal_connect (self->priv->manager, "new-progress-info", G_CALLBACK (new_progress_info_cb), self); self->priv->notification_supports_persistence = server_has_persistence (); }