From ce10aef80a820bacf1e0f4fd741703b89bc2efd2 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 3 Feb 2012 13:10:01 +0000 Subject: -cleaner --- src/fs/gnunet-fs-gtk_download-save-as.c | 66 +++++++++++++++------------------ 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/src/fs/gnunet-fs-gtk_download-save-as.c b/src/fs/gnunet-fs-gtk_download-save-as.c index 1cd45e8d..812e073d 100644 --- a/src/fs/gnunet-fs-gtk_download-save-as.c +++ b/src/fs/gnunet-fs-gtk_download-save-as.c @@ -91,37 +91,10 @@ GNUNET_GTK_save_as_dialog_delete_event_cb (GtkWidget * widget, GdkEvent * event, gpointer user_data) { struct DownloadAsDialogContext *dlc = user_data; - GtkBuilder *builder; - struct DownloadContext *dc; - GtkWidget *cb; - builder = dlc->builder; - dc = dlc->dc; - cb = GTK_WIDGET (gtk_builder_get_object - (builder, "GNUNET_GTK_save_as_recursive_check_button")); - if (GTK_RESPONSE_OK != dlc->response) - { - save_as_dialog_free_download_context (dc); - g_object_unref (G_OBJECT (dlc->builder)); - GNUNET_free (dlc); - return FALSE; - } - /* FIXME-UGLY: this code should be in the 'save_as_dialog_response_cb' instead */ - GNUNET_free_non_null (dc->filename); - dc->filename = - GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (dlc->dialog)); - dc->is_recursive = - (TRUE == - gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cb))) ? GNUNET_YES : - GNUNET_NO; - dc->anonymity = - gtk_spin_button_get_value (GTK_SPIN_BUTTON - (gtk_builder_get_object - (builder, - "GNUNET_GTK_save_as_dialog_anonymity_spin_button"))); - g_object_unref (G_OBJECT (builder)); + save_as_dialog_free_download_context (dlc->dc); + g_object_unref (G_OBJECT (dlc->builder)); GNUNET_free (dlc); - GNUNET_FS_GTK_download_context_start_download (dc); return FALSE; } @@ -140,15 +113,36 @@ GNUNET_GTK_save_as_dialog_response_cb (GtkDialog * dialog, gpointer user_data) { struct DownloadAsDialogContext *dlc = user_data; + struct DownloadContext *dc; + GtkToggleButton *cb; - dlc->response = response_id; - /* dialogs don't get delete-event the way normal windows do, - call the handler manually */ - /* FIXME-UGLY: this is a bit ugly; instead, move the code - to close the dialog nicely into here! */ - GNUNET_GTK_save_as_dialog_delete_event_cb (GTK_WIDGET (dialog), NULL, - user_data); + dc = dlc->dc; + if (GTK_RESPONSE_OK != dlc->response) + { + save_as_dialog_free_download_context (dc); + gtk_widget_destroy (GTK_WIDGET (dialog)); + g_object_unref (G_OBJECT (dlc->builder)); + GNUNET_free (dlc); + return; + } + GNUNET_free_non_null (dc->filename); + dc->filename = + GNUNET_GTK_filechooser_get_filename_utf8 (GTK_FILE_CHOOSER (dlc->dialog)); + cb = GTK_TOGGLE_BUTTON (gtk_builder_get_object + (dlc->builder, "GNUNET_GTK_save_as_recursive_check_button")); + dc->is_recursive = + (TRUE == + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cb))) ? GNUNET_YES : + GNUNET_NO; + dc->anonymity = + gtk_spin_button_get_value (GTK_SPIN_BUTTON + (gtk_builder_get_object + (dlc->builder, + "GNUNET_GTK_save_as_dialog_anonymity_spin_button"))); gtk_widget_destroy (GTK_WIDGET (dialog)); + g_object_unref (G_OBJECT (dlc->builder)); + GNUNET_free (dlc); + GNUNET_FS_GTK_download_context_start_download (dc); } -- cgit v1.2.3