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