Re: [evolution-patches] patch for 48998
- From: Charles Zhang <Charles Zhang Sun Com>
- To: Not Zed <notzed ximian com>
- Cc: evolution-patches <evolution-patches lists ximian com>
- Subject: Re: [evolution-patches] patch for 48998
- Date: Mon, 03 Nov 2003 21:15:50 +0800
Hi Michael.
Sorry to interrupt you.
Could you seek this patch?
Charles Zhang wrote:
Thank you.
Please see if this one meet you.
This time I have removed the function mail_account_gui_signal_connect.
Not Zed wrote:
On Fri, 2003-10-24 at 22:22, Charles Zhang wrote:
Thank you, Michael
I think the function mail_account_gui_signal_connect is just ok.
If we move its content to the right place in mail_account_gui_setup,
then this mail_account_gui_setup is too long and puzzled.
I use this function to complete this signal connect action and so I
think it can be a separate module.
Well i don't. Don't do it that way.
Other parts have been changed following your advices.
Please see if this one is ok.
Apart from above, its looking good.
Best Regard
Charles Zhang
Not Zed wrote:
Thanks Charles, this looks a lot better.
One small style thing - in the mail code we'd prefer you used function
calls directly rather than the signal connection macro, and i'm not
sure
you really need mail_account_gui_signal_connect to be another
function,
since its only ever called from mail_account_gui_setup anyway.
Michael
On Wed, 2003-10-15 at 02:15, Charles Zhang wrote:
Thank you
Following your advices, this time I have created some functions
on different object to complete encapsulating.
And avoid unnecessary passing of toplevel widget.
But I have to use connect serveral signals on some widget,
because these handlers need different data, so different arguments.
Or should I alter the argement(i.e. pass a struct as argument)
of the very existing function? I think that can I be able to merge
the
existing handler and the change signal handler together on the same
widget?
Please spare some time to see if this patch meet us.
______________________________________________________________________
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 14 Oct 2003 16:19:28 -0000
@@ -0,0 +0,18 @@
+2003-10-13 Charles Zhang <charles zhang sun com>
+
+ * mail-account-gui.c (mail_account_gui_changed): change
signal + handler on gui object, callback func.
+ (mail_account_gui_signal_connect): connect widgets to change
signal.
+ (mail_account_gui_setup): call func
mail_account_gui_signal_connect.
+ (sig_changed): call change handler func.
+ (mail_account_gui_build_extra_conf): connect "changed" signal.
+ (default_folders_clicked): call change handler func.
+
+ * mail-account-editor.c (apply_changes): disable apply button.
+ (construct): disable apply button.
+ (mail_account_editor_changed): change signal handler on editor
+ object.
+
+ * mail_account_editor.h (mail_account_editor_changed):
defination
+ of func above.
+
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 14 Oct 2003 16:19:32 -0000
@@ -105,7 +105,10 @@ apply_changes (MailAccountEditor *editor
if (mail_account_gui_save (editor->gui) == FALSE)
return FALSE;
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+ /* save any changes we may have */
mail_config_write ();
@@ -151,7 +154,10 @@ construct (MailAccountEditor *editor, EA
GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
g_signal_connect (editor, "response", G_CALLBACK
(editor_response_cb), editor);
mail_account_gui_setup (editor->gui, GTK_WIDGET (editor));
@@ -172,3 +178,10 @@ mail_account_editor_new (EAccount *accou
return new;
}
+
+void
+mail_account_editor_changed (MailAccountEditor *editor)
+{
+ gtk_dialog_set_response_sensitive (GTK_WIDGET (editor),
+ GTK_RESPONSE_APPLY, TRUE);
+}
Index: mail/mail-account-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.h,v
retrieving revision 1.20
diff -u -p -r1.20 mail-account-editor.h
--- mail/mail-account-editor.h 17 Jan 2003 23:31:25 -0000 1.20
+++ mail/mail-account-editor.h 14 Oct 2003 16:19:32 -0000
@@ -59,6 +59,7 @@ typedef struct {
GtkType mail_account_editor_get_type (void);
MailAccountEditor *mail_account_editor_new (EAccount *account,
GtkWindow *parent, MailAccountsTab *dialog);
+void mail_account_editor_changed (MailAccountEditor *editor);
#ifdef __cplusplus
}
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 14 Oct 2003 16:19:37 -0000
@@ -730,6 +730,14 @@ setup_toggle (GtkWidget *widget, const c
toggle_sensitivity (toggle, widget);
}
+static void
+mail_account_gui_changed (GtkWidget *widget, MailAccountGui *gui)
+{
+ MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
+ MailAccountEditor *editor = (MailAccountEditor *)
dialog->editor;
+ mail_account_editor_changed (editor);
+}
+
void
mail_account_gui_build_extra_conf (MailAccountGui *gui, const char
*url_string)
{
@@ -876,6 +884,9 @@ mail_account_gui_build_extra_conf (MailA
g_hash_table_insert (gui->extra_config,
entries[i].name, checkbox);
if (entries[i].depname)
setup_toggle (checkbox, entries[i].depname, gui);
+
+ g_signal_connect (checkbox, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+
break;
}
@@ -924,6 +935,8 @@ 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_account_gui_changed), gui);
+
break;
}
@@ -1088,6 +1101,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_account_gui_changed (GTK_WIDGET (button), gui);
}
GtkWidget *mail_account_gui_folder_selector_button_new (char
*widget_name, char *string1, char *string2, int int1, int int2);
@@ -1281,6 +1296,8 @@ sig_changed (GtkWidget *w, MailAccountGu
gui->def_signature = (MailConfigSignature *)
g_object_get_data(G_OBJECT(active), "sig");
gui->auto_signature = index == 1 ? TRUE : FALSE;
+
+ mail_account_gui_changed (w, gui);
}
static void
@@ -1577,6 +1594,51 @@ mail_account_gui_new (EAccount *account,
return gui;
}
+static void
+mail_account_gui_signal_connect (MailAccountGui *gui)
+{
+#define CHANGE_CONNECT(w, s) g_signal_connect (w, s, G_CALLBACK
(mail_account_gui_changed), gui);
+
+ CHANGE_CONNECT (gui->account_name, "changed");
+ CHANGE_CONNECT (gui->default_account, "toggled");
+ CHANGE_CONNECT (gui->full_name, "changed");
+ CHANGE_CONNECT (gui->email_address, "changed");
+ CHANGE_CONNECT (gui->reply_to, "changed");
+ CHANGE_CONNECT (gui->organization, "changed");
+
+ CHANGE_CONNECT (gui->source.type, "changed");
+ CHANGE_CONNECT (gui->source.hostname, "changed");
+ CHANGE_CONNECT (gui->source.username, "changed");
+ CHANGE_CONNECT (gui->source.path, "changed");
+ CHANGE_CONNECT (gui->source.use_ssl, "changed");
+ CHANGE_CONNECT (gui->source.authtype, "changed");
+ CHANGE_CONNECT (gui->source.remember, "toggled");
+
+ CHANGE_CONNECT (gui->source_auto_check, "toggled");
+ CHANGE_CONNECT (gui->source_auto_check_min, "value-changed");
+
+ CHANGE_CONNECT (gui->transport.type, "changed");
+ CHANGE_CONNECT (gui->transport.hostname, "changed");
+ CHANGE_CONNECT (gui->transport.username, "changed");
+ CHANGE_CONNECT (gui->transport_needs_auth, "toggled");
+ CHANGE_CONNECT (gui->transport.use_ssl, "changed");
+ CHANGE_CONNECT (gui->transport.authtype, "changed");
+ CHANGE_CONNECT (gui->transport.remember, "toggled");
+
+ CHANGE_CONNECT (gui->drafts_folder_button, "clicked");
+ CHANGE_CONNECT (gui->sent_folder_button, "clicked");
+ CHANGE_CONNECT (gui->always_cc, "toggled");
+ CHANGE_CONNECT (gui->cc_addrs, "changed");
+ CHANGE_CONNECT (gui->always_bcc, "toggled");
+ CHANGE_CONNECT (gui->bcc_addrs, "changed");
+
+ CHANGE_CONNECT (gui->pgp_key, "changed");
+ CHANGE_CONNECT (gui->pgp_encrypt_to_self, "toggled");
+ CHANGE_CONNECT (gui->pgp_always_sign, "toggled");
+ CHANGE_CONNECT (gui->pgp_no_imip_sign, "toggled");
+ CHANGE_CONNECT (gui->pgp_always_trust, "toggled");
+}
+
void
mail_account_gui_setup (MailAccountGui *gui, GtkWidget *top)
{
@@ -1760,6 +1822,8 @@ mail_account_gui_setup (MailAccountGui *
gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
g_free (transport_proto);
}
+
+ mail_account_gui_signal_connect (gui);
}
static void
______________________________________________________________________
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 24 Oct 2003 12:40:37 -0000
@@ -0,0 +0,18 @@
+2003-10-13 Charles Zhang <charles zhang sun com>
+
+ * mail-account-gui.c (mail_account_gui_changed): change signal
+ handler on gui object, callback func.
+ (mail_account_gui_signal_connect): connect widgets to change
signal.
+ (mail_account_gui_setup): call func
mail_account_gui_signal_connect.
+ (sig_changed): call change handler func.
+ (mail_account_gui_build_extra_conf): connect "changed" signal.
+ (default_folders_clicked): call change handler func.
+
+ * mail-account-editor.c (apply_changes): disable apply button.
+ (construct): disable apply button.
+ (mail_account_editor_changed): change signal handler on editor
+ object.
+
+ * mail_account_editor.h (mail_account_editor_changed): defination
+ of func above.
+
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 24 Oct 2003 12:40:37 -0000
@@ -105,7 +105,10 @@ apply_changes (MailAccountEditor *editor
if (mail_account_gui_save (editor->gui) == FALSE)
return FALSE;
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+ /* save any changes we may have */
mail_config_write ();
@@ -151,7 +154,10 @@ construct (MailAccountEditor *editor, EA
GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
g_signal_connect (editor, "response", G_CALLBACK
(editor_response_cb), editor);
mail_account_gui_setup (editor->gui, GTK_WIDGET (editor));
@@ -172,3 +178,10 @@ mail_account_editor_new (EAccount *accou
return new;
}
+
+void
+mail_account_editor_changed (MailAccountEditor *editor)
+{
+ gtk_dialog_set_response_sensitive (GTK_WIDGET (editor),
+ GTK_RESPONSE_APPLY, TRUE);
+}
Index: mail/mail-account-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.h,v
retrieving revision 1.20
diff -u -p -r1.20 mail-account-editor.h
--- mail/mail-account-editor.h 17 Jan 2003 23:31:25 -0000 1.20
+++ mail/mail-account-editor.h 24 Oct 2003 12:40:37 -0000
@@ -59,6 +59,7 @@ typedef struct {
GtkType mail_account_editor_get_type (void);
MailAccountEditor *mail_account_editor_new (EAccount *account,
GtkWindow *parent, MailAccountsTab *dialog);
+void mail_account_editor_changed (MailAccountEditor *editor);
#ifdef __cplusplus
}
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 24 Oct 2003 12:40:47 -0000
@@ -730,6 +730,14 @@ setup_toggle (GtkWidget *widget, const c
toggle_sensitivity (toggle, widget);
}
+static void
+mail_account_gui_changed (GtkWidget *widget, MailAccountGui *gui)
+{
+ MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
+ MailAccountEditor *editor = (MailAccountEditor *) dialog->editor;
+ mail_account_editor_changed (editor);
+}
+
void
mail_account_gui_build_extra_conf (MailAccountGui *gui, const char
*url_string)
{
@@ -876,6 +884,9 @@ mail_account_gui_build_extra_conf (MailA
g_hash_table_insert (gui->extra_config, entries[i].name,
checkbox);
if (entries[i].depname)
setup_toggle (checkbox, entries[i].depname, gui);
+
+ g_signal_connect (checkbox, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+
break;
}
@@ -924,6 +935,8 @@ 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_account_gui_changed), gui);
+
break;
}
@@ -1088,6 +1101,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_account_gui_changed (GTK_WIDGET (button), gui);
}
GtkWidget *mail_account_gui_folder_selector_button_new (char
*widget_name, char *string1, char *string2, int int1, int int2);
@@ -1281,6 +1296,8 @@ sig_changed (GtkWidget *w, MailAccountGu
gui->def_signature = (MailConfigSignature *)
g_object_get_data(G_OBJECT(active), "sig");
gui->auto_signature = index == 1 ? TRUE : FALSE;
+
+ mail_account_gui_changed (w, gui);
}
static void
@@ -1577,6 +1594,49 @@ mail_account_gui_new (EAccount *account,
return gui;
}
+static void
+mail_account_gui_signal_connect (MailAccountGui *gui)
+{
+ g_signal_connect (gui->account_name, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->default_account, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->full_name, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->email_address, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->reply_to, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->organization, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source.type, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.hostname, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.username, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.path, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.use_ssl, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.authtype, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.remember, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source_auto_check, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->source_auto_check_min, "value-changed",
G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->transport.type, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.hostname, "changed",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.username, "changed",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport_needs_auth, "toggled",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.use_ssl, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.authtype, "changed",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.remember, "toggled",
G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->drafts_folder_button, "clicked",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->sent_folder_button, "clicked",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_cc, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->cc_addrs, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_bcc, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->bcc_addrs, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->pgp_key, "changed", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_encrypt_to_self, "toggled",
G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_sign, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_no_imip_sign, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_trust, "toggled", G_CALLBACK
(mail_account_gui_changed), gui);
+}
+
void
mail_account_gui_setup (MailAccountGui *gui, GtkWidget *top)
{
@@ -1760,6 +1820,8 @@ mail_account_gui_setup (MailAccountGui *
gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
g_free (transport_proto);
}
+
+ mail_account_gui_signal_connect (gui);
}
static void
------------------------------------------------------------------------
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 27 Oct 2003 14:20:25 -0000
@@ -0,0 +0,18 @@
+2003-10-13 Charles Zhang <charles zhang sun com>
+
+ * mail-account-gui.c (mail_account_gui_changed): change signal
+ handler on gui object, callback func.
+ (mail_account_gui_signal_connect): connect widgets to change signal.
+ (mail_account_gui_setup): call func mail_account_gui_signal_connect.
+ (sig_changed): call change handler func.
+ (mail_account_gui_build_extra_conf): connect "changed" signal.
+ (default_folders_clicked): call change handler func.
+
+ * mail-account-editor.c (apply_changes): disable apply button.
+ (construct): disable apply button.
+ (mail_account_editor_changed): change signal handler on editor
+ object.
+
+ * mail_account_editor.h (mail_account_editor_changed): defination
+ of func above.
+
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 27 Oct 2003 14:20:25 -0000
@@ -105,7 +105,10 @@ apply_changes (MailAccountEditor *editor
if (mail_account_gui_save (editor->gui) == FALSE)
return FALSE;
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
/* save any changes we may have */
mail_config_write ();
@@ -151,7 +154,10 @@ construct (MailAccountEditor *editor, EA
GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
g_signal_connect (editor, "response", G_CALLBACK (editor_response_cb), editor);
mail_account_gui_setup (editor->gui, GTK_WIDGET (editor));
@@ -172,3 +178,10 @@ mail_account_editor_new (EAccount *accou
return new;
}
+
+void
+mail_account_editor_changed (MailAccountEditor *editor)
+{
+ gtk_dialog_set_response_sensitive (GTK_WIDGET (editor),
+ GTK_RESPONSE_APPLY, TRUE);
+}
Index: mail/mail-account-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.h,v
retrieving revision 1.20
diff -u -p -r1.20 mail-account-editor.h
--- mail/mail-account-editor.h 17 Jan 2003 23:31:25 -0000 1.20
+++ mail/mail-account-editor.h 27 Oct 2003 14:20:26 -0000
@@ -59,6 +59,7 @@ typedef struct {
GtkType mail_account_editor_get_type (void);
MailAccountEditor *mail_account_editor_new (EAccount *account, GtkWindow *parent, MailAccountsTab *dialog);
+void mail_account_editor_changed (MailAccountEditor *editor);
#ifdef __cplusplus
}
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 27 Oct 2003 14:20:46 -0000
@@ -730,6 +730,14 @@ setup_toggle (GtkWidget *widget, const c
toggle_sensitivity (toggle, widget);
}
+static void
+mail_account_gui_changed (GtkWidget *widget, MailAccountGui *gui)
+{
+ MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
+ MailAccountEditor *editor = (MailAccountEditor *) dialog->editor;
+ mail_account_editor_changed (editor);
+}
+
void
mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
{
@@ -876,6 +884,9 @@ mail_account_gui_build_extra_conf (MailA
g_hash_table_insert (gui->extra_config, entries[i].name, checkbox);
if (entries[i].depname)
setup_toggle (checkbox, entries[i].depname, gui);
+
+ g_signal_connect (checkbox, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
break;
}
@@ -924,6 +935,8 @@ 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_account_gui_changed), gui);
+
break;
}
@@ -1088,6 +1101,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_account_gui_changed (GTK_WIDGET (button), gui);
}
GtkWidget *mail_account_gui_folder_selector_button_new (char *widget_name, char *string1, char *string2, int int1, int int2);
@@ -1281,6 +1296,8 @@ sig_changed (GtkWidget *w, MailAccountGu
gui->def_signature = (MailConfigSignature *) g_object_get_data(G_OBJECT(active), "sig");
gui->auto_signature = index == 1 ? TRUE : FALSE;
+
+ mail_account_gui_changed (w, gui);
}
static void
@@ -1760,6 +1777,45 @@ mail_account_gui_setup (MailAccountGui *
gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
g_free (transport_proto);
}
+
+ g_signal_connect (gui->account_name, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->default_account, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->full_name, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->email_address, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->reply_to, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->organization, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source.type, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.hostname, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.username, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.path, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.use_ssl, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.authtype, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.remember, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source_auto_check, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source_auto_check_min, "value-changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->transport.type, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.hostname, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.username, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport_needs_auth, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.use_ssl, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.authtype, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.remember, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->drafts_folder_button, "clicked", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->sent_folder_button, "clicked", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_cc, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->cc_addrs, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_bcc, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->bcc_addrs, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->pgp_key, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_encrypt_to_self, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_sign, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_no_imip_sign, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_trust, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
}
static void
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 27 Oct 2003 14:20:25 -0000
@@ -0,0 +0,17 @@
+2003-10-13 Charles Zhang <charles zhang sun com>
+
+ * mail-account-gui.c (mail_account_gui_changed): change signal
+ handler on gui object, callback func.
+ (mail_account_gui_setup): connect widgets to change signal.
+ (sig_changed): call change handler func.
+ (mail_account_gui_build_extra_conf): connect "changed" signal.
+ (default_folders_clicked): call change handler func.
+
+ * mail-account-editor.c (apply_changes): disable apply button.
+ (construct): disable apply button.
+ (mail_account_editor_changed): change signal handler on editor
+ object.
+
+ * mail_account_editor.h (mail_account_editor_changed): defination
+ of func above.
+
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 27 Oct 2003 14:20:25 -0000
@@ -105,7 +105,10 @@ apply_changes (MailAccountEditor *editor
if (mail_account_gui_save (editor->gui) == FALSE)
return FALSE;
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
/* save any changes we may have */
mail_config_write ();
@@ -151,7 +154,10 @@ construct (MailAccountEditor *editor, EA
GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (editor),
+ GTK_RESPONSE_APPLY, FALSE);
+
g_signal_connect (editor, "response", G_CALLBACK (editor_response_cb), editor);
mail_account_gui_setup (editor->gui, GTK_WIDGET (editor));
@@ -172,3 +178,10 @@ mail_account_editor_new (EAccount *accou
return new;
}
+
+void
+mail_account_editor_changed (MailAccountEditor *editor)
+{
+ gtk_dialog_set_response_sensitive (GTK_WIDGET (editor),
+ GTK_RESPONSE_APPLY, TRUE);
+}
Index: mail/mail-account-editor.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-account-editor.h,v
retrieving revision 1.20
diff -u -p -r1.20 mail-account-editor.h
--- mail/mail-account-editor.h 17 Jan 2003 23:31:25 -0000 1.20
+++ mail/mail-account-editor.h 27 Oct 2003 14:20:26 -0000
@@ -59,6 +59,7 @@ typedef struct {
GtkType mail_account_editor_get_type (void);
MailAccountEditor *mail_account_editor_new (EAccount *account, GtkWindow *parent, MailAccountsTab *dialog);
+void mail_account_editor_changed (MailAccountEditor *editor);
#ifdef __cplusplus
}
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 27 Oct 2003 14:20:46 -0000
@@ -730,6 +730,14 @@ setup_toggle (GtkWidget *widget, const c
toggle_sensitivity (toggle, widget);
}
+static void
+mail_account_gui_changed (GtkWidget *widget, MailAccountGui *gui)
+{
+ MailAccountsTab *dialog = (MailAccountsTab *) gui->dialog;
+ MailAccountEditor *editor = (MailAccountEditor *) dialog->editor;
+ mail_account_editor_changed (editor);
+}
+
void
mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
{
@@ -876,6 +884,9 @@ mail_account_gui_build_extra_conf (MailA
g_hash_table_insert (gui->extra_config, entries[i].name, checkbox);
if (entries[i].depname)
setup_toggle (checkbox, entries[i].depname, gui);
+
+ g_signal_connect (checkbox, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
break;
}
@@ -924,6 +935,8 @@ 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_account_gui_changed), gui);
+
break;
}
@@ -1088,6 +1101,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_account_gui_changed (GTK_WIDGET (button), gui);
}
GtkWidget *mail_account_gui_folder_selector_button_new (char *widget_name, char *string1, char *string2, int int1, int int2);
@@ -1281,6 +1296,8 @@ sig_changed (GtkWidget *w, MailAccountGu
gui->def_signature = (MailConfigSignature *) g_object_get_data(G_OBJECT(active), "sig");
gui->auto_signature = index == 1 ? TRUE : FALSE;
+
+ mail_account_gui_changed (w, gui);
}
static void
@@ -1760,6 +1777,45 @@ mail_account_gui_setup (MailAccountGui *
gui->transport.provider_type = CAMEL_PROVIDER_TRANSPORT;
g_free (transport_proto);
}
+
+ g_signal_connect (gui->account_name, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->default_account, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->full_name, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->email_address, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->reply_to, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->organization, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source.type, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.hostname, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.username, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.path, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.use_ssl, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.authtype, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source.remember, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->source_auto_check, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->source_auto_check_min, "value-changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->transport.type, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.hostname, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.username, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport_needs_auth, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.use_ssl, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.authtype, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->transport.remember, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->drafts_folder_button, "clicked", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->sent_folder_button, "clicked", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_cc, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->cc_addrs, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->always_bcc, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->bcc_addrs, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+
+ g_signal_connect (gui->pgp_key, "changed", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_encrypt_to_self, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_sign, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_no_imip_sign, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
+ g_signal_connect (gui->pgp_always_trust, "toggled", G_CALLBACK (mail_account_gui_changed), gui);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]