diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2003-04-08 03:10:23 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2003-04-08 03:10:23 +0800 |
commit | cd84f6183343d2bb0d9c33f580fad11ee894b0b6 (patch) | |
tree | b7c50aaa6d9531c7f0c0702578a94bffeab3b05a /mail/mail-composer-prefs.c | |
parent | f47b935f60651d08c5ce667a5d9e75998d1fde9f (diff) | |
download | gsoc2013-evolution-cd84f6183343d2bb0d9c33f580fad11ee894b0b6.tar.gz gsoc2013-evolution-cd84f6183343d2bb0d9c33f580fad11ee894b0b6.tar.zst gsoc2013-evolution-cd84f6183343d2bb0d9c33f580fad11ee894b0b6.zip |
Set the "script" data on the GtkEntry to NULL. (sig_add_script_response):
2003-04-07 Jeffrey Stedfast <fejj@ximian.com>
* mail-composer-prefs.c (sig_add_script_cb): Set the "script" data
on the GtkEntry to NULL.
(sig_add_script_response): If the "script" data on the GtkEntry
object is non-NULL, then we are editing an existing signature, so
just change the values in place and don't add it to the signature
db.
(sig_edit_cb): If sig->script is non-NULL, then we are editing a
script signature, so pop up the script dialog instead. Fixes bug
#38929.
svn path=/trunk/; revision=20723
Diffstat (limited to 'mail/mail-composer-prefs.c')
-rw-r--r-- | mail/mail-composer-prefs.c | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/mail/mail-composer-prefs.c b/mail/mail-composer-prefs.c index c5daa41bb1..0a01135964 100644 --- a/mail/mail-composer-prefs.c +++ b/mail/mail-composer-prefs.c @@ -220,15 +220,32 @@ sig_edit_cb (GtkWidget *widget, MailComposerPrefs *prefs) gtk_tree_model_get (model, &iter, 1, &sig, -1); - if (!sig->filename || *sig->filename == '\0') { - g_free (sig->filename); - sig->filename = g_strdup (_("Unnamed")); + if (sig->script == NULL) { + /* normal signature */ + if (!sig->filename || *sig->filename == '\0') { + g_free (sig->filename); + sig->filename = g_strdup (_("Unnamed")); + } + + parent = gtk_widget_get_toplevel ((GtkWidget *) prefs); + parent = GTK_WIDGET_TOPLEVEL (parent) ? parent : NULL; + + mail_signature_editor (sig, (GtkWindow *) parent, FALSE); + } else { + /* signature script */ + GtkWidget *entry; + + entry = glade_xml_get_widget (prefs->sig_script_gui, "fileentry_add_script_script"); + gtk_entry_set_text (GTK_ENTRY (entry), sig->name); + + entry = glade_xml_get_widget (prefs->sig_script_gui, "entry_add_script_name"); + gtk_entry_set_text (GTK_ENTRY (entry), sig->name); + + g_object_set_data ((GObject *) entry, "script", sig); + + gtk_widget_show (prefs->sig_script_dialog); + gdk_window_raise (prefs->sig_script_dialog->window); } - - parent = gtk_widget_get_toplevel ((GtkWidget *) prefs); - parent = GTK_WIDGET_TOPLEVEL (parent) ? parent : NULL; - - mail_signature_editor (sig, (GtkWindow *) parent, FALSE); } MailConfigSignature * @@ -297,9 +314,14 @@ sig_add_script_response (GtkWidget *widget, int button, MailComposerPrefs *prefs parent = gtk_widget_get_toplevel ((GtkWidget *) prefs); parent = GTK_WIDGET_TOPLEVEL (parent) ? parent : NULL; - sig = mail_composer_prefs_new_signature ((GtkWindow *) parent, TRUE, script); - mail_config_signature_set_name (sig, name); - mail_config_signature_add (sig); + if ((sig = g_object_get_data ((GObject *) entry, "script"))) { + /* we're just editing an existing signature script */ + mail_config_signature_set_name (sig, name); + } else { + sig = mail_composer_prefs_new_signature ((GtkWindow *) parent, TRUE, script); + mail_config_signature_set_name (sig, name); + mail_config_signature_add (sig); + } gtk_widget_hide (prefs->sig_script_dialog); @@ -327,6 +349,8 @@ sig_add_script_cb (GtkWidget *widget, MailComposerPrefs *prefs) entry = glade_xml_get_widget (prefs->sig_script_gui, "entry_add_script_name"); gtk_entry_set_text (GTK_ENTRY (entry), _("Unnamed")); + g_object_set_data ((GObject *) entry, "script", NULL); + gtk_widget_show (prefs->sig_script_dialog); gdk_window_raise (prefs->sig_script_dialog->window); } |