Mercurial > pidgin
comparison src/gtkaccount.c @ 9304:96c481da57ea
[gaim-migrate @ 10112]
Protocol-specific settings for accounts were being removed whenever the account was modified. Now they're only removed when the protocol type changes, as it should be.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Fri, 18 Jun 2004 04:33:28 +0000 |
parents | 4ffbbe330ee5 |
children | b3bda982996b |
comparison
equal
deleted
inserted
replaced
9303:fe931c791fc0 | 9304:96c481da57ea |
---|---|
199 | 199 |
200 static void | 200 static void |
201 set_account_protocol_cb(GtkWidget *item, const char *id, | 201 set_account_protocol_cb(GtkWidget *item, const char *id, |
202 AccountPrefsDialog *dialog) | 202 AccountPrefsDialog *dialog) |
203 { | 203 { |
204 if ((dialog->plugin = gaim_find_prpl(id)) != NULL) { | 204 GaimPlugin *new_plugin; |
205 | |
206 new_plugin = gaim_find_prpl(id); | |
207 | |
208 if (new_plugin == dialog->plugin) | |
209 return; | |
210 | |
211 dialog->plugin = new_plugin; | |
212 | |
213 if (dialog->plugin != NULL) | |
214 { | |
205 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin); | 215 dialog->prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(dialog->plugin); |
206 | 216 |
207 if (dialog->protocol_id != NULL) | 217 if (dialog->protocol_id != NULL) |
208 g_free(dialog->protocol_id); | 218 g_free(dialog->protocol_id); |
209 | 219 |
210 dialog->protocol_id = g_strdup(dialog->plugin->info->id); | 220 dialog->protocol_id = g_strdup(dialog->plugin->info->id); |
211 } | 221 } |
222 | |
223 if (dialog->account != NULL) | |
224 gaim_account_clear_settings(dialog->account); | |
212 | 225 |
213 add_login_options(dialog, dialog->top_vbox); | 226 add_login_options(dialog, dialog->top_vbox); |
214 add_user_options(dialog, dialog->top_vbox); | 227 add_user_options(dialog, dialog->top_vbox); |
215 add_protocol_options(dialog, dialog->bottom_vbox); | 228 add_protocol_options(dialog, dialog->bottom_vbox); |
216 | 229 |
1075 { | 1088 { |
1076 /* Protocol */ | 1089 /* Protocol */ |
1077 gaim_account_set_protocol_id(dialog->account, dialog->protocol_id); | 1090 gaim_account_set_protocol_id(dialog->account, dialog->protocol_id); |
1078 } | 1091 } |
1079 | 1092 |
1080 /* Clear the existing settings. */ | |
1081 gaim_account_clear_settings(dialog->account); | |
1082 | |
1083 /* Alias */ | 1093 /* Alias */ |
1084 value = gtk_entry_get_text(GTK_ENTRY(dialog->alias_entry)); | 1094 value = gtk_entry_get_text(GTK_ENTRY(dialog->alias_entry)); |
1085 | 1095 |
1086 if (*value != '\0') | 1096 if (*value != '\0') |
1087 gaim_account_set_alias(dialog->account, value); | 1097 gaim_account_set_alias(dialog->account, value); |