aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-config-druid.c
diff options
context:
space:
mode:
author0 <NotZed@Ximian.com>2001-10-30 19:10:48 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-10-30 19:10:48 +0800
commitf53a0de05a720133be8dc58e5f61fa6d0fc4d9ba (patch)
tree9da92b171b49e97c3986ac3ad918f22a8e9283ff /mail/mail-config-druid.c
parentdaaeb84173905de459b2048c84f46e4cf7719585 (diff)
downloadgsoc2013-evolution-f53a0de05a720133be8dc58e5f61fa6d0fc4d9ba.tar.gz
gsoc2013-evolution-f53a0de05a720133be8dc58e5f61fa6d0fc4d9ba.tar.zst
gsoc2013-evolution-f53a0de05a720133be8dc58e5f61fa6d0fc4d9ba.zip
Comment out the Folder: and you've got mail prints.
2001-10-30 <NotZed@Ximian.com> * folder-info.c: Comment out the Folder: and you've got mail prints. * mail-config-druid.c (wizard_next_cb): If we have a next function, honour if it tells us its going to set the page, and dont set it, otherwise, set it to the next page, unless we're at the end of our pages, and let the wizard do it itself. (wizard_back_cb): Same for going back. Rest of fix for #12127, see e-shell-startup-wizard for the rest. (next_func): If we're not on the last page, tell the druid we're gonna handle the next button, so we can sync properly with it, needed for above changes. (back_func): Similarly for going back past page 0. (wizard_listener_event): We want to set the page to the actual one asked for not, pagenum-1. svn path=/trunk/; revision=14449
Diffstat (limited to 'mail/mail-config-druid.c')
-rw-r--r--mail/mail-config-druid.c53
1 files changed, 34 insertions, 19 deletions
diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c
index 7be193a90a..08e77db626 100644
--- a/mail/mail-config-druid.c
+++ b/mail/mail-config-druid.c
@@ -479,6 +479,10 @@ next_func (GnomeDruidPage *page,
pagenum = page_to_num (page);
GNOME_Evolution_Wizard_notifyAction (wiz, pagenum, GNOME_Evolution_Wizard_NEXT, &ev);
CORBA_exception_free (&ev);
+
+ if (pagenum < 5-1)
+ return TRUE;
+
return FALSE;
}
@@ -515,6 +519,10 @@ back_func (GnomeDruidPage *page,
pagenum = page_to_num (page);
GNOME_Evolution_Wizard_notifyAction (wiz, pagenum, GNOME_Evolution_Wizard_BACK, &ev);
CORBA_exception_free (&ev);
+
+ if (pagenum > 0)
+ return TRUE;
+
return FALSE;
}
@@ -560,7 +568,7 @@ wizard_listener_event (BonoboListener *listener,
} else if (strcmp (event_name, EVOLUTION_WIZARD_SET_PAGE) == 0) {
pagenum = (int) *((CORBA_short *) event_data->_value);
- page = g_list_nth_data (page_list, pagenum - 1);
+ page = g_list_nth_data (page_list, pagenum);
gnome_druid_set_page (GNOME_DRUID (druid->druid), page);
}
}
@@ -768,36 +776,38 @@ get_fn (EvolutionWizard *wizard,
return control;
}
+typedef gboolean (*NextFunc)(EvolutionWizard *wizard, gpointer data);
+
static struct {
- GtkSignalFunc next_func;
+ NextFunc next_func;
GtkSignalFunc prepare_func;
- GtkSignalFunc back_func;
+ NextFunc back_func;
GtkSignalFunc finish_func;
GtkSignalFunc help_func;
} wizard_pages[] = {
- { GTK_SIGNAL_FUNC (identity_next),
+ { identity_next,
GTK_SIGNAL_FUNC (identity_prepare),
- GTK_SIGNAL_FUNC (NULL),
+ NULL,
GTK_SIGNAL_FUNC (NULL),
GTK_SIGNAL_FUNC (NULL) },
- { GTK_SIGNAL_FUNC (source_next),
+ { source_next,
GTK_SIGNAL_FUNC (source_prepare),
- GTK_SIGNAL_FUNC (NULL),
+ NULL,
GTK_SIGNAL_FUNC (NULL),
GTK_SIGNAL_FUNC (NULL) },
- { GTK_SIGNAL_FUNC (NULL),
+ { NULL,
GTK_SIGNAL_FUNC (extra_prepare),
- GTK_SIGNAL_FUNC (NULL),
+ NULL,
GTK_SIGNAL_FUNC (NULL),
GTK_SIGNAL_FUNC (NULL) },
- { GTK_SIGNAL_FUNC (transport_next),
+ { transport_next,
GTK_SIGNAL_FUNC (transport_prepare),
- GTK_SIGNAL_FUNC (transport_back),
+ transport_back,
GTK_SIGNAL_FUNC (NULL),
GTK_SIGNAL_FUNC (NULL) },
- { GTK_SIGNAL_FUNC (NULL),
+ { NULL,
GTK_SIGNAL_FUNC (management_prepare),
- GTK_SIGNAL_FUNC (NULL),
+ NULL,
GTK_SIGNAL_FUNC (NULL),
GTK_SIGNAL_FUNC (NULL) }
};
@@ -807,9 +817,12 @@ wizard_next_cb (EvolutionWizard *wizard,
int page_num,
MailConfigWizard *gui)
{
- if (wizard_pages[page_num].next_func != NULL) {
- wizard_pages[page_num].next_func (wizard, gui);
- }
+ if (wizard_pages[page_num].next_func == NULL
+ || !(wizard_pages[page_num].next_func (wizard, gui))) {
+ if (page_num < 5-1) {
+ evolution_wizard_set_page(wizard, page_num+1, NULL);
+ }
+ }
}
static void
@@ -827,8 +840,10 @@ wizard_back_cb (EvolutionWizard *wizard,
int page_num,
MailConfigWizard *gui)
{
- if (wizard_pages[page_num].back_func != NULL) {
- wizard_pages[page_num].back_func (wizard, gui);
+ if (wizard_pages[page_num].back_func == NULL
+ || !(wizard_pages[page_num].back_func (wizard, gui))) {
+ if (page_num > 0)
+ evolution_wizard_set_page(wizard, page_num-1, NULL);
}
}
@@ -838,7 +853,7 @@ wizard_finish_cb (EvolutionWizard *wizard,
MailConfigWizard *w)
{
MailAccountGui *gui = w->gui;
-
+
/* Save the settings for that account */
if (mail_account_gui_save (gui) == FALSE)
/* problem. Um, how to keep the druid alive? */