Re: [evolution-patches] patch for 48998



Thank you.

This time, I have insert an entry in ChangLog.
And modified some places in file mail-account-editor.c mail-account-gui.c and mail-account-gui.h.

The whole thing looks better now, but I have to alter some exist function declaration and defination to use this simplest way I can found.

Please see and tell me if there is anything wrong.

Best Regards
Charles Zhang

Not Zed wrote:
first, this should include a ChangeLog entry.

second, there are a few places that already hook onto some form of
changed event, you should just call a function from there rather than
hooking a signal onto every possible widget.

last, i'm not sure if this breaks abstraction somewhat - you're poking
about the internals of the dialog->editor directly (i.e. by changing the
button sensitivity), perhaps you should have a 'changed' method on it
instead.

On Mon, 2003-10-13 at 00:44, Charles Zhang wrote:

  
Dear all
       I posted a patch for bug 48998 here.
       It fixes a bug of "apply button always leave active".
       Because this happens in a dialog, and all the button and 
optionmenu are all in this dialog, so I connect all their "changed" 
signal to a function.
       Please review.
       Thank you all.

Best Regards
Charles Zhang


______________________________________________________________________

Index: mail/mail-account-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.c,v
retrieving revision 1.57
diff -u -p -r1.57 mail-account-editor.c
--- mail/mail-account-editor.c	25 Mar 2003 15:49:19 -0000	1.57
+++ mail/mail-account-editor.c	12 Oct 2003 14:33:11 -0000
@@ -109,6 +109,9 @@ apply_changes (MailAccountEditor *editor
 	/* save any changes we may have */
 	mail_config_write ();
 	
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+					   GTK_RESPONSE_APPLY, FALSE);
+	
 	/* FIXME: #1549: if the account was a remote store, delete it from the folder-tree and re-add it */
 	/* FIXME: preferably, we'd only do this if there were changes... oh well */
 	
@@ -159,6 +162,9 @@ construct (MailAccountEditor *editor, EA
 	mail_account_gui_build_extra_conf (editor->gui, source->url);
 	
 	gtk_widget_grab_focus (GTK_WIDGET (editor->gui->account_name));
+
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+					   GTK_RESPONSE_APPLY, FALSE);
 }
 
 MailAccountEditor *
Index: mail/mail-account-gui.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-gui.c,v
retrieving revision 1.133.4.3
diff -u -p -r1.133.4.3 mail-account-gui.c
--- mail/mail-account-gui.c	29 Sep 2003 15:43:30 -0000	1.133.4.3
+++ mail/mail-account-gui.c	12 Oct 2003 14:33:19 -0000
@@ -730,6 +730,15 @@ setup_toggle (GtkWidget *widget, const c
 	toggle_sensitivity (toggle, widget);
 }
 
+static void
+mail_config_changed (GtkWidget *widget, gpointer user_data)
+{
+	MailAccountsTab *dialog = (MailAccountsTab *) user_data;
+	
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog->editor),
+					   GTK_RESPONSE_APPLY, TRUE);
+}
+
 void
 mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
 {
@@ -742,6 +751,7 @@ mail_account_gui_build_extra_conf (MailA
 	GList *children, *child;
 	char *name;
 	int i, rows;
+	MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
 	
 	if (url_string)
 		url = "" (url_string, NULL);
@@ -874,6 +884,9 @@ mail_account_gui_build_extra_conf (MailA
 					  GTK_EXPAND | GTK_FILL, 0, 0, 0);
 			rows++;
 			g_hash_table_insert (gui->extra_config, entries[i].name, checkbox);
+
+			g_signal_connect (checkbox, "toggled", G_CALLBACK (mail_config_changed), dialog);
+			
 			if (entries[i].depname)
 				setup_toggle (checkbox, entries[i].depname, gui);
 			break;
@@ -923,7 +936,9 @@ mail_account_gui_build_extra_conf (MailA
 			}
 
 			g_hash_table_insert (gui->extra_config, entries[i].name, entry);
-						
+
+			g_signal_connect (entry, "changed", G_CALLBACK (mail_config_changed), dialog);
+
 			break;
 		}
 		
@@ -1395,6 +1410,8 @@ prepare_signatures (MailAccountGui *gui)
 	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu)),
 			  "selection-done", G_CALLBACK(sig_changed), gui);
 	
