From 7a5f8acd573a35b4de2912a25b3841bdaf5fccbd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sami=20M=C3=A4ki?= Date: Wed, 28 Jan 2009 14:24:49 +0200 Subject: [PATCH] LoginDlg fixing. --- irreco/src/core/irreco_login_dlg.c | 39 ++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/irreco/src/core/irreco_login_dlg.c b/irreco/src/core/irreco_login_dlg.c index 5b3bf321..1bcd0f0e 100644 --- a/irreco/src/core/irreco_login_dlg.c +++ b/irreco/src/core/irreco_login_dlg.c @@ -197,15 +197,19 @@ const gchar* irreco_login_dlg_get_stored_user() val = gconf_client_get_without_default(gcClient, GC_ROOT "prev_user", NULL); - if (val == NULL) { - IRRECO_PRINTF("prev_user not found\n"); - IRRECO_RETURN_STR(""); - } + if (val == NULL) { + IRRECO_PRINTF("prev_user not found\n"); + g_object_unref(gcClient); + gcClient = NULL; + IRRECO_RETURN_STR(""); + } if (val->type == GCONF_VALUE_STRING) { previous_user = gconf_value_get_string(val); } else { IRRECO_PRINTF("prev_user is not a string\n"); + g_object_unref(gcClient); + gcClient = NULL; IRRECO_RETURN_STR(""); } @@ -256,6 +260,8 @@ const gchar* irreco_login_dlg_get_stored_password() "prev_password", NULL); if (val == NULL) { IRRECO_PRINTF("prev_password not found\n"); + g_object_unref(gcClient); + gcClient = NULL; IRRECO_RETURN_STR(""); } @@ -263,6 +269,8 @@ const gchar* irreco_login_dlg_get_stored_password() previous_password = gconf_value_get_string(val); } else { IRRECO_PRINTF("prev_password is not a string\n"); + g_object_unref(gcClient); + gcClient = NULL; IRRECO_RETURN_STR(""); } @@ -313,6 +321,8 @@ const gchar* irreco_login_dlg_get_stored_toggle_boolean() "prev_boolean", NULL); if (val == NULL) { IRRECO_PRINTF("prev_boolean not found\n"); + g_object_unref(gcClient); + gcClient = NULL; IRRECO_RETURN_STR(""); } @@ -320,6 +330,8 @@ const gchar* irreco_login_dlg_get_stored_toggle_boolean() previous_boolean = gconf_value_get_string(val); } else { IRRECO_PRINTF("prev_boolean is not a string\n"); + g_object_unref(gcClient); + gcClient = NULL; IRRECO_RETURN_STR(""); } @@ -519,7 +531,7 @@ gboolean irreco_show_login_dlg(IrrecoData *irreco_data, GtkWindow *parent, is_toggled = irreco_login_dlg_get_stored_toggle_boolean(); self->is_pw_entry_messed_with = FALSE; - if(strcmp(is_toggled, "TRUE") == 0) { + if(g_str_equal(is_toggled, "TRUE")) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( self->check_password), TRUE); gtk_entry_set_text(GTK_ENTRY(self->entry_password), "******"); @@ -540,6 +552,14 @@ gboolean irreco_show_login_dlg(IrrecoData *irreco_data, GtkWindow *parent, self)); break; case GTK_RESPONSE_CANCEL: + is_toggled = irreco_login_dlg_get_stored_toggle_boolean(); + + if(g_str_equal(is_toggled, "FALSE")) { + gtk_entry_set_text(GTK_ENTRY + (self->entry_password), ""); + irreco_login_dlg_store_password(""); + } + loop = FALSE; rvalue = FALSE; break; @@ -549,6 +569,13 @@ gboolean irreco_show_login_dlg(IrrecoData *irreco_data, GtkWindow *parent, /* Get username and pw-hash */ *userptr = g_strdup(self->userptr); *passwdptr = g_strdup(self->passwdptr); + is_toggled = irreco_login_dlg_get_stored_toggle_boolean(); + + if(g_str_equal(is_toggled, "FALSE")) { + gtk_entry_set_text(GTK_ENTRY + (self->entry_password), ""); + irreco_login_dlg_store_password(""); + } irreco_info_dlg(GTK_WINDOW(self), "Login successful."); @@ -564,7 +591,7 @@ gboolean irreco_show_login_dlg(IrrecoData *irreco_data, GtkWindow *parent, break; } } while(loop); - + gtk_widget_destroy(GTK_WIDGET(self)); IRRECO_RETURN_BOOL(rvalue); } -- 2.11.4.GIT