diff options
Diffstat (limited to 'src/dlg-new.c')
-rw-r--r-- | src/dlg-new.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/dlg-new.c b/src/dlg-new.c index 8b78561..118e732 100644 --- a/src/dlg-new.c +++ b/src/dlg-new.c @@ -30,22 +30,21 @@ #include "gtk-utils.h" #include "fr-init.h" #include "preferences.h" - +#include "typedefs.h" #define GET_WIDGET(x) (GTK_WIDGET (gtk_builder_get_object (builder, (x)))) #define DEFAULT_EXTENSION ".tar.gz" -#define MEGABYTE (1024.0 * 1024.0) - /* called when the main dialog is closed. */ static void destroy_cb (GtkWidget *widget, DlgNewData *data) { + if (data->original_file != NULL) + g_object_unref (data->original_file); g_free (data); } - static void update_sensitivity (DlgNewData *data) { @@ -54,7 +53,6 @@ update_sensitivity (DlgNewData *data) gtk_widget_set_sensitive (data->n_volume_spinbutton, ! data->can_create_volumes || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->n_volume_checkbutton))); } - static void update_sensitivity_for_ext (DlgNewData *data, const char *ext) @@ -95,7 +93,6 @@ update_sensitivity_for_ext (DlgNewData *data, update_sensitivity (data); } - static int get_archive_type (DlgNewData *data) { @@ -121,7 +118,6 @@ get_archive_type (DlgNewData *data) return get_mime_type_index (get_mime_type_from_extension (ext)); } - /* FIXME static void archive_type_combo_box_changed_cb (GtkComboBox *combo_box, @@ -166,7 +162,6 @@ archive_type_combo_box_changed_cb (GtkComboBox *combo_box, } */ - static void password_entry_changed_cb (GtkEditable *editable, gpointer user_data) @@ -174,7 +169,6 @@ password_entry_changed_cb (GtkEditable *editable, update_sensitivity ((DlgNewData *) user_data); } - static void volume_toggled_cb (GtkToggleButton *toggle_button, gpointer user_data) @@ -182,7 +176,6 @@ volume_toggled_cb (GtkToggleButton *toggle_button, update_sensitivity ((DlgNewData *) user_data); } - static void format_chooser_selection_changed_cb (EggFileFormatChooser *format_chooser, DlgNewData *data) @@ -227,7 +220,6 @@ format_chooser_selection_changed_cb (EggFileFormatChooser *format_chooser, } } - static char * get_icon_name_for_type (const char *mime_type) { @@ -250,7 +242,6 @@ get_icon_name_for_type (const char *mime_type) return name; } - static void options_expander_unmap_cb (GtkWidget *widget, gpointer user_data) @@ -258,7 +249,6 @@ options_expander_unmap_cb (GtkWidget *widget, egg_file_format_chooser_emit_size_changed ((EggFileFormatChooser *) user_data); } - static DlgNewData * dlg_new_archive (FrWindow *window, int *supported_types, @@ -268,6 +258,7 @@ dlg_new_archive (FrWindow *window, DlgNewData *data; GSettings *settings; int i; + int size; data = g_new0 (DlgNewData, 1); builder = gtk_builder_new_from_resource (ENGRAMPA_RESOURCE_UI_PATH G_DIR_SEPARATOR_S "new.ui"); @@ -304,7 +295,9 @@ dlg_new_archive (FrWindow *window, g_object_unref (settings); settings = g_settings_new (ENGRAMPA_SCHEMA_BATCH_ADD); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->n_volume_spinbutton), g_settings_get_int (settings, PREF_BATCH_ADD_VOLUME_SIZE) / MEGABYTE); + size = g_settings_get_int (settings, PREF_BATCH_ADD_VOLUME_SIZE); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->n_volume_spinbutton), + ((gdouble) size) / MEGABYTE); g_object_unref (settings); /* format chooser */ @@ -380,7 +373,6 @@ dlg_new_archive (FrWindow *window, return data; } - DlgNewData * dlg_new (FrWindow *window) { @@ -392,7 +384,6 @@ dlg_new (FrWindow *window) return data; } - DlgNewData * dlg_save_as (FrWindow *window, const char *default_name) @@ -405,7 +396,6 @@ dlg_save_as (FrWindow *window, return data; } - const char * dlg_new_data_get_password (DlgNewData *data) { @@ -422,7 +412,6 @@ dlg_new_data_get_password (DlgNewData *data) return password; } - gboolean dlg_new_data_get_encrypt_header (DlgNewData *data) { @@ -446,12 +435,10 @@ dlg_new_data_get_encrypt_header (DlgNewData *data) return encrypt_header; } - int dlg_new_data_get_volume_size (DlgNewData *data) { - guint volume_size = 0; - int idx; + int idx; idx = get_archive_type (data); if (idx < 0) @@ -463,9 +450,9 @@ dlg_new_data_get_volume_size (DlgNewData *data) double value; value = gtk_spin_button_get_value (GTK_SPIN_BUTTON (data->n_volume_spinbutton)); - volume_size = floor (value * MEGABYTE); + return (int) (value * MEGABYTE); } - return volume_size; + return 0; } |