+	g_signal_connect (gui->sig_option_menu, "changed", G_CALLBACK (mail_config_changed), gui->dialog);
+
 	glade_xml_signal_connect_data (gui->xml, "sigAddNewClicked",
 				       G_CALLBACK (sig_add_new_signature), gui);
 	
@@ -1430,6 +1447,9 @@ mail_account_gui_new (EAccount *account,
 	    || (account == mail_config_get_default_account ()))
 		gtk_toggle_button_set_active (gui->default_account, TRUE);
 	
+	g_signal_connect (gui->account_name, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->default_account, "toggled", G_CALLBACK (mail_config_changed), dialog);
+
 	/* Identity */
 	gui->full_name = GTK_ENTRY (glade_xml_get_widget (gui->xml, "identity_full_name"));
 	gui->email_address = GTK_ENTRY (glade_xml_get_widget (gui->xml, "identity_address"));
@@ -1437,7 +1457,7 @@ mail_account_gui_new (EAccount *account,
 	gui->organization = GTK_ENTRY (glade_xml_get_widget (gui->xml, "identity_organization"));
 	
 	prepare_signatures (gui);
-	
+
 	if (account->id->name)
 		gtk_entry_set_text (gui->full_name, account->id->name);
 	if (account->id->address)
@@ -1449,6 +1469,11 @@ mail_account_gui_new (EAccount *account,
 	
 	setup_signatures (gui);
 	
+	g_signal_connect (gui->full_name, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->email_address, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->reply_to, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->organization, "changed", G_CALLBACK (mail_config_changed), dialog);
+	
 	/* Source */
 	gui->source.provider_type = CAMEL_PROVIDER_STORE;
 	gui->source.type = GTK_OPTION_MENU (glade_xml_get_widget (gui->xml, "source_type_omenu"));
@@ -1471,9 +1496,21 @@ mail_account_gui_new (EAccount *account,
 	gui->source.check_supported = GTK_BUTTON (glade_xml_get_widget (gui->xml, "source_check_supported"));
 	g_signal_connect (gui->source.check_supported, "clicked",
 			  G_CALLBACK (service_check_supported), &gui->source);
+
+	g_signal_connect (gui->source.type, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.hostname, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.username, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.path, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.use_ssl, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.authtype, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source.remember, "toggled", G_CALLBACK (mail_config_changed), dialog);
+
 	gui->source_auto_check = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui->xml, "extra_auto_check"));
 	gui->source_auto_check_min = GTK_SPIN_BUTTON (glade_xml_get_widget (gui->xml, "extra_auto_check_min"));
 	
+	g_signal_connect (gui->source_auto_check, "toggled", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->source_auto_check_min, "value-changed", G_CALLBACK (mail_config_changed), dialog);	
+
 	/* Transport */
 	gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
 	gui->transport.type = GTK_OPTION_MENU (glade_xml_get_widget (gui->xml, "transport_type_omenu"));
@@ -1497,6 +1534,14 @@ mail_account_gui_new (EAccount *account,
 	g_signal_connect (gui->transport.check_supported, "clicked",
 			  G_CALLBACK (service_check_supported), &gui->transport);
 	
+	g_signal_connect (gui->transport.type, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport.hostname, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport.username, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport_needs_auth, "toggled", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport.use_ssl, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport.authtype, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->transport.remember, "toggled", G_CALLBACK (mail_config_changed), dialog);
+	
 	/* Drafts folder */
 	gui->drafts_folder_button = GTK_BUTTON (glade_xml_get_widget (gui->xml, "drafts_button"));
 	g_signal_connect (gui->drafts_folder_button, "selected",
@@ -1510,6 +1555,8 @@ mail_account_gui_new (EAccount *account,
 						    _("Select Folder"),
 						    gui->drafts_folder_uri,
 						    allowed_types);
+
+	g_signal_connect (gui->drafts_folder_button, "clicked", G_CALLBACK (mail_config_changed), dialog);
 	
 	/* Sent folder */
 	gui->sent_folder_button = GTK_BUTTON (glade_xml_get_widget (gui->xml, "sent_button"));
@@ -1525,10 +1572,14 @@ mail_account_gui_new (EAccount *account,
 						    gui->sent_folder_uri,
 						    allowed_types);
 	
+	g_signal_connect (gui->sent_folder_button, "clicked", G_CALLBACK (mail_config_changed), dialog);
+	
 	/* Special Folders "Reset Defaults" button */
 	button = glade_xml_get_widget (gui->xml, "default_folders_button");
 	g_signal_connect (button, "clicked", G_CALLBACK (default_folders_clicked), gui);
 	
+	g_signal_connect (button, "clicked", G_CALLBACK (mail_config_changed), dialog);
+	
 	/* Always Cc */
 	gui->always_cc = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui->xml, "always_cc"));
 	gtk_toggle_button_set_active (gui->always_cc, account->always_cc);
@@ -1536,6 +1587,9 @@ mail_account_gui_new (EAccount *account,
 	if (account->cc_addrs)
 		gtk_entry_set_text (gui->cc_addrs, account->cc_addrs);
 	
+	g_signal_connect (gui->always_cc, "toggled", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->cc_addrs, "changed", G_CALLBACK (mail_config_changed), dialog);
+	
 	/* Always Bcc */
 	gui->always_bcc = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui->xml, "always_bcc"));
 	gtk_toggle_button_set_active (gui->always_bcc, account->always_bcc);
@@ -1543,6 +1597,9 @@ mail_account_gui_new (EAccount *account,
 	if (account->bcc_addrs)
 		gtk_entry_set_text (gui->bcc_addrs, account->bcc_addrs);
 	
+	g_signal_connect (gui->always_bcc, "toggled", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->bcc_addrs, "changed", G_CALLBACK (mail_config_changed), dialog);
+
 	/* Security */
 	gui->pgp_key = GTK_ENTRY (glade_xml_get_widget (gui->xml, "pgp_key"));
 	if (account->pgp_key)
@@ -1555,7 +1612,13 @@ mail_account_gui_new (EAccount *account,
 	gtk_toggle_button_set_active (gui->pgp_no_imip_sign, account->pgp_no_imip_sign);
 	gui->pgp_always_trust = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui->xml, "pgp_always_trust"));
 	gtk_toggle_button_set_active (gui->pgp_always_trust, account->pgp_always_trust);
-	
+
+	g_signal_connect (gui->pgp_key, "changed", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->pgp_encrypt_to_self, "clicked", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->pgp_always_sign, "clicked", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->pgp_no_imip_sign, "clicked", G_CALLBACK (mail_config_changed), dialog);
+	g_signal_connect (gui->pgp_always_trust, "clicked", G_CALLBACK (mail_config_changed), dialog);
+		
 #if defined (HAVE_NSS) && defined (SMIME_SUPPORTED)
 	gui->smime_key = GTK_ENTRY (glade_xml_get_widget (gui->xml, "smime_key"));
 	if (account->smime_key)
    

  
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.2761.2.32
diff -u -p -r1.2761.2.32 ChangeLog
--- mail/ChangeLog	8 Oct 2003 16:06:08 -0000	1.2761.2.32
+++ mail/ChangeLog	13 Oct 2003 14:56:06 -0000
@@ 0,0 +,16 @@
+2003-10-13  Charles Zhang  <charles zhang sun com>
+
+	* mail-account-gui.h: alter the declaration of function mail_
+	account_gui_build_extra_conf to add necessary argument.
+	
+	* mail-account-gui.c (mail_config_change): enable apply button.
+	(mail_account_gui_connect_change_signal): connect change signal.
+	(mail_account_gui_setup): call function mail_account_gui_connect_
+	change_signal.
+	(mail_account_gui_build_extra_conf): connect "changed" signal.
+	(source_type_changed): transfer neccesary argument to function
+	(default_folders_clicked): call function mail_config_change
+	
+	* mail-account-editor.c (apply_changes): disable apply button
+	(construct): disable apply button
+	
 2003-10-08  Frederic Crozat  <fcrozat mandrakesoft com>
 
 	* mail-display.c: (pixbuf_gen_idle):
Index: mail/mail-account-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.c,v
retrieving revision 1.57
diff -u -p -r1.57 mail-account-editor.c
--- mail/mail-account-editor.c	25 Mar 2003 15:49:19 -0000	1.57
+++ mail/mail-account-editor.c	13 Oct 2003 14:56:07 -0000
@@ -109,6 +109,9 @@ apply_changes (MailAccountEditor *editor
 	/* save any changes we may have */
 	mail_config_write ();
 	
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+					   GTK_RESPONSE_APPLY, FALSE);
+	
 	/* FIXME: #1549: if the account was a remote store, delete it from the folder-tree and re-add it */
 	/* FIXME: preferably, we'd only do this if there were changes... oh well */
 	
@@ -156,9 +159,12 @@ construct (MailAccountEditor *editor, EA
 	
 	mail_account_gui_setup (editor->gui, GTK_WIDGET (editor));
 	
-	mail_account_gui_build_extra_conf (editor->gui, source->url);
+	mail_account_gui_build_extra_conf (editor->gui, GTK_WIDGET (editor), source->url);
 	
 	gtk_widget_grab_focus (GTK_WIDGET (editor->gui->account_name));
+
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+					   GTK_RESPONSE_APPLY, FALSE);
 }
 
 MailAccountEditor *
Index: mail/mail-account-gui.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-gui.c,v
retrieving revision 1.133.4.3
diff -u -p -r1.133.4.3 mail-account-gui.c
--- mail/mail-account-gui.c	29 Sep 2003 15:43:30 -0000	1.133.4.3
+++ mail/mail-account-gui.c	13 Oct 2003 14:56:17 -0000
@@ -475,7 +475,9 @@ transport_provider_set_available (MailAc
 static void
 source_type_changed (GtkWidget *widget, gpointer user_data)
 {
-	MailAccountGui *gui = user_data;
+	MailAccountEditor *editor = (MailAccountEditor *) user_data;
+	GtkWidget *top = GTK_WIDGET (editor);
+	MailAccountGui *gui = (MailAccountGui *) editor->gui;
 	GtkWidget *file_entry, *label, *frame, *dwidget = NULL;
 	CamelProvider *provider;
 	
@@ -570,7 +572,7 @@ source_type_changed (GtkWidget *widget, 
 	if (dwidget)
 		gtk_widget_grab_focus (dwidget);
 	
-	mail_account_gui_build_extra_conf (gui, gui && gui->account && gui->account->source ? gui->account->source->url : NULL);
+	mail_account_gui_build_extra_conf (gui, top, gui && gui->account && gui->account->source ? gui->account->source->url : NULL);
 	
 	if (provider && CAMEL_PROVIDER_IS_STORE_AND_TRANSPORT (provider))
 		transport_provider_set_available (gui, provider, TRUE);
@@ -730,8 +732,14 @@ setup_toggle (GtkWidget *widget, const c
 	toggle_sensitivity (toggle, widget);
 }
 
+static void
+mail_config_changed (GtkWidget *widget, gpointer user_data)
+{
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (user_data), GTK_RESPONSE_APPLY, TRUE);
+}
+
 void
-mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
+mail_account_gui_build_extra_conf (MailAccountGui *gui, GtkWidget *top, const char *url_string)
 {
 	CamelURL *url;
 	GtkWidget *mailcheck_frame, *mailcheck_hbox;
@@ -874,6 +882,9 @@ mail_account_gui_build_extra_conf (MailA
 					  GTK_EXPAND | GTK_FILL, 0, 0, 0);
 			rows++;
 			g_hash_table_insert (gui->extra_config, entries[i].name, checkbox);
+
+			g_signal_connect (checkbox, "toggled", G_CALLBACK (mail_config_changed), top);
+			
 			if (entries[i].depname)
 				setup_toggle (checkbox, entries[i].depname, gui);
 			break;
@@ -923,7 +934,9 @@ mail_account_gui_build_extra_conf (MailA
 			}
 
 			g_hash_table_insert (gui->extra_config, entries[i].name, entry);
-						
+
+			g_signal_connect (entry, "changed", G_CALLBACK (mail_config_changed), top);
+
 			break;
 		}
 		
@@ -1076,6 +1089,7 @@ static void
 default_folders_clicked (GtkButton *button, gpointer user_data)
 {
 	MailAccountGui *gui = user_data;
+	MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
 	
 	/* Drafts folder */
 	g_free (gui->drafts_folder_uri);
@@ -1088,6 +1102,8 @@ default_folders_clicked (GtkButton *butt
 	gui->sent_folder_uri = g_strdup (default_sent_folder_uri);
 	evolution_folder_selector_button_set_uri (EVOLUTION_FOLDER_SELECTOR_BUTTON (gui->sent_folder_button),
 						  gui->sent_folder_uri);
+
+	mail_config_changed (GTK_WIDGET (button), dialog->editor);
 }
 
 GtkWidget *mail_account_gui_folder_selector_button_new (char *widget_name, char *string1, char *string2, int int1, int int2);
@@ -1578,6 +1594,50 @@ mail_account_gui_new (EAccount *account,
 }
 
 void
+mail_account_gui_connect_change_signal (MailAccountGui *gui, GtkWidget *top)
+{
+	g_signal_connect (gui->account_name, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->default_account, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->full_name, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->email_address, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->reply_to, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->organization, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->sig_option_menu, "changed", G_CALLBACK (mail_config_changed), top);
+
+	g_signal_connect (gui->source.type, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.hostname, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.username, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.path, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.use_ssl, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.authtype, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source.remember, "toggled", G_CALLBACK (mail_config_changed), top);
+
+	g_signal_connect (gui->source_auto_check, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->source_auto_check_min, "value-changed", G_CALLBACK (mail_config_changed), top);
+
+	g_signal_connect (gui->transport.type, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport.hostname, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport.username, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport_needs_auth, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport.use_ssl, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport.authtype, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->transport.remember, "toggled", G_CALLBACK (mail_config_changed), top);
+
+	g_signal_connect (gui->drafts_folder_button, "clicked", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->sent_folder_button, "clicked", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->always_cc, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->cc_addrs, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->always_bcc, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->bcc_addrs, "changed", G_CALLBACK (mail_config_changed), top);
+
+	g_signal_connect (gui->pgp_key, "changed", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->pgp_encrypt_to_self, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->pgp_always_sign, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->pgp_no_imip_sign, "toggled", G_CALLBACK (mail_config_changed), top);
+	g_signal_connect (gui->pgp_always_trust, "toggled", G_CALLBACK (mail_config_changed), top);
+}
+
+void
 mail_account_gui_setup (MailAccountGui *gui, GtkWidget *top)
 {
 	GtkWidget *stores, *transports, *item;
@@ -1620,7 +1680,7 @@ mail_account_gui_setup (MailAccountGui *
 			g_object_set_data ((GObject *) gui->source.type, provider->protocol, item);
 			g_object_set_data ((GObject *) item, "provider", provider);
 			g_object_set_data ((GObject *) item, "number", GUINT_TO_POINTER (si));
-			g_signal_connect (item, "activate", G_CALLBACK (source_type_changed), gui);
+			g_signal_connect (item, "activate", G_CALLBACK (source_type_changed), top);
 			
 			gtk_menu_shell_append(GTK_MENU_SHELL(stores), item);
 			
@@ -1691,7 +1751,7 @@ mail_account_gui_setup (MailAccountGui *
 	/* add a "None" option to the stores menu */
 	item = gtk_menu_item_new_with_label (_("None"));
 	g_object_set_data ((GObject *) item, "provider", NULL);
-	g_signal_connect (item, "activate", G_CALLBACK (source_type_changed), gui);
+	g_signal_connect (item, "activate", G_CALLBACK (source_type_changed), top);
 	
 	gtk_menu_shell_append(GTK_MENU_SHELL(stores), item);
 	
@@ -1760,6 +1820,8 @@ mail_account_gui_setup (MailAccountGui *
 		gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
 		g_free (transport_proto);
 	}
+
+	mail_account_gui_connect_change_signal (gui, top);
 }
 
 static void
Index: mail/mail-account-gui.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-gui.h,v
retrieving revision 1.24
diff -u -p -r1.24 mail-account-gui.h
--- mail/mail-account-gui.h	25 Mar 2003 15:49:19 -0000	1.24
+++ mail/mail-account-gui.h	13 Oct 2003 14:56:17 -0000
@@ -124,7 +124,7 @@ gboolean mail_account_gui_source_complet
 gboolean mail_account_gui_transport_complete (MailAccountGui *gui, GtkWidget **incomplete);
 gboolean mail_account_gui_management_complete (MailAccountGui *gui, GtkWidget **incomplete);
 
-void mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url);
+void mail_account_gui_build_extra_conf (MailAccountGui *gui, GtkWidget *top, const char *url);
 
 void mail_account_gui_auto_detect_extra_conf (MailAccountGui *gui);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]