[gnome-commander] Fixed problem #667080 (delete confirmation defaults to YES/OK)



commit c54ce24e49d81a2636da06bfcd0ce40d85ea072b
Author: Piotr Eljasiak <epiotr src gnome org>
Date:   Wed Jan 4 19:22:44 2012 +0100

    Fixed problem #667080 (delete confirmation defaults to YES/OK)

 NEWS                            |    1 +
 doc/C/gnome-commander.xml       |   11 +++++++++++
 doc/C/releases.xml              |    3 +++
 src/gnome-cmd-data.cc           |    3 +++
 src/gnome-cmd-data.h            |    2 ++
 src/gnome-cmd-delete-dialog.cc  |    2 +-
 src/gnome-cmd-options-dialog.cc |   17 +++++++++++++++++
 7 files changed, 38 insertions(+), 1 deletions(-)
---
diff --git a/NEWS b/NEWS
index 32f381b..132f08c 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Bug fixes:
  * Fixed problems #632064, #632208, #633107, #633167, #633331, #634972, #637873, #638059 (bugs in gnome-commander-help.master.po)
  * Fixed problem #660043 (shortcut ALT+DOWN not documented)
  * Fixed problem #660268 (remember directory history between sessions)
+ * Fixed problem #667080 (delete confirmation defaults to YES/OK)
  * Fixed Ubuntu problem #117226 (bookmarks unification)
  * Fixed problem with right mouse button selection not being precise
 
diff --git a/doc/C/gnome-commander.xml b/doc/C/gnome-commander.xml
index dc9e0c0..bb4eaf6 100644
--- a/doc/C/gnome-commander.xml
+++ b/doc/C/gnome-commander.xml
@@ -4863,6 +4863,17 @@
             </row>
             <row>
               <entry>
+                <para></para>
+              </entry>
+              <entry colname="colspec2">
+                <para>Confirm defaults to OK</para>
+              </entry>
+              <entry colname="colspec3">
+                <para>Selects default action in the dialog.</para>
+              </entry>
+            </row>
+            <row>
+              <entry>
                 <para>
                   <guilabel>Copy overwrite</guilabel>
                 </para>
diff --git a/doc/C/releases.xml b/doc/C/releases.xml
index dcd0a3e..8edfd3e 100644
--- a/doc/C/releases.xml
+++ b/doc/C/releases.xml
@@ -46,6 +46,9 @@
                             <para>Fixed problem #660268 (remember directory history between sessions)</para>
                         </listitem>
                         <listitem>
+                            <para>Fixed problem #667080 (delete confirmation defaults to YES/OK)</para>
+                        </listitem>
+                        <listitem>
                             <para>Fixed Ubuntu problem #117226 (bookmarks unification)</para>
                         </listitem>
                         <listitem>
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 73bfc1c..a835eb1 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -96,6 +96,7 @@ GnomeCmdData::Options::Options(const Options &cfg)
     always_show_tabs = cfg.always_show_tabs;
     tab_lock_indicator = cfg.tab_lock_indicator;
     confirm_delete = cfg.confirm_delete;
+    confirm_delete_default = cfg.confirm_delete_default;
     confirm_copy_overwrite = cfg.confirm_copy_overwrite;
     confirm_move_overwrite = cfg.confirm_move_overwrite;
     confirm_mouse_dnd = cfg.confirm_mouse_dnd;
@@ -1092,6 +1093,7 @@ void GnomeCmdData::load()
     options.list_row_height = gnome_cmd_data_get_int ("/options/list_row_height", 16);
 
     options.confirm_delete = gnome_cmd_data_get_bool ("/confirm/delete", TRUE);
+    options.confirm_delete_default = (GtkButtonsType) gnome_cmd_data_get_int ("/confirm/delete_default", GTK_BUTTONS_OK);
     options.confirm_copy_overwrite = (GnomeCmdConfirmOverwriteMode) gnome_cmd_data_get_int ("/confirm/copy_overwrite", GNOME_CMD_CONFIRM_OVERWRITE_QUERY);
     options.confirm_move_overwrite = (GnomeCmdConfirmOverwriteMode) gnome_cmd_data_get_int ("/confirm/move_overwrite", GNOME_CMD_CONFIRM_OVERWRITE_QUERY);
     options.confirm_mouse_dnd = gnome_cmd_data_get_bool ("/confirm/confirm_mouse_dnd", TRUE);
@@ -1529,6 +1531,7 @@ void GnomeCmdData::save()
     g_free (utf8_date_format);
 
     gnome_cmd_data_set_bool   ("/confirm/delete", options.confirm_delete);
+    gnome_cmd_data_set_int    ("/confirm/delete_default", options.confirm_delete_default);
     gnome_cmd_data_set_int    ("/confirm/copy_overwrite", options.confirm_copy_overwrite);
     gnome_cmd_data_set_int    ("/confirm/move_overwrite", options.confirm_move_overwrite);
     gnome_cmd_data_set_bool   ("/confirm/confirm_mouse_dnd", options.confirm_mouse_dnd);
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index 21ed555..1cf62a2 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -121,6 +121,7 @@ struct GnomeCmdData
         int                          tab_lock_indicator;
         //  Confirmation
         gboolean                     confirm_delete;
+        GtkButtonsType               confirm_delete_default;
         GnomeCmdConfirmOverwriteMode confirm_copy_overwrite;
         GnomeCmdConfirmOverwriteMode confirm_move_overwrite;
         gboolean                     confirm_mouse_dnd;
@@ -169,6 +170,7 @@ struct GnomeCmdData
                    always_show_tabs(FALSE),
                    tab_lock_indicator(TAB_LOCK_ICON),
                    confirm_delete(TRUE),
+                   confirm_delete_default(GTK_BUTTONS_OK),
                    confirm_copy_overwrite(GNOME_CMD_CONFIRM_OVERWRITE_QUERY),
                    confirm_move_overwrite(GNOME_CMD_CONFIRM_OVERWRITE_QUERY),
                    confirm_mouse_dnd(TRUE),
diff --git a/src/gnome-cmd-delete-dialog.cc b/src/gnome-cmd-delete-dialog.cc
index bfddd53..e6985d7 100644
--- a/src/gnome-cmd-delete-dialog.cc
+++ b/src/gnome-cmd-delete-dialog.cc
@@ -284,7 +284,7 @@ void gnome_cmd_delete_dialog_show (GList *files)
 
         response = run_simple_dialog (*main_win, FALSE,
                                       GTK_MESSAGE_QUESTION, msg, _("Delete"),
-                                      1, _("Cancel"), _("OK"), NULL);
+                                      gnome_cmd_data.options.confirm_delete_default==GTK_BUTTONS_CANCEL ? 0 : 1, _("Cancel"), _("OK"), NULL);
 
         g_free (msg);
     }
diff --git a/src/gnome-cmd-options-dialog.cc b/src/gnome-cmd-options-dialog.cc
index fb9de46..696ac49 100644
--- a/src/gnome-cmd-options-dialog.cc
+++ b/src/gnome-cmd-options-dialog.cc
@@ -49,6 +49,14 @@ static void on_save_tabs_toggled (GtkToggleButton *togglebutton, GtkWidget *dial
 }
 
 
+static void on_confirm_delete_toggled (GtkToggleButton *togglebutton, GtkWidget *dialog)
+{
+    GtkWidget *check = lookup_widget (dialog, "delete_default_check");
+
+    gtk_widget_set_sensitive (check, gtk_toggle_button_get_active (togglebutton));
+}
+
+
 /***********************************************************************
  *
  *  The General tab
@@ -921,6 +929,12 @@ inline GtkWidget *create_confirmation_tab (GtkWidget *parent, GnomeCmdData::Opti
     check = create_check (parent, _("Confirm before delete"), "confirm_delete_check");
     gtk_box_pack_start (GTK_BOX (cat_box), check, FALSE, TRUE, 0);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.confirm_delete);
+    g_signal_connect (check, "toggled", G_CALLBACK (on_confirm_delete_toggled), parent);
+
+    check = create_check (parent, _("Confirm defaults to OK"), "delete_default_check");
+    gtk_box_pack_start (GTK_BOX (cat_box), check, FALSE, TRUE, 0);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), cfg.confirm_delete_default!=GTK_BUTTONS_CANCEL);
+    gtk_widget_set_sensitive (check, cfg.confirm_delete);
 
 
     /* Copy overwrite options
@@ -981,6 +995,7 @@ inline GtkWidget *create_confirmation_tab (GtkWidget *parent, GnomeCmdData::Opti
 inline void store_confirmation_options (GtkWidget *dialog, GnomeCmdData::Options &cfg)
 {
     GtkWidget *confirm_delete_check = lookup_widget (dialog, "confirm_delete_check");
+    GtkWidget *delete_default_check = lookup_widget (dialog, "delete_default_check");
     GtkWidget *confirm_copy_silent = lookup_widget (dialog, "copy_overwrite_silently");
     GtkWidget *confirm_copy_query = lookup_widget (dialog, "copy_overwrite_query");
     GtkWidget *confirm_copy_skip_all = lookup_widget (dialog, "copy_overwrite_skip_all");
@@ -991,6 +1006,8 @@ inline void store_confirmation_options (GtkWidget *dialog, GnomeCmdData::Options
 
     cfg.confirm_delete = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (confirm_delete_check));
 
+    cfg.confirm_delete_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (delete_default_check)) ? GTK_BUTTONS_OK : GTK_BUTTONS_CANCEL;
+
     if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (confirm_copy_silent)))
         cfg.confirm_copy_overwrite = GNOME_CMD_CONFIRM_OVERWRITE_SILENTLY;
     else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (confirm_copy_query)))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]