kov changed gksu/trunk/ChangeLog, gksu/trunk/gksu/gksu.c

Gustavo Noronha kov at costa.debian.org
Sat Sep 10 18:16:41 UTC 2005


Mensagem de log: 
	* gksu/gksu.c:
	- change the UI to make it clear that the first choice
	  to be made is whether to record the password and the
	  second one is in which keyring (default or session)
	  when using the GNOME keyring.



-----


Modified: gksu/trunk/ChangeLog
===================================================================
--- gksu/trunk/ChangeLog	2005-09-10 15:06:37 UTC (rev 429)
+++ gksu/trunk/ChangeLog	2005-09-10 18:16:40 UTC (rev 430)
@@ -1,3 +1,11 @@
+2005-09-10  Gustavo Noronha Silva  <kov at debian.org>
+
+	* gksu/gksu.c:
+	- change the UI to make it clear that the first choice
+	  to be made is whether to record the password and the
+	  second one is in which keyring (default or session)
+	  when using the GNOME keyring.
+
 2005-08-20  Gustavo Noronha Silva  <kov at debian.org>
 
 	* gksu/{gksu,util}.c:

Modified: gksu/trunk/gksu/gksu.c
===================================================================
--- gksu/trunk/gksu/gksu.c	2005-09-10 15:06:37 UTC (rev 429)
+++ gksu/trunk/gksu/gksu.c	2005-09-10 18:16:40 UTC (rev 430)
@@ -714,23 +714,36 @@
 }
 
 void
+set_sensitivity_cb (GtkWidget *button, gpointer data)
+{
+  GtkWidget *widget = (GtkWidget*)data;
+  gboolean sensitive;
+
+  sensitive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+  gtk_widget_set_sensitive (widget, sensitive);
+}
+
+void
 cb_toggled_cb (GtkWidget *button, gpointer data)
 {
   gchar *key;
   gboolean toggled;
+  gchar *key_name;
 
   g_return_if_fail (data != NULL);
 
+  key_name = (gchar*)data;
+
   toggled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
 
-  key = g_strdup_printf (BASE_PATH "%s", (gchar*)data);
+  key = g_strdup_printf (BASE_PATH "%s", key_name);
 
-  if (!strcmp ((gchar*)data, "save-keyring"))
+  if (!strcmp (key_name, "save-keyring"))
     {
       if (toggled)
+	gconf_client_set_string (gconf_client, key, "session", NULL);
+      else
 	gconf_client_set_string (gconf_client, key, "default", NULL);
-      else
-	gconf_client_set_string (gconf_client, key, "session", NULL);
     }
   else
     gconf_client_set_bool (gconf_client, key, toggled, NULL);
@@ -1085,27 +1098,48 @@
     {
       GtkWidget *vbox;
       GtkWidget *check_button;
+      GtkWidget *alignment;
+      GtkWidget *radio_vbox;
+      GtkWidget *radio_session, *radio_default;
+      gboolean remember_password;
       gchar *tmp = NULL;
 
       vbox = gtk_vbox_new (2, TRUE);
       gtk_box_pack_start (GTK_BOX(GKSUUI_DIALOG(dialog)->entry_vbox), vbox, TRUE, TRUE, 0);
       gtk_widget_show (vbox);
 
-      check_button = gtk_check_button_new_with_label (_("Remember password for this session"));
+      check_button = gtk_check_button_new_with_label (_("Remember password"));
       g_signal_connect (G_OBJECT(check_button), "toggled", G_CALLBACK(cb_toggled_cb), "save-to-keyring");
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(check_button), 
-				    gconf_client_get_bool (gconf_client, BASE_PATH"save-to-keyring", NULL));
+
+      remember_password = gconf_client_get_bool (gconf_client, BASE_PATH"save-to-keyring", NULL);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(check_button), remember_password);
       gtk_box_pack_start (GTK_BOX(vbox), check_button, TRUE, TRUE, 0);
       gtk_widget_show (check_button);
       
-      check_button = gtk_check_button_new_with_label (_("Save password in the keyring"));
-      g_signal_connect (G_OBJECT(check_button), "toggled", G_CALLBACK(cb_toggled_cb), "save-keyring");
+      alignment = gtk_alignment_new (0.5, 0.5, 0.6, 1);
+      gtk_box_pack_start (GTK_BOX(vbox), alignment, TRUE, TRUE, 2);
+      gtk_widget_show (alignment);
+
+      radio_vbox = gtk_vbox_new (2, TRUE);
+      gtk_container_add (GTK_CONTAINER(alignment), radio_vbox);
+      gtk_widget_set_sensitive (radio_vbox, remember_password);
+      gtk_widget_show (radio_vbox);
+
+      radio_session = gtk_radio_button_new_with_label (NULL, _("Save for this session"));
+      g_signal_connect (G_OBJECT(radio_session), "toggled", G_CALLBACK(cb_toggled_cb), "save-keyring");
+      gtk_box_pack_start (GTK_BOX(radio_vbox), radio_session, TRUE, TRUE, 0);
+      gtk_widget_show (radio_session);
+
+      radio_default = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON(radio_session), _("Save in the keyring"));
+      gtk_box_pack_start (GTK_BOX(radio_vbox), radio_default, TRUE, TRUE, 0);
+      gtk_widget_show (radio_default);
+
+      g_signal_connect (G_OBJECT(check_button), "toggled", G_CALLBACK(set_sensitivity_cb), radio_vbox);
+
       tmp = gconf_client_get_string (gconf_client, BASE_PATH"save-keyring", NULL);
       if (tmp && (!strcmp (tmp, "default")))
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(check_button), TRUE);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(radio_default), TRUE);
       g_free (tmp);
-      gtk_box_pack_start (GTK_BOX(vbox), check_button, TRUE, TRUE, 0);
-      gtk_widget_show (check_button);
 
       if (!always_ask_pass)
 	{




More information about the gksu-commits mailing list