diff options
author | Peter Williams <peterw@ximian.com> | 2002-08-24 02:08:35 +0800 |
---|---|---|
committer | Peter Williams <peterw@src.gnome.org> | 2002-08-24 02:08:35 +0800 |
commit | 3fa45e2cfcf2a61c9c80a0f2e9ebf23dc3cc20cd (patch) | |
tree | 774110efb24d6d77c820a6090d5994217002268b /mail/mail-config-druid.c | |
parent | 536e8060e9ff1656462c4c2f518279465ac43454 (diff) | |
download | gsoc2013-evolution-3fa45e2cfcf2a61c9c80a0f2e9ebf23dc3cc20cd.tar.gz gsoc2013-evolution-3fa45e2cfcf2a61c9c80a0f2e9ebf23dc3cc20cd.tar.zst gsoc2013-evolution-3fa45e2cfcf2a61c9c80a0f2e9ebf23dc3cc20cd.zip |
Address most of bug #4940. Fails on the last page of the add account
2002-08-23 Peter Williams <peterw@ximian.com>
Address most of bug #4940. Fails on the last page of the add account
dialog as called from the prefs dialog due to EvolutionWizard being
weird.
* mail-config-druid.c (goto_next_page): New function, little
wrapper around wizard_next_cb. Also potential place to work around
EvolutionWizard weirdness in the future.
(identity_activate_cb): New function, calls goto_next_page if
identity page is complete.
(source_activate_cb): Analogous.
(transport_activate_cb): Analogous.
(management_activate_cb): Analogous.
(get_fn): Hook up the activate signals of the various GtkEntries
to the correct callbacks above.
(management_check): Return the result of the check so that
management_activate_cb can use it.
svn path=/trunk/; revision=17851
Diffstat (limited to 'mail/mail-config-druid.c')
-rw-r--r-- | mail/mail-config-druid.c | 73 |
1 files changed, 71 insertions, 2 deletions
diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c index 39bf2f4f14..6266fa1e0b 100644 --- a/mail/mail-config-druid.c +++ b/mail/mail-config-druid.c @@ -391,7 +391,7 @@ transport_prepare (EvolutionWizard *wizard, gpointer data) } /* Management page */ -static void +static gboolean management_check (MailConfigWizard *wizard) { gboolean next_sensitive; @@ -406,6 +406,7 @@ management_check (MailConfigWizard *wizard) evolution_wizard_set_buttons_sensitive (wizard->wizard, TRUE, next_sensitive, TRUE, NULL); + return next_sensitive; } static void @@ -712,6 +713,50 @@ mail_config_druid_new (GNOME_Evolution_Shell shell) return new; } +static void wizard_next_cb (EvolutionWizard *wizard, int page_num, MailConfigWizard *gui); + +static void +goto_next_page (MailConfigWizard *gui) +{ + wizard_next_cb (gui->wizard, gui->page, gui); +} + +static void +identity_activate_cb (GtkEntry *ent, gpointer user_data) +{ + MailConfigWizard *gui = (MailConfigWizard *) user_data; + + if (mail_account_gui_identity_complete (gui->gui, NULL)) + goto_next_page (gui); +} + +static void +source_activate_cb (GtkEntry *ent, gpointer user_data) +{ + MailConfigWizard *gui = (MailConfigWizard *) user_data; + + if (mail_account_gui_source_complete (gui->gui, NULL)) + goto_next_page (gui); +} + +static void +transport_activate_cb (GtkEntry *ent, gpointer user_data) +{ + MailConfigWizard *gui = (MailConfigWizard *) user_data; + + if (mail_account_gui_transport_complete (gui->gui, NULL)) + goto_next_page (gui); +} + +static void +management_activate_cb (GtkEntry *ent, gpointer user_data) +{ + MailConfigWizard *gui = (MailConfigWizard *) user_data; + + if (management_check (gui)) + goto_next_page (gui); +} + static BonoboControl * get_fn (EvolutionWizard *wizard, int page_num, @@ -748,6 +793,30 @@ get_fn (EvolutionWizard *wizard, "changed", transport_changed, gui); gtk_signal_connect (GTK_OBJECT (gui->gui->transport.username), "changed", transport_changed, gui); + + gtk_signal_connect (GTK_OBJECT (gui->gui->account_name), + "activate", management_activate_cb, gui); + + gtk_signal_connect (GTK_OBJECT (gui->gui->full_name), + "activate", identity_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->email_address), + "activate", identity_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->reply_to), + "activate", identity_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->organization), + "activate", identity_activate_cb, gui); + + gtk_signal_connect (GTK_OBJECT (gui->gui->source.hostname), + "activate", source_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->source.username), + "activate", source_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->source.path), + "activate", source_activate_cb, gui); + + gtk_signal_connect (GTK_OBJECT (gui->gui->transport.hostname), + "activate", transport_activate_cb, gui); + gtk_signal_connect (GTK_OBJECT (gui->gui->transport.username), + "activate", transport_activate_cb, gui); first_time = TRUE; } @@ -792,7 +861,7 @@ get_fn (EvolutionWizard *wizard, widget = glade_xml_get_widget (gui->gui->xml, "management_frame"); gtk_widget_reparent (widget, vbox); break; - + default: return NULL; } |