From e84ebd2e0a9ff78773bdd2cecfe0f2b6ebc2c252 Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Wed, 22 Aug 2001 15:50:42 +0000 Subject: Prevent the user from creating two accounts with the same name. 2001-08-22 Peter Williams Prevent the user from creating two accounts with the same name. * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount): Abort if the account has the same name as another account. * mail-account-gui.c (mail_account_gui_save): Don't let the user save if the account has the same name as another account. * mail-config-druid.c (management_check): Disable the next button if the account name is the same as a preexisting account. (construct): The only part of 'pages' that was being used was the name. 'wizard_pages' now has the callbacks, while 'pages' is just an array of char *'s. (wizard_finish_cb): Save the account first because that's the right way, and try to honor mail_account_gui_save's return value. * mail-config.glade: Add a label noting that you're not allowed to create two accounts with the same name. svn path=/trunk/; revision=12384 --- mail/mail-account-gui.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'mail/mail-account-gui.c') diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c index 0769ad1ab8..26c6fbf5b4 100644 --- a/mail/mail-account-gui.c +++ b/mail/mail-account-gui.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "shell/evolution-shell-client.h" #include "mail-account-gui.h" @@ -1562,6 +1563,8 @@ gboolean mail_account_gui_save (MailAccountGui *gui) { MailConfigAccount *account = gui->account; + const MailConfigAccount *old_account; + gchar *new_name; gboolean old_enabled; if (!mail_account_gui_identity_complete (gui, NULL) || @@ -1570,8 +1573,22 @@ mail_account_gui_save (MailAccountGui *gui) !mail_account_gui_management_complete (gui, NULL)) return FALSE; + /* this would happen at an inconvenient time in the druid, + * but the druid performs its own check so this can't happen + * here. */ + + new_name = e_utf8_gtk_entry_get_text (gui->account_name); + old_account = mail_config_get_account_by_name (new_name); + + if (old_account != account) { + e_notice (NULL, GNOME_MESSAGE_BOX_ERROR, + _("You may not create two accounts with the same name.")); + return FALSE; + } + g_free (account->name); - account->name = e_utf8_gtk_entry_get_text (gui->account_name); + account->name = new_name; + if (gtk_toggle_button_get_active (gui->default_account)) mail_config_set_default_account (account); -- cgit