static void build_dialog_appearance (NautilusFileConflictDialog *fcd) { GList *files = NULL; NautilusFileConflictDialogDetails *details = fcd->details; files = g_list_prepend (files, details->source); files = g_list_prepend (files, details->destination); files = g_list_prepend (files, details->dest_dir); nautilus_file_list_call_when_ready (files, NAUTILUS_FILE_ATTRIBUTES_FOR_ICON, &details->handle, file_list_ready_cb, fcd); g_list_free (files); }
static gboolean run_file_conflict_dialog (gpointer user_data) { FileConflictDialogData *data = user_data; int response_id; GList *files = NULL; data->source = nautilus_file_get (data->source_name); data->destination = nautilus_file_get (data->destination_name); data->destination_directory = nautilus_file_get (data->destination_directory_name); data->dialog = nautilus_file_conflict_dialog_new (data->parent); files = g_list_prepend (files, data->source); files = g_list_prepend (files, data->destination); files = g_list_prepend (files, data->destination_directory); nautilus_file_list_call_when_ready (files, NAUTILUS_FILE_ATTRIBUTES_FOR_ICON, &data->handle, data->on_file_list_ready, data); response_id = gtk_dialog_run (GTK_DIALOG (data->dialog)); if (data->handle != NULL) { nautilus_file_list_cancel_call_when_ready (data->handle); } if (data->source_handler_id) { g_signal_handler_disconnect (data->source, data->source_handler_id); nautilus_file_monitor_remove (data->source, data); } if (data->destination_handler_id) { g_signal_handler_disconnect (data->destination, data->destination_handler_id); nautilus_file_monitor_remove (data->destination, data); } if (response_id == CONFLICT_RESPONSE_RENAME) { data->response->new_name = nautilus_file_conflict_dialog_get_new_name (data->dialog); } else if (response_id != GTK_RESPONSE_CANCEL || response_id != GTK_RESPONSE_NONE) { data->response->apply_to_all = nautilus_file_conflict_dialog_get_apply_to_all (data->dialog); } data->response->id = response_id; gtk_widget_destroy (GTK_WIDGET (data->dialog)); nautilus_file_unref (data->source); nautilus_file_unref (data->destination); nautilus_file_unref (data->destination_directory); g_list_free (files); return G_SOURCE_REMOVE; }