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);