[gnome-control-center] user-accounts: add password generation to the add user dialog
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] user-accounts: add password generation to the add user dialog
- Date: Fri, 16 Aug 2013 21:10:19 +0000 (UTC)
commit 60e1999618774c09283423195e490d61d5b74b86
Author: Ondrej Holy <oholy redhat com>
Date: Tue Aug 6 16:12:21 2013 +0200
user-accounts: add password generation to the add user dialog
https://bugzilla.gnome.org/show_bug.cgi?id=706067
panels/user-accounts/um-account-dialog.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/panels/user-accounts/um-account-dialog.c b/panels/user-accounts/um-account-dialog.c
index 2c9993d..cdf0288 100644
--- a/panels/user-accounts/um-account-dialog.c
+++ b/panels/user-accounts/um-account-dialog.c
@@ -282,6 +282,8 @@ update_password_strength (UmAccountDialog *self)
if (strength_level > 0) {
set_entry_validation_checkmark (GTK_ENTRY (self->local_password));
+ } else if (strlen (password) == 0) {
+ set_entry_generation_icon (GTK_ENTRY (self->local_password));
} else {
clear_entry_validation_error (GTK_ENTRY (self->local_password));
}
@@ -452,6 +454,23 @@ update_password_match (UmAccountDialog *self)
}
}
+static void
+on_generate (GtkEntry *entry,
+ GtkEntryIconPosition pos,
+ GdkEventButton *event,
+ UmAccountDialog *self)
+{
+ gchar *pwd;
+
+ pwd = pw_generate ();
+
+ gtk_entry_set_text (GTK_ENTRY (self->local_password), pwd);
+ gtk_entry_set_text (GTK_ENTRY (self->local_verify), pwd);
+ gtk_entry_set_visibility (GTK_ENTRY (self->local_password), TRUE);
+
+ g_free (pwd);
+}
+
static gboolean
local_password_timeout (UmAccountDialog *self)
{
@@ -484,6 +503,7 @@ on_password_changed (GtkEntry *entry,
gpointer user_data)
{
UmAccountDialog *self = UM_ACCOUNT_DIALOG (user_data);
+ const char *password;
if (self->local_password_timeout_id != 0) {
g_source_remove (self->local_password_timeout_id);
@@ -494,6 +514,11 @@ on_password_changed (GtkEntry *entry,
clear_entry_validation_error (GTK_ENTRY (self->local_verify));
gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE);
+ password = gtk_entry_get_text (GTK_ENTRY (self->local_password));
+ if (strlen (password) == 0) {
+ gtk_entry_set_visibility (GTK_ENTRY (self->local_password), FALSE);
+ }
+
self->local_password_timeout_id = g_timeout_add (PASSWORD_CHECK_TIMEOUT, (GSourceFunc)
local_password_timeout, self);
}
@@ -552,6 +577,7 @@ local_init (UmAccountDialog *self,
g_signal_connect_after (widget, "focus-out-event", G_CALLBACK (on_password_focus_out), self);
g_signal_connect_swapped (widget, "activate", G_CALLBACK (dialog_validate), self);
self->local_password = widget;
+ g_signal_connect (widget, "icon-press", G_CALLBACK (on_generate), self);
widget = (GtkWidget *) gtk_builder_get_object (builder, "local-verify");
gtk_widget_set_sensitive (widget, FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]