]> Pileus Git - ~andy/gtk/commitdiff
Bug 562878 – password save incorrectly set in gtkmountoperation
authorCarlos Garcia Campos <carlosgc@gnome.org>
Tue, 2 Dec 2008 09:06:35 +0000 (09:06 +0000)
committerCarlos Garcia Campos <carlosgc@src.gnome.org>
Tue, 2 Dec 2008 09:06:35 +0000 (09:06 +0000)
2008-12-02  Carlos Garcia Campos  <carlosgc@gnome.org>

Bug 562878 – password save incorrectly set in gtkmountoperation

* gtk/gtkmountoperation.c (remember_button_toggled),
(gtk_mount_operation_ask_password): Remember the password save
flags only when the radio button becomes active. Set also the
default state of the radio buttons depending on the current value
of password save flags.

svn path=/trunk/; revision=21840

ChangeLog
gtk/gtkmountoperation.c

index ac2f7076c0e402364f6ddaf37a641c4f96225124..5250c773114949756105abf7e39d7b563b3a5b45 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-12-02  Carlos Garcia Campos  <carlosgc@gnome.org>
+
+       Bug 562878 – password save incorrectly set in gtkmountoperation
+
+       * gtk/gtkmountoperation.c (remember_button_toggled),
+       (gtk_mount_operation_ask_password): Remember the password save
+       flags only when the radio button becomes active. Set also the
+       default state of the radio buttons depending on the current value
+       of password save flags. 
+       
 2008-12-01  Matthias Clasen <mclasen@redhat.com>
 
        Bug 555334 – connected server feature
index b33dafcedf0b8d1f6157cb574ef165b587f84716..9172d9ef5583e4b05455ff560bf5b5f56e8107b8 100644 (file)
@@ -252,14 +252,18 @@ gtk_mount_operation_init (GtkMountOperation *operation)
 }
 
 static void
-remember_button_toggled (GtkWidget         *widget,
+remember_button_toggled (GtkToggleButton   *button,
                          GtkMountOperation *operation)
 {
   GtkMountOperationPrivate *priv = operation->priv;
-  gpointer data;
 
-  data = g_object_get_data (G_OBJECT (widget), "password-save");
-  priv->password_save = GPOINTER_TO_INT (data);
+  if (gtk_toggle_button_get_active (button))
+    {
+      gpointer data;
+
+      data = g_object_get_data (G_OBJECT (button), "password-save");
+      priv->password_save = GPOINTER_TO_INT (data);
+    }
 }
 
 static void
@@ -579,15 +583,20 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
 
    if (flags & G_ASK_PASSWORD_SAVING_SUPPORTED)
     {
-      GtkWidget  *choice;
-      GtkWidget  *remember_box;
-      GSList     *group;
+      GtkWidget    *choice;
+      GtkWidget    *remember_box;
+      GSList       *group;
+      GPasswordSave password_save;
 
       remember_box = gtk_vbox_new (FALSE, 6);
       gtk_box_pack_start (GTK_BOX (vbox), remember_box,
                           FALSE, FALSE, 0);
 
+      password_save = g_mount_operation_get_password_save (mount_op);
+      
       choice = gtk_radio_button_new_with_mnemonic (NULL, _("Forget password _immediately"));
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice),
+                                    password_save == G_PASSWORD_SAVE_NEVER);
       g_object_set_data (G_OBJECT (choice), "password-save",
                          GINT_TO_POINTER (G_PASSWORD_SAVE_NEVER));
       g_signal_connect (choice, "toggled",
@@ -596,6 +605,8 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
 
       group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice));
       choice = gtk_radio_button_new_with_mnemonic (group, _("Remember password until you _logout"));
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice),
+                                    password_save == G_PASSWORD_SAVE_FOR_SESSION);
       g_object_set_data (G_OBJECT (choice), "password-save",
                          GINT_TO_POINTER (G_PASSWORD_SAVE_FOR_SESSION));
       g_signal_connect (choice, "toggled",
@@ -604,6 +615,8 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
 
       group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice));
       choice = gtk_radio_button_new_with_mnemonic (group, _("Remember _forever"));
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice),
+                                    password_save == G_PASSWORD_SAVE_PERMANENTLY);
       g_object_set_data (G_OBJECT (choice), "password-save",
                          GINT_TO_POINTER (G_PASSWORD_SAVE_PERMANENTLY));
       g_signal_connect (choice, "toggled",