diff -Naur ristretto-master/src/main_window.c ristretto-test/src/main_window.c --- ristretto-master/src/main_window.c 2013-04-10 19:13:48.058606851 -0700 +++ ristretto-test/src/main_window.c 2013-04-10 19:26:19.888854653 -0700 @@ -3314,6 +3314,10 @@ GtkWidget *dialog; GdkModifierType state; gboolean delete_file = FALSE; + gboolean prompt_during_deletion = rstto_settings_get_boolean_property ( + window->priv->settings_manager, + "prompt-during-deletion"); + GError *error = NULL; g_return_if_fail (rstto_image_list_get_n_images (window->priv->image_list) > 0); @@ -3337,7 +3341,7 @@ file_basename); g_object_ref (file); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) + if (! prompt_during_deletion || (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)) { if (g_file_delete (rstto_file_get_file(file), NULL, &error) == TRUE) { @@ -3371,7 +3375,7 @@ file_basename); g_object_ref (file); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) + if (! prompt_during_deletion || (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)) { if (g_file_trash (rstto_file_get_file(file), NULL, &error) == TRUE) { diff -Naur ristretto-master/src/preferences_dialog.c ristretto-test/src/preferences_dialog.c --- ristretto-master/src/preferences_dialog.c 2013-04-10 19:13:48.059606852 -0700 +++ ristretto-test/src/preferences_dialog.c 2013-04-10 19:26:19.888854653 -0700 @@ -78,6 +78,10 @@ GtkToggleButton *button, gpointer user_data); static void +cb_prompt_during_deletion_check_button_toggled ( + GtkToggleButton *button, + gpointer user_data); +static void cb_choose_desktop_combo_box_changed ( GtkComboBox *combo_box, gpointer user_data); @@ -139,6 +143,10 @@ GtkWidget *desktop_vbox; GtkWidget *choose_desktop_combo_box; + GtkWidget *deletion_frame; + GtkWidget *deletion_vbox; + GtkWidget *prompt_during_deletion_check_button; + GtkWidget *startup_frame; GtkWidget *startup_vbox; GtkWidget *maximize_window_on_startup_check_button; @@ -226,6 +234,7 @@ gboolean bool_hide_thumbnails_fullscreen; gboolean bool_wrap_images; gboolean bool_maximize_on_startup; + gboolean bool_prompt_during_deletion; gboolean bool_show_clock; gboolean bool_limit_quality; gchar *str_desktop_type = NULL; @@ -263,6 +272,7 @@ "slideshow-timeout", &uint_slideshow_timeout, "hide-thumbnails-fullscreen", &bool_hide_thumbnails_fullscreen, "maximize-on-startup", &bool_maximize_on_startup, + "prompt-during-deletion", &bool_prompt_during_deletion, "wrap-images", &bool_wrap_images, "desktop-type", &str_desktop_type, "show-clock", &bool_show_clock, @@ -448,6 +458,23 @@ dialog); /********************************************/ + dialog->priv->behaviour_tab.deletion_vbox = gtk_vbox_new(FALSE, 0); + dialog->priv->behaviour_tab.deletion_frame = xfce_gtk_frame_box_new_with_content(_("File Deletion"), dialog->priv->behaviour_tab.deletion_vbox); + gtk_box_pack_start (GTK_BOX (behaviour_main_vbox), dialog->priv->behaviour_tab.deletion_frame, FALSE, FALSE, 0); + + dialog->priv->behaviour_tab.prompt_during_deletion_check_button = gtk_check_button_new_with_label (_("Prompt during file deletion")); + gtk_container_add (GTK_CONTAINER (dialog->priv->behaviour_tab.deletion_vbox), dialog->priv->behaviour_tab.prompt_during_deletion_check_button); + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (dialog->priv->behaviour_tab.prompt_during_deletion_check_button), + bool_prompt_during_deletion); + + g_signal_connect ( + G_OBJECT (dialog->priv->behaviour_tab.prompt_during_deletion_check_button), + "toggled", + (GCallback)cb_prompt_during_deletion_check_button_toggled, + dialog); + + /********************************************/ dialog->priv->behaviour_tab.desktop_vbox = gtk_vbox_new(FALSE, 4); dialog->priv->behaviour_tab.desktop_frame = xfce_gtk_frame_box_new_with_content( _("Desktop"), @@ -902,6 +929,52 @@ } /** + * cb_prompt_during_deletion_check_button_toggled: + * @button: The check-button the user clicked. + * @user_data: The user-data provided when connecting the + * callback-function, the preferences-dialog. + * + * + * This function is called when a user toggles the 'prompt-during-deletion' + * check-button. This function then sets the right property in the + * ristretto settings container. + * + * When this property is set, the user will not be prompted when an image + * is deleted. + * + * + * active = toggle_button_get_active () + * + * if ( active == TRUE ) then + * + * set_property ( "prompt-during-deletion", TRUE ); + * + * else + * + * set_property ( "prompt-during-deletion", FALSE ); + * + * endif + */ +static void +cb_prompt_during_deletion_check_button_toggled ( + GtkToggleButton *button, + gpointer user_data) +{ + /* Variable Section */ + + RsttoPreferencesDialog *dialog = RSTTO_PREFERENCES_DIALOG ( user_data ); + gboolean prompt_during_deletion = gtk_toggle_button_get_active ( button ); + + + /* Code Section */ + + rstto_settings_set_boolean_property ( + dialog->priv->settings, + "prompt-during-deletion", + prompt_during_deletion ); +} + +/** * cb_show_clock_check_button_toggled: * @button: The check-button the user clicked. * @user_data: The user-data provided when connecting the diff -Naur ristretto-master/src/settings.c ristretto-test/src/settings.c --- ristretto-master/src/settings.c 2013-04-10 19:13:48.059606852 -0700 +++ ristretto-test/src/settings.c 2013-04-10 19:26:19.888854653 -0700 @@ -75,6 +75,7 @@ PROP_INVERT_ZOOM_DIRECTION, PROP_USE_THUNAR_PROPERTIES, PROP_MAXIMIZE_ON_STARTUP, + PROP_PROMPT_DURING_DELETION, PROP_ERROR_MISSING_THUMBNAILER, PROP_SORT_TYPE, PROP_THUMBNAIL_SIZE, @@ -129,6 +130,7 @@ gchar *desktop_type; gboolean use_thunar_properties; gboolean maximize_on_startup; + gboolean prompt_during_deletion; RsttoThumbnailSize thumbnail_size; RsttoSortType sort_type; @@ -187,6 +189,7 @@ settings->priv->use_thunar_properties = TRUE; settings->priv->maximize_on_startup = TRUE; settings->priv->hide_thumbnails_fullscreen = TRUE; + settings->priv->prompt_during_deletion = TRUE; settings->priv->errors.missing_thumbnailer = TRUE; settings->priv->thumbnail_size = THUMBNAIL_SIZE_NORMAL; @@ -328,6 +331,13 @@ xfconf_g_property_bind ( settings->priv->channel, + "/image/prompt-during-deletion", + G_TYPE_BOOLEAN, + settings, + "prompt-during-deletion"); + + xfconf_g_property_bind ( + settings->priv->channel, "/errors/missing-thumbnailer", G_TYPE_BOOLEAN, settings, @@ -574,6 +584,17 @@ pspec); pspec = g_param_spec_boolean ( + "prompt-during-deletion", + "", + "", + TRUE, + G_PARAM_READWRITE); + g_object_class_install_property ( + object_class, + PROP_PROMPT_DURING_DELETION, + pspec); + + pspec = g_param_spec_boolean ( "show-error-missing-thumbnailer", "", "", @@ -768,6 +789,9 @@ case PROP_MAXIMIZE_ON_STARTUP: settings->priv->maximize_on_startup = g_value_get_boolean (value); break; + case PROP_PROMPT_DURING_DELETION: + settings->priv->prompt_during_deletion = g_value_get_boolean (value); + break; case PROP_ERROR_MISSING_THUMBNAILER: settings->priv->errors.missing_thumbnailer = g_value_get_boolean (value); break; @@ -850,6 +874,9 @@ case PROP_MAXIMIZE_ON_STARTUP: g_value_set_boolean (value, settings->priv->maximize_on_startup); break; + case PROP_PROMPT_DURING_DELETION: + g_value_set_boolean (value, settings->priv->prompt_during_deletion); + break; case PROP_ERROR_MISSING_THUMBNAILER: g_value_set_boolean ( value,