From ee96e3762905713b1785d24f6de278608060d6c3 Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Wed, 5 Jun 2002 15:43:50 +0000 Subject: signature editor reworked, WIP svn path=/trunk/; revision=17117 --- composer/e-msg-composer.c | 155 ++++++++---------- composer/e-msg-composer.h | 2 +- mail/mail-account-gui.c | 295 ++++++--------------------------- mail/mail-account-gui.h | 14 +- mail/mail-composer-prefs.c | 168 +------------------ mail/mail-composer-prefs.h | 5 - mail/mail-config.c | 97 +++-------- mail/mail-config.glade | 398 ++++++++++++++++++++++++++++++++++++--------- mail/mail-config.h | 11 +- 9 files changed, 472 insertions(+), 673 deletions(-) diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index dab3c276dd..6b0899c60e 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -53,6 +53,7 @@ #include #include +#include #include #include @@ -845,48 +846,56 @@ static gchar * get_signature_html (EMsgComposer *composer) { gboolean format_html = FALSE; - char *text, *html = NULL, *sig_file = NULL, *script = NULL; - static gboolean random_initialized = FALSE; - + char *text = NULL, *html = NULL, *sig_file = NULL, *script = NULL; + if (composer->signature) { sig_file = composer->signature->filename; format_html = composer->signature->html; script = composer->signature->script; - } else if (composer->random_signature) { - GList *l; - gint pos; - - if (!random_initialized) { - printf ("initialize random generator\n"); - srand (time (NULL)); - random_initialized = TRUE; - } - pos = (int) (((gdouble) mail_config_get_signatures_random ())*rand()/(RAND_MAX+1.0)); - printf ("using %d sig\n", pos); - - for (l = mail_config_get_signature_list (); l; l = l->next) { - MailConfigSignature *sig = (MailConfigSignature *) l->data; - - if (sig->random) { - if (pos == 0) { - printf ("using %s\n", sig->name); - sig_file = sig->filename; - script = sig->script; - format_html = sig->html; - break; - } - pos --; - } - } + } else if (composer->auto_signature) { + MailConfigIdentity *id; + gchar *address; + gchar *name; + gchar *organization; + + id = E_MSG_COMPOSER_HDRS (composer->hdrs)->account->id; + address = id->address ? e_text_to_html (id->address, E_TEXT_TO_HTML_CONVERT_SPACES) : NULL; + name = id->name ? e_text_to_html (id->name, E_TEXT_TO_HTML_CONVERT_SPACES) : NULL; + organization = id->organization ? e_text_to_html (id->organization, E_TEXT_TO_HTML_CONVERT_SPACES) : NULL; + + text = g_strdup_printf ("--
%s%s%s%s%s%s%s%s", + name ? name : "", + (address && *address) ? " <" : "", + address ? address : "", + (address && *address) ? ">" : "", + (organization && *organization) ? "
" : "", + organization ? organization : ""); + g_free (address); + g_free (name); + g_free (organization); + format_html = TRUE; + } + + if (!text) { + if (!sig_file) + return NULL; + printf ("sig file: %s\n", sig_file); + + mail_config_signature_run_script (script); + text = e_msg_composer_get_sig_file_content (sig_file, format_html); } - if (!sig_file) - return NULL; - printf ("sig file: %s\n", sig_file); - mail_config_signature_run_script (script); - text = e_msg_composer_get_sig_file_content (sig_file, format_html); /* printf ("text: %s\n", text); */ if (text) { + if (!format_html) { + gchar *tmp; + + tmp = e_text_to_html (text, E_TEXT_TO_HTML_CONVERT_SPACES); + g_free (text); + text = tmp; + } /* The signature dash convention ("-- \n") is specified in the * "Son of RFC 1036": http://www.chemie.fu-berlin.de/outerspace/netnews/son-of-1036.html, * section 4.3.2. @@ -1735,14 +1744,6 @@ static EPixmap pixcache [] = { E_PIXMAP_END }; -static void -signature_regenerate_cb (BonoboUIComponent *uic, gpointer user_data, const char *path) -{ - printf ("signature_regenerate_cb: %s\n", path); - - e_msg_composer_show_sig_file (E_MSG_COMPOSER (user_data)); -} - static void signature_cb (BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, gpointer user_data) @@ -1754,23 +1755,23 @@ signature_cb (BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_Event if (state && *state == '1') { if (path && !strncmp (path, "Signature", 9)) { MailConfigSignature *old_sig; - gboolean old_random; + gboolean old_auto; old_sig = composer->signature; - old_random = composer->random_signature; + old_auto = composer->auto_signature; printf ("I'm going to set signature (%d)\n", atoi (path + 9)); - if (path [9] == 'N') { + if (path [9] == 'N') { /* none */ composer->signature = NULL; - composer->random_signature = FALSE; - } else if (path [9] == 'R') { + composer->auto_signature = FALSE; + } else if (path [9] == 'A') { /* auto */ composer->signature = NULL; - composer->random_signature = TRUE; + composer->auto_signature = TRUE; } else { composer->signature = g_list_nth_data (mail_config_get_signature_list (), atoi (path + 9)); - composer->random_signature = FALSE; + composer->auto_signature = FALSE; } - if (old_sig != composer->signature || old_random != composer->random_signature) + if (old_sig != composer->signature || old_auto != composer->auto_signature) e_msg_composer_show_sig_file (composer); } } @@ -1787,8 +1788,6 @@ remove_signature_list (EMsgComposer *composer) gint len = g_list_length (mail_config_get_signature_list ()); bonobo_ui_component_rm (composer->uic, "/menu/Edit/EditMisc/EditSignaturesSubmenu/SeparatorList", NULL); - bonobo_ui_component_rm (composer->uic, "/menu/Edit/EditMisc/EditSignaturesSubmenu/SeparatorRegenerate", NULL); - bonobo_ui_component_rm (composer->uic, "/menu/Edit/EditMisc/EditSignaturesSubmenu/SignatureRegenerate", NULL); for (; len; len --) { g_snprintf (path, 64, "/menu/Edit/EditMisc/EditSignaturesSubmenu/Signature%d", len - 1); bonobo_ui_component_rm (composer->uic, path, NULL); @@ -1803,24 +1802,16 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, EMsgCompos bonobo_ui_component_freeze (composer->uic, NULL); switch (event) { case MAIL_CONFIG_SIG_EVENT_DELETED: - if (sig == composer->signature) + if (sig == composer->signature) { composer->signature = NULL; + composer->auto_signature = TRUE; + } path = g_strdup_printf ("/menu/Edit/EditMisc/EditSignaturesSubmenu/Signature%d", g_list_length (mail_config_get_signature_list ())); bonobo_ui_component_rm (composer->uic, path, NULL); g_free (path); setup_signatures_menu (composer); break; - case MAIL_CONFIG_SIG_EVENT_RANDOM_OFF: - composer->random_signature = FALSE; - bonobo_ui_component_rm (composer->uic, "/menu/Edit/EditMisc/EditSignaturesSubmenu/SignatureRandom", NULL); - bonobo_ui_component_rm (composer->uic, "/menu/Edit/EditMisc/EditSignaturesSubmenu/SeparatorRandom", NULL); - setup_signatures_menu (composer); - break; - case MAIL_CONFIG_SIG_EVENT_RANDOM_ON: - remove_signature_list (composer); - setup_signatures_menu (composer); - break; case MAIL_CONFIG_SIG_EVENT_ADDED: case MAIL_CONFIG_SIG_EVENT_NAME_CHANGED: setup_signatures_menu (composer); @@ -1840,40 +1831,33 @@ setup_signatures_menu (EMsgComposer *composer) str = g_string_new ("\n" "\n" + "\n"); - if (mail_config_get_signatures_random ()) { - g_string_append (str, - "\n" - "\n"); - } list = mail_config_get_signature_list (); if (list) { - + gchar *gtk_str; g_string_append (str, ""); for (l = list; l; len ++, l = l->next) { + gtk_str = e_utf8_to_gtk_string (GTK_WIDGET (composer), ((MailConfigSignature *)l->data)->name); line = g_strdup_printf ("\n", - len, ((MailConfigSignature *)l->data)->name, len); + len, gtk_str, len); + g_free (gtk_str); g_string_append (str, line); g_free (line); } } - g_string_append (str, - "\n" - ""); g_string_append (str, "\n"); bonobo_ui_component_set_translate (composer->uic, "/menu/Edit/EditMisc/", str->str, NULL); bonobo_ui_component_set (composer->uic, "/menu/Edit/EditMisc/", "", NULL); bonobo_ui_component_add_listener (composer->uic, "SignatureNone", signature_cb, composer); - bonobo_ui_component_add_listener (composer->uic, "SignatureRandom", signature_cb, composer); - bonobo_ui_component_add_verb (composer->uic, "SignatureRegenerate", signature_regenerate_cb, composer); + bonobo_ui_component_add_listener (composer->uic, "SignatureAuto", signature_cb, composer); for (i = 0; i < len; i ++) { g_string_sprintf (str, "Signature%d", i + 1); @@ -2811,14 +2795,13 @@ set_editor_signature (EMsgComposer *composer) id = E_MSG_COMPOSER_HDRS (composer->hdrs)->account->id; - composer->random_signature = composer->send_html ? id->html_random : id->text_random; - if (composer->random_signature) - composer->signature = NULL; - else - composer->signature = composer->send_html ? id->html_signature : id->text_signature; - - if (composer->random_signature) { - verb = g_strdup ("/commands/SignatureRandom"); + composer->signature = id->def_signature; + composer->auto_signature = id->auto_signature; + + printf ("auto: %d\n", id->auto_signature); + + if (composer->auto_signature) { + verb = g_strdup ("/commands/SignatureAuto"); } else if (composer->signature == NULL) { verb = g_strdup ("/commands/SignatureNone"); } else { @@ -3818,8 +3801,6 @@ e_msg_composer_set_send_html (EMsgComposer *composer, composer->send_html, NULL); set_config (composer, "FormatHTML", composer->send_html); - set_editor_signature (composer); - e_msg_composer_show_sig_file (composer); GNOME_GtkHTML_Editor_Engine_runCommand (composer->editor_engine, "unblock-redraw", &ev); CORBA_exception_free (&ev); } diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h index ea457e43a6..584de4fa53 100644 --- a/composer/e-msg-composer.h +++ b/composer/e-msg-composer.h @@ -101,7 +101,7 @@ struct _EMsgComposer { CamelMimeMessage *redirect; MailConfigSignature *signature; - gboolean random_signature; + gboolean auto_signature; }; struct _EMsgComposerClass { diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c index 71f72e4269..80b27b0ff0 100644 --- a/mail/mail-account-gui.c +++ b/mail/mail-account-gui.c @@ -1179,78 +1179,51 @@ clear_menu (GtkWidget *menu) static inline int sig_get_index (MailConfigSignature *sig) { - return sig->id + (mail_config_get_signatures_random () ? 2 : 1); + return sig ? sig->id + 2 : 0; } -static gint -sig_get_gui_index (MailAccountGui *gui, gboolean text) +static inline int +sig_gui_get_index (MailAccountGui *gui) { - MailConfigSignature *sig = text ? gui->text_signature : gui->html_signature; - gboolean random = text ? gui->text_random : gui->html_random; - - if (random) + if (gui->auto_signature) return 1; - else if (!sig) - return 0; - else - return sig_get_index (sig); + return sig_get_index (gui->def_signature); } static void sig_fill_options (MailAccountGui *gui) { - GtkWidget *menu_text, *menu_html; + GtkWidget *menu; GtkWidget *mi; GList *l; MailConfigSignature *sig; - menu_text = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); - menu_html = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); - - if (menu_text) - clear_menu (menu_text); - else - menu_text = gtk_menu_new (); + menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu)); - if (menu_html) - clear_menu (menu_html); + if (menu) + clear_menu (menu); else - menu_html = gtk_menu_new (); - - gtk_menu_append (GTK_MENU (menu_text), gtk_menu_item_new_with_label (_("None"))); - gtk_menu_append (GTK_MENU (menu_html), gtk_menu_item_new_with_label (_("None"))); - - if (mail_config_get_signatures_random ()) { - gtk_menu_append (GTK_MENU (menu_text), gtk_menu_item_new_with_label (_("Random"))); - gtk_menu_append (GTK_MENU (menu_html), gtk_menu_item_new_with_label (_("Random"))); - } + menu = gtk_menu_new (); + + gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label (_("None"))); + gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label (_("Autogenerated"))); + /* gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label (_("Random"))); */ for (l = mail_config_get_signature_list (); l; l = l->next) { + gchar *utf8; + sig = l->data; - mi = gtk_menu_item_new_with_label (sig->name); - gtk_object_set_data (GTK_OBJECT (mi), "sig", sig); - gtk_menu_append (GTK_MENU (menu_text), mi); - - mi = gtk_menu_item_new_with_label (sig->name); + utf8 = e_utf8_to_gtk_string (menu, sig->name); + mi = gtk_menu_item_new_with_label (utf8); + g_free (utf8); gtk_object_set_data (GTK_OBJECT (mi), "sig", sig); - gtk_menu_append (GTK_MENU (menu_html), mi); + gtk_widget_show (mi); + gtk_menu_append (GTK_MENU (menu), mi); } } static void -sig_select_text_sig (MailAccountGui *gui) -{ - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_text), sig_get_gui_index (gui, TRUE)); -} - -static void -sig_select_html_sig (MailAccountGui *gui) -{ - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_html), sig_get_gui_index (gui, FALSE)); -} - -static void -sig_changed_text (GtkWidget *w, MailAccountGui *gui) +sig_changed (GtkWidget *w, MailAccountGui *gui) { GtkWidget *active; int index; @@ -1258,55 +1231,8 @@ sig_changed_text (GtkWidget *w, MailAccountGui *gui) active = gtk_menu_get_active (GTK_MENU (w)); index = g_list_index (GTK_MENU_SHELL (w)->children, active); - gui->text_signature = (MailConfigSignature *) gtk_object_get_data (GTK_OBJECT (active), "sig"); - gui->text_random = index == 1; - - gtk_widget_set_sensitive (GTK_WIDGET (gui->sig_edit_text), gui->text_signature != NULL); -} - -static void -sig_changed_html (GtkWidget *w, MailAccountGui *gui) -{ - GtkWidget *active; - int index; - - active = gtk_menu_get_active (GTK_MENU (w)); - index = g_list_index (GTK_MENU_SHELL (w)->children, active); - - gui->html_signature = (MailConfigSignature *) gtk_object_get_data (GTK_OBJECT (active), "sig"); - gui->html_random = index == 1; - - gtk_widget_set_sensitive (GTK_WIDGET (gui->sig_edit_html), gui->html_signature != NULL); -} - -static void -sig_edit_text (GtkWidget *w, MailAccountGui *gui) -{ - MailConfigSignature *sig = gui->text_signature; - - if (!sig) - return; - - if (sig->filename && *sig->filename) - mail_signature_editor (sig); - else - e_notice (NULL, GNOME_MESSAGE_BOX_ERROR, - _("Please specify signature filename\nin Andvanced section of signature settings.")); -} - -static void -sig_edit_html (GtkWidget *w, MailAccountGui *gui) -{ - MailConfigSignature *sig = gui->html_signature; - - if (!sig) - return; - - if (sig->filename && *sig->filename) - mail_signature_editor (sig); - else - e_notice (NULL, GNOME_MESSAGE_BOX_ERROR, - _("Please specify signature filename\nin Andvanced section of signature settings.")); + gui->def_signature = (MailConfigSignature *) gtk_object_get_data (GTK_OBJECT (active), "sig"); + gui->auto_signature = index == 1 ? TRUE : FALSE; } static void @@ -1318,50 +1244,25 @@ sig_switch_to_list (GtkWidget *w, MailAccountGui *gui) } static void -sig_new_text (GtkWidget *w, MailAccountGui *gui) +sig_add_new_signature (GtkWidget *w, MailAccountGui *gui) { if (!gui->dialog) return; sig_switch_to_list (w, gui); - gui->text_signature = mail_composer_prefs_new_signature (NULL, FALSE); - gui->text_random = FALSE; - - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_text), sig_get_index (gui->text_signature)); + gui->def_signature = mail_composer_prefs_new_signature (NULL, FALSE); + gui->auto_signature = FALSE; - gtk_widget_set_sensitive (gui->sig_edit_text, TRUE); -} - -static void -sig_new_html (GtkWidget *w, MailAccountGui *gui) -{ - if (!gui->dialog) - return; - - sig_switch_to_list (w, gui); - - gui->html_signature = mail_composer_prefs_new_signature (NULL, TRUE); - gui->html_random = FALSE; - - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_html), sig_get_index (gui->html_signature)); - - gtk_widget_set_sensitive (gui->sig_edit_html, TRUE); + gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_menu), sig_gui_get_index (gui)); } static void setup_signatures (MailAccountGui *gui) { - gui->text_signature = gui->account->id->text_signature; - gui->text_random = gui->account->id->text_random; - gui->html_signature = gui->account->id->html_signature; - gui->html_random = gui->account->id->html_random; - - sig_select_text_sig (gui); - sig_select_html_sig (gui); - - gtk_widget_set_sensitive (GTK_WIDGET (gui->sig_edit_text), gui->text_signature != NULL); - gtk_widget_set_sensitive (GTK_WIDGET (gui->sig_edit_html), gui->html_signature != NULL); + gui->def_signature = gui->account->id->def_signature; + gui->auto_signature = gui->account->id->auto_signature; + gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_menu), sig_gui_get_index (gui)); } static void @@ -1376,15 +1277,9 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, MailAccoun mi = gtk_menu_item_new_with_label (sig->name); gtk_object_set_data (GTK_OBJECT (mi), "sig", sig); gtk_widget_show (mi); - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); + menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu)); gtk_menu_append (GTK_MENU (menu), mi); - - mi = gtk_menu_item_new_with_label (sig->name); - gtk_object_set_data (GTK_OBJECT (mi), "sig", sig); - gtk_widget_show (mi); - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); - gtk_menu_append (GTK_MENU (GTK_MENU (menu)), mi); - + break; } case MAIL_CONFIG_SIG_EVENT_NAME_CHANGED: { @@ -1392,24 +1287,15 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, MailAccoun GtkWidget *mi; d(printf ("gui NAME CHANGED\n")); - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); - gtk_widget_ref (menu); - gtk_option_menu_remove_menu (GTK_OPTION_MENU (gui->sig_option_text)); - mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, sig_get_index (sig)); - gtk_label_set_text (GTK_LABEL (GTK_BIN (mi)->child), sig->name); - gtk_option_menu_set_menu (GTK_OPTION_MENU (gui->sig_option_text), menu); - gtk_widget_unref (menu); - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_text), sig_get_gui_index (gui, TRUE)); - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); + menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu)); gtk_widget_ref (menu); - gtk_option_menu_remove_menu (GTK_OPTION_MENU (gui->sig_option_html)); + gtk_option_menu_remove_menu (GTK_OPTION_MENU (gui->sig_option_menu)); mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, sig_get_index (sig)); gtk_label_set_text (GTK_LABEL (GTK_BIN (mi)->child), sig->name); - gtk_option_menu_set_menu (GTK_OPTION_MENU (gui->sig_option_html), menu); + gtk_option_menu_set_menu (GTK_OPTION_MENU (gui->sig_option_menu), menu); gtk_widget_unref (menu); - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_html), sig_get_gui_index (gui, FALSE)); - + gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_menu), sig_gui_get_index (gui)); + break; } case MAIL_CONFIG_SIG_EVENT_DELETED: { @@ -1418,74 +1304,18 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, MailAccoun d(printf ("gui DELETED\n")); - if (sig == gui->text_signature) { - gui->text_signature = NULL; - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_text), - sig_get_gui_index (gui, TRUE)); + if (sig == gui->def_signature) { + gui->def_signature = NULL; + gui->auto_signature = TRUE; + gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_menu), sig_gui_get_index (gui)); } - - if (sig == gui->html_signature) { - gui->html_signature = NULL; - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_html), - sig_get_gui_index (gui, FALSE)); - } - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); - mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, sig_get_index (sig)); - gtk_container_remove (GTK_CONTAINER (menu), mi); - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); + + menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu)); mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, sig_get_index (sig)); gtk_container_remove (GTK_CONTAINER (menu), mi); break; } - case MAIL_CONFIG_SIG_EVENT_RANDOM_ON: { - GtkWidget *menu; - GtkWidget *mi; - - d(printf ("gui RANDOM ON\n")); - - mi = gtk_menu_item_new_with_label (_("Random")); - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); - gtk_menu_insert (GTK_MENU (menu), mi, 1); - gtk_widget_show (mi); - - mi = gtk_menu_item_new_with_label (_("Random")); - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); - gtk_menu_insert (GTK_MENU (menu), mi, 1); - gtk_widget_show (mi); - - break; - } - case MAIL_CONFIG_SIG_EVENT_RANDOM_OFF: { - GtkWidget *menu; - GtkWidget *mi; - - d(printf ("gui RANDOM OFF\n")); - - if (gui->text_random) { - gui->text_random = FALSE; - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_text), - sig_get_gui_index (gui, TRUE)); - } - - if (gui->html_random) { - gui->html_random = FALSE; - gtk_option_menu_set_history (GTK_OPTION_MENU (gui->sig_option_html), - sig_get_gui_index (gui, FALSE)); - } - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text)); - mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, 1); - gtk_container_remove (GTK_CONTAINER (menu), mi); - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html)); - mi = g_list_nth_data (GTK_MENU_SHELL (menu)->children, 1); - gtk_container_remove (GTK_CONTAINER (menu), mi); - - break; - } default: ; } @@ -1494,34 +1324,17 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, MailAccoun static void prepare_signatures (MailAccountGui *gui) { - gui->sig_option_text = glade_xml_get_widget (gui->xml, "option-sig-text"); - gui->sig_option_html = glade_xml_get_widget (gui->xml, "option-sig-html"); - + gui->sig_option_menu = glade_xml_get_widget (gui->xml, "sigOption"); sig_fill_options (gui); + gtk_signal_connect (GTK_OBJECT (gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_menu))), + "selection-done", sig_changed, gui); - gtk_signal_connect (GTK_OBJECT (gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_text))), - "selection-done", sig_changed_text, gui); - gtk_signal_connect (GTK_OBJECT (gtk_option_menu_get_menu (GTK_OPTION_MENU (gui->sig_option_html))), - "selection-done", sig_changed_html, gui); - - gui->sig_new_text = glade_xml_get_widget (gui->xml, "button-sig-new-text"); - gtk_signal_connect (GTK_OBJECT (gui->sig_new_text), "clicked", GTK_SIGNAL_FUNC (sig_new_text), gui); - gui->sig_new_html = glade_xml_get_widget (gui->xml, "button-sig-new-html"); - gtk_signal_connect (GTK_OBJECT (gui->sig_new_html), "clicked", GTK_SIGNAL_FUNC (sig_new_html), gui); - gui->sig_edit_text = glade_xml_get_widget (gui->xml, "button-sig-edit-text"); - gtk_signal_connect (GTK_OBJECT (gui->sig_edit_text), "clicked", GTK_SIGNAL_FUNC (sig_edit_text), gui); - gui->sig_edit_html = glade_xml_get_widget (gui->xml, "button-sig-edit-html"); - gtk_signal_connect (GTK_OBJECT (gui->sig_edit_html), "clicked", GTK_SIGNAL_FUNC (sig_edit_html), gui); + glade_xml_signal_connect_data (gui->xml, "sigAddNewClicked", GTK_SIGNAL_FUNC (sig_add_new_signature), gui); if (!gui->dialog) { - gtk_widget_hide (glade_xml_get_widget (gui->xml, "label-sig-text")); - gtk_widget_hide (glade_xml_get_widget (gui->xml, "label-sig-html")); - gtk_widget_hide (gui->sig_option_text); - gtk_widget_hide (gui->sig_option_html); - gtk_widget_hide (gui->sig_new_text); - gtk_widget_hide (gui->sig_new_html); - gtk_widget_hide (gui->sig_edit_text); - gtk_widget_hide (gui->sig_edit_html); + gtk_widget_hide (glade_xml_get_widget (gui->xml, "sigLabel")); + gtk_widget_hide (glade_xml_get_widget (gui->xml, "sigOption")); + gtk_widget_hide (glade_xml_get_widget (gui->xml, "sigAddNew")); } else { mail_config_signature_register_client ((MailConfigSignatureClient) sig_event_client, gui); } @@ -1993,10 +1806,8 @@ mail_account_gui_save (MailAccountGui *gui) account->id->organization = e_utf8_gtk_entry_get_text (gui->organization); /* signatures */ - account->id->text_signature = gui->text_signature; - account->id->text_random = gui->text_random; - account->id->html_signature = gui->html_signature; - account->id->html_random = gui->html_random; + account->id->def_signature = gui->def_signature; + account->id->auto_signature = gui->auto_signature; old_enabled = account->source && account->source->enabled; service_destroy (account->source); diff --git a/mail/mail-account-gui.h b/mail/mail-account-gui.h index d5d873f3e0..b9469f54b1 100644 --- a/mail/mail-account-gui.h +++ b/mail/mail-account-gui.h @@ -70,16 +70,10 @@ typedef struct { GtkEntry *organization; /* signatures */ - GtkWidget *sig_option_text; - GtkWidget *sig_option_html; - GtkWidget *sig_new_text; - GtkWidget *sig_new_html; - GtkWidget *sig_edit_text; - GtkWidget *sig_edit_html; - MailConfigSignature *text_signature; - gboolean text_random; - MailConfigSignature *html_signature; - gboolean html_random; + GtkWidget *sig_option_menu; + + MailConfigSignature *def_signature; + gboolean auto_signature; /* incoming mail */ MailAccountGuiService source; diff --git a/mail/mail-composer-prefs.c b/mail/mail-composer-prefs.c index c90d7ca229..95bb5bf8a8 100644 --- a/mail/mail-composer-prefs.c +++ b/mail/mail-composer-prefs.c @@ -225,17 +225,6 @@ sig_current_sig (MailComposerPrefs *prefs) return gtk_clist_get_row_data (GTK_CLIST (prefs->sig_clist), prefs->sig_row); } -static void -sig_script_activate (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (sig && sig->script && *sig->script) { - run_script (sig->script); - sig_write_and_update_preview (prefs, sig); - } -} - static void sig_edit (GtkWidget *widget, MailComposerPrefs *prefs) { @@ -252,17 +241,17 @@ MailConfigSignature * mail_composer_prefs_new_signature (MailComposerPrefs *prefs, gboolean html) { MailConfigSignature *sig; - char *name[2]; + char *name [1]; int row; sig = mail_config_signature_add (html); if (prefs) { - name[0] = sig->name; - name[1] = sig->random ? _("yes") : _("no"); + name [0] = e_utf8_to_gtk_string (prefs->sig_clist, sig->name); row = gtk_clist_append (GTK_CLIST (prefs->sig_clist), name); gtk_clist_set_row_data (GTK_CLIST (prefs->sig_clist), row, sig); gtk_clist_select_row (GTK_CLIST (prefs->sig_clist), row, 0); + g_free (name [0]); /*gtk_widget_grab_focus (prefs->sig_name);*/ } @@ -303,28 +292,8 @@ sig_row_select (GtkCList *clist, int row, int col, GdkEvent *event, MailComposer printf ("sig_row_select\n"); gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_delete, TRUE); gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_edit, TRUE); - /*gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_name, TRUE);*/ - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_random, TRUE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_html, TRUE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_filename, TRUE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_script, TRUE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_html, TRUE); - prefs->sig_switch = TRUE; sig = gtk_clist_get_row_data (prefs->sig_clist, row); - if (sig) { - /*if (sig->name) - e_utf8_gtk_entry_set_text (GTK_ENTRY (prefs->sig_name), sig->name);*/ - gtk_toggle_button_set_active (prefs->sig_random, sig->random); - gtk_toggle_button_set_active (prefs->sig_html, sig->html); - if (sig->filename) - gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (prefs->sig_filename)), - sig->filename); - if (sig->script) - gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (prefs->sig_script)), - sig->script); - } - prefs->sig_switch = FALSE; prefs->sig_row = row; sig_load_preview (prefs, sig); @@ -336,116 +305,24 @@ sig_row_unselect (GtkCList *clist, int row, int col, GdkEvent *event, MailCompos printf ("sig_row_unselect\n"); gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_delete, FALSE); gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_edit, FALSE); - /*gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_name, FALSE);*/ - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_random, FALSE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_html, FALSE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_filename, FALSE); - gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_script, FALSE); - - prefs->sig_switch = TRUE; - /*gtk_entry_set_text (GTK_ENTRY (prefs->sig_name), "");*/ - gtk_toggle_button_set_active (prefs->sig_random, FALSE); - gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (prefs->sig_filename)), ""); - gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (prefs->sig_script)), ""); - prefs->sig_switch = FALSE; } static void sig_fill_clist (GtkCList *clist) { GList *l; - char *name[2]; + char *name[1]; int row; gtk_clist_freeze (clist); for (l = mail_config_get_signature_list (); l; l = l->next) { name[0] = ((MailConfigSignature *) l->data)->name; - name[1] = ((MailConfigSignature *) l->data)->random ? _("yes") : _("no"); row = gtk_clist_append (clist, name); gtk_clist_set_row_data (clist, row, l->data); } gtk_clist_thaw (clist); } -#if 0 -static void -sig_name_changed (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (prefs->sig_switch) - return; - - /*mail_config_signature_set_name (sig, e_utf8_gtk_entry_get_text (GTK_ENTRY (prefs->sig_name)));*/ - gtk_clist_set_text (GTK_CLIST (prefs->sig_clist), prefs->sig_row, 0, sig->name); - - sig_write_and_update_preview (prefs, sig); -} -#endif - -static void -sig_random_toggled (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (prefs->sig_switch) - return; - - mail_config_signature_set_random (sig, gtk_toggle_button_get_active (prefs->sig_random)); - - gtk_clist_set_text (prefs->sig_clist, prefs->sig_row, 1, sig->random ? _("yes") : _("no")); - - sig_write_and_update_preview (prefs, sig); -} - -static void -sig_advanced_toggled (GtkWidget *widget, MailComposerPrefs *prefs) -{ - GtkWidget *advanced_frame; - - advanced_frame = glade_xml_get_widget (prefs->gui, "frameAdvancedOptions"); - gtk_widget_set_sensitive (advanced_frame, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); -} - -static void -sig_html_toggled (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (prefs->sig_switch) - return; - - sig->html = gtk_toggle_button_get_active (prefs->sig_html); - - sig_write_and_update_preview (prefs, sig); -} - -static void -sig_filename_changed (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (prefs->sig_switch) - return; - - mail_config_signature_set_filename (sig, gnome_file_entry_get_full_path (prefs->sig_filename, FALSE)); - sig_write_and_update_preview (prefs, sig); -} - -static void -sig_script_changed (GtkWidget *widget, MailComposerPrefs *prefs) -{ - MailConfigSignature *sig = sig_current_sig (prefs); - - if (prefs->sig_switch) - return; - - g_free (sig->script); - sig->script = g_strdup (gnome_file_entry_get_full_path (prefs->sig_script, FALSE)); - - sig_write_and_update_preview (prefs, sig); -} - static void url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle) { @@ -491,11 +368,6 @@ sig_event_client (MailConfigSigEvent event, MailConfigSignature *sig, MailCompos if (sig == sig_current_sig (prefs)) sig_load_preview (prefs, sig); break; - case MAIL_CONFIG_SIG_EVENT_HTML_CHANGED: - printf ("accounts HTML CHANGED\n"); - if (sig == sig_current_sig (prefs)) - gtk_toggle_button_set_active (prefs->sig_html, sig->html); - break; default: ; } @@ -940,43 +812,13 @@ mail_composer_prefs_construct (MailComposerPrefs *prefs) gtk_signal_connect (GTK_OBJECT (prefs->sig_delete), "clicked", GTK_SIGNAL_FUNC (sig_delete), prefs); - prefs->sig_random = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkRandomSignature")); - gtk_signal_connect (GTK_OBJECT (prefs->sig_random), "toggled", - GTK_SIGNAL_FUNC (sig_random_toggled), prefs); - gtk_signal_connect (GTK_OBJECT (prefs->sig_random), "toggled", - toggle_button_toggled, prefs); - prefs->sig_clist = GTK_CLIST (glade_xml_get_widget (gui, "clistSignatures")); sig_fill_clist (prefs->sig_clist); gtk_signal_connect (GTK_OBJECT (prefs->sig_clist), "select_row", GTK_SIGNAL_FUNC (sig_row_select), prefs); gtk_signal_connect (GTK_OBJECT (prefs->sig_clist), "unselect_row", GTK_SIGNAL_FUNC (sig_row_unselect), prefs); - - prefs->sig_advanced = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkAdvancedSignature")); - gtk_toggle_button_set_active (prefs->sig_advanced, FALSE); - gtk_signal_connect (GTK_OBJECT (prefs->sig_advanced), "toggled", - GTK_SIGNAL_FUNC (sig_advanced_toggled), prefs); - - widget = glade_xml_get_widget (gui, "frameAdvancedOptions"); - gtk_widget_set_sensitive (widget, FALSE); - - prefs->sig_html = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkHtmlSignature")); - gtk_signal_connect (GTK_OBJECT (prefs->sig_html), "toggled", - GTK_SIGNAL_FUNC (sig_html_toggled), prefs); - gtk_signal_connect (GTK_OBJECT (prefs->sig_html), "toggled", - toggle_button_toggled, prefs); - - prefs->sig_filename = GNOME_FILE_ENTRY (glade_xml_get_widget (gui, "fileSignatureFilename")); - gtk_signal_connect (GTK_OBJECT (gnome_file_entry_gtk_entry (prefs->sig_filename)), - "changed", GTK_SIGNAL_FUNC (sig_filename_changed), prefs); - - prefs->sig_script = GNOME_FILE_ENTRY (glade_xml_get_widget (gui, "fileSignatureScript")); - gtk_signal_connect (GTK_OBJECT (gnome_file_entry_gtk_entry (prefs->sig_script)), - "changed", GTK_SIGNAL_FUNC (sig_script_changed), prefs); - gtk_signal_connect (GTK_OBJECT (gnome_file_entry_gtk_entry (prefs->sig_script)), - "activate", GTK_SIGNAL_FUNC (sig_script_activate), prefs); - + /* preview GtkHTML widget */ widget = glade_xml_get_widget (gui, "scrolled-sig"); prefs->sig_preview = (GtkHTML *) gtk_html_new (); diff --git a/mail/mail-composer-prefs.h b/mail/mail-composer-prefs.h index a23cfbfbcc..885baa6f9c 100644 --- a/mail/mail-composer-prefs.h +++ b/mail/mail-composer-prefs.h @@ -102,11 +102,6 @@ struct _MailComposerPrefs { GtkButton *sig_add; GtkButton *sig_edit; GtkButton *sig_delete; - GtkToggleButton *sig_random; - GtkToggleButton *sig_advanced; - GtkToggleButton *sig_html; - GnomeFileEntry *sig_filename; - GnomeFileEntry *sig_script; GtkHTML *sig_preview; gboolean sig_switch; int sig_row; diff --git a/mail/mail-config.c b/mail/mail-config.c index 316f945d59..673c8f2bbd 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -128,7 +128,6 @@ typedef struct { GList *signature_list; int signatures; - int signatures_random; MailConfigLabel labels[5]; } MailConfig; @@ -155,7 +154,6 @@ signature_copy (const MailConfigSignature *sig) ns->name = g_strdup (sig->name); ns->filename = g_strdup (sig->filename); ns->script = g_strdup (sig->script); - ns->random = sig->random; ns->html = sig->html; return ns; @@ -183,10 +181,8 @@ identity_copy (const MailConfigIdentity *id) new->address = g_strdup (id->address); new->reply_to = g_strdup (id->reply_to); new->organization = g_strdup (id->organization); - new->text_signature = id->text_signature; - new->text_random = id->text_random; - new->html_signature = id->html_signature; - new->html_random = id->html_random; + new->def_signature = id->def_signature; + new->auto_signature = id->auto_signature; return new; } @@ -413,11 +409,7 @@ config_read_signature (gint i) sig->script = val; else g_free (val); - - path = g_strdup_printf ("/Mail/Signatures/random_%d", i); - sig->random = bonobo_config_get_boolean_with_default (config->db, path, FALSE, NULL); - g_free (path); - + path = g_strdup_printf ("/Mail/Signatures/html_%d", i); sig->html = bonobo_config_get_boolean_with_default (config->db, path, FALSE, NULL); g_free (path); @@ -432,14 +424,11 @@ config_read_signatures () gint i; config->signature_list = NULL; - config->signatures_random = 0; config->signatures = bonobo_config_get_long_with_default (config->db, "/Mail/Signatures/num", 0, NULL); for (i = 0; i < config->signatures; i ++) { sig = config_read_signature (i); config->signature_list = g_list_append (config->signature_list, sig); - if (sig->random) - config->signatures_random ++; } } @@ -462,10 +451,6 @@ config_write_signature (MailConfigSignature *sig, gint i) bonobo_config_set_string (config->db, path, sig->script ? sig->script : "", NULL); g_free (path); - path = g_strdup_printf ("/Mail/Signatures/random_%d", i); - bonobo_config_set_boolean (config->db, path, sig->random, NULL); - g_free (path); - path = g_strdup_printf ("/Mail/Signatures/html_%d", i); bonobo_config_set_boolean (config->db, path, sig->html, NULL); g_free (path); @@ -736,22 +721,15 @@ config_read (void) g_free (path); /* id signatures */ - path = g_strdup_printf ("/Mail/Accounts/identity_signature_text_%d", i); - id->text_signature = lookup_signature (bonobo_config_get_long_with_default (config->db, path, -1, NULL)); - g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_html_%d", i); - id->html_signature = lookup_signature (bonobo_config_get_long_with_default (config->db, path, -1, NULL)); + path = g_strdup_printf ("/Mail/Accounts/identity_def_signature_%d", i); + id->def_signature = lookup_signature (bonobo_config_get_long_with_default (config->db, path, -1, NULL)); g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_text_random_%d", i); - id->text_random = bonobo_config_get_boolean_with_default (config->db, path, FALSE, NULL); - g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_html_random_%d", i); - id->html_random = bonobo_config_get_boolean_with_default (config->db, path, FALSE, NULL); + + /* autogenerated signature */ + path = g_strdup_printf ("/Mail/Accounts/identity_autogenerated_signature_%d", i); + id->auto_signature = bonobo_config_get_boolean_with_default (config->db, path, TRUE, NULL); g_free (path); - + /* get the source */ source = g_new0 (MailConfigService, 1); @@ -1011,22 +989,9 @@ mail_config_write_account_sig (MailConfigAccount *account, gint i) } /* id signatures */ - path = g_strdup_printf ("/Mail/Accounts/identity_signature_text_%d", i); - bonobo_config_set_long (config->db, path, account->id->text_signature - ? account->id->text_signature->id : -1, NULL); - g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_html_%d", i); - bonobo_config_set_long (config->db, path, account->id->html_signature - ? account->id->html_signature->id : -1, NULL); - g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_text_random_%d", i); - bonobo_config_set_boolean (config->db, path, account->id->text_random, NULL); - g_free (path); - - path = g_strdup_printf ("/Mail/Accounts/identity_signature_html_random_%d", i); - bonobo_config_set_boolean (config->db, path, account->id->html_random, NULL); + path = g_strdup_printf ("/Mail/Accounts/identity_def_signature_%d", i); + bonobo_config_set_long (config->db, path, account->id->def_signature + ? account->id->def_signature->id : -1, NULL); g_free (path); } @@ -1142,6 +1107,10 @@ mail_config_write (void) g_free (path); mail_config_write_account_sig (account, i); + + path = g_strdup_printf ("/Mail/Accounts/identity_autogenerated_signature_%d", i); + bonobo_config_set_boolean (config->db, path, account->id->auto_signature, NULL); + g_free (path); /* source info */ path = g_strdup_printf ("/Mail/Accounts/source_url_%d", i); @@ -2890,10 +2859,8 @@ mail_config_signature_delete (MailConfigSignature *sig) account = (MailConfigAccount *) al->data; - if (account->id->text_signature == sig) - account->id->text_signature = NULL; - if (account->id->html_signature == sig) - account->id->html_signature = NULL; + if (account->id->def_signature == sig) + account->id->def_signature = NULL; } for (l = config->signature_list; l; l = next) { @@ -2904,8 +2871,6 @@ mail_config_signature_delete (MailConfigSignature *sig) config->signature_list = g_list_remove_link (config->signature_list, l); after = TRUE; config->signatures --; - if (sig->random) - config->signatures_random --; } } @@ -2944,30 +2909,6 @@ mail_config_signature_set_name (MailConfigSignature *sig, const gchar *name) mail_config_signature_emit_event (MAIL_CONFIG_SIG_EVENT_NAME_CHANGED, sig); } -void -mail_config_signature_set_random (MailConfigSignature *sig, gboolean random) -{ - if (random != sig->random) { - if (random && !sig->random) { - config->signatures_random ++; - if (config->signatures_random == 1) - mail_config_signature_emit_event (MAIL_CONFIG_SIG_EVENT_RANDOM_ON, sig); - } else if (!random && sig->random) { - config->signatures_random --; - if (config->signatures_random == 0) - mail_config_signature_emit_event (MAIL_CONFIG_SIG_EVENT_RANDOM_OFF, sig); - } - sig->random = random; - mail_config_signature_write (sig); - } -} - -gint -mail_config_get_signatures_random (void) -{ - return config->signatures_random; -} - static GList *clients = NULL; void diff --git a/mail/mail-config.glade b/mail/mail-config.glade index e4dd881ee7..cab9d8f94c 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -511,7 +511,7 @@ For example: "Work" or "Personal" GtkLabel - label-sig-text + sigLabel GTK_JUSTIFY_LEFT False @@ -611,12 +611,10 @@ For example: "Work" or "Personal" - GtkAlignment - alignment27 - 0 - 0.5 - 0 - 1 + GtkHBox + hbox169 + False + 5 1 2 @@ -624,24 +622,49 @@ For example: "Work" or "Personal" 3 0 0 - True + False False False False True - False + True GtkOptionMenu - optionmenu2 + sigOption True Default Signature #1 Signature #2 +xxxxxxxxxxxxxxxxxxxx 0 + + 0 + False + False + + + + + GtkButton + sigAddNew + True + + clicked + sigAddNewClicked + Tue, 04 Jun 2002 19:50:56 GMT + + + GTK_RELIEF_NORMAL + + 0 + False + False + GTK_PACK_END + @@ -4080,7 +4103,6 @@ Baltic (ISO-8859-4) GtkHBox hbox161 - 3 False 3 @@ -4116,7 +4138,7 @@ Baltic (ISO-8859-4) GtkLabel CList:title label448 - + GTK_JUSTIFY_LEFT False 0.5 @@ -4139,6 +4161,23 @@ Baltic (ISO-8859-4) False + + GtkLabel + label455 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 0 + False + False + + + GtkVButtonBox vbuttonbox25 @@ -4159,106 +4198,49 @@ Baltic (ISO-8859-4) cmdSignatureAdd True True - + GTK_RELIEF_NORMAL GtkButton - cmdSignatureEdit + cmdSignatureAddScript True True - + GTK_RELIEF_NORMAL GtkButton - cmdSignatureDelete - True - True - - GTK_RELIEF_NORMAL - - - - GtkButton - button1 + cmdSignatureEdit True True - + GTK_RELIEF_NORMAL GtkButton - button2 + cmdSignatureDelete True True - + GTK_RELIEF_NORMAL - - GtkHBox - hbox165 - False - 0 - - 0 - False - False - - - - GtkLabel - label449 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 3 - 0 - optionmenu1 - - 0 - False - False - - - - - GtkOptionMenu - optionmenu1 - True - Random - -Signature #1 -Signature #2 - - 0 - - 0 - False - False - - - - GtkHBox hbox162 - 3 False 3 0 - True - True + False + False @@ -4892,4 +4874,264 @@ Signature #2 + + GnomeDialog + add_script_signature + False + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + False + False + False + False + + + GtkVBox + GnomeDialog:vbox + dialog-vbox1 + False + 8 + + 4 + True + True + + + + GtkHButtonBox + GnomeDialog:action_area + dialog-action_area1 + GTK_BUTTONBOX_END + 8 + 85 + 27 + 7 + 0 + + 0 + False + True + GTK_PACK_END + + + + GtkButton + button4 + True + True + + + + + GtkButton + button5 + True + True + GNOME_STOCK_BUTTON_CANCEL + + + + + GtkVBox + vbox160 + False + 0 + + 0 + True + True + + + + GtkFrame + frame5 + 3 + + 0 + GTK_SHADOW_ETCHED_IN + + 0 + True + True + + + + GtkVBox + vbox161 + 3 + False + 3 + + + GtkHBox + hbox171 + False + 0 + + 0 + False + False + + + + GnomePixmap + pixmap1 + info.png + + 0 + True + True + + + + + GtkLabel + label456 + + GTK_JUSTIFY_LEFT + True + 0 + 0.5 + 0 + 0 + + 0 + False + False + + + + + + GtkTable + table9 + 2 + 2 + False + 3 + 3 + + 0 + True + True + + + + GtkLabel + label459 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + + 0 + 1 + 0 + 1 + 0 + 0 + False + False + False + False + True + False + + + + + GtkLabel + label460 + + GTK_JUSTIFY_CENTER + False + 0 + 0.5 + 0 + 0 + + 0 + 1 + 1 + 2 + 0 + 0 + False + False + False + False + True + False + + + + + GtkEntry + entry1 + True + True + True + 0 + + + 1 + 2 + 0 + 1 + 0 + 0 + True + False + False + False + True + False + + + + + GnomeFileEntry + fileentry1 + 10 + False + False + + 1 + 2 + 1 + 2 + 0 + 0 + True + False + False + False + True + False + + + + GtkEntry + GnomeEntry:entry + combo-entry2 + True + True + True + 0 + + + + + + + + + + diff --git a/mail/mail-config.h b/mail/mail-config.h index bfcd442344..92f2073a32 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -36,7 +36,6 @@ typedef struct { char *name; char *filename; char *script; - gboolean random; gboolean html; } MailConfigSignature; @@ -46,10 +45,8 @@ typedef struct { char *reply_to; char *organization; - MailConfigSignature *text_signature; - gboolean text_random; - MailConfigSignature *html_signature; - gboolean html_random; + MailConfigSignature *def_signature; + gboolean auto_signature; } MailConfigIdentity; typedef struct { @@ -287,21 +284,17 @@ gboolean mail_config_check_service (const char *url, CamelProviderType type, GLi gboolean evolution_mail_config_factory_init (void); GList * mail_config_get_signature_list (void); -gint mail_config_get_signatures_random (void); MailConfigSignature *mail_config_signature_add (gboolean html); void mail_config_signature_delete (MailConfigSignature *sig); void mail_config_signature_write (MailConfigSignature *sig); void mail_config_signature_set_name (MailConfigSignature *sig, const gchar *name); void mail_config_signature_set_html (MailConfigSignature *sig, gboolean html); void mail_config_signature_set_filename (MailConfigSignature *sig, const gchar *filename); -void mail_config_signature_set_random (MailConfigSignature *sig, gboolean random); typedef enum { MAIL_CONFIG_SIG_EVENT_NAME_CHANGED, MAIL_CONFIG_SIG_EVENT_CONTENT_CHANGED, MAIL_CONFIG_SIG_EVENT_HTML_CHANGED, - MAIL_CONFIG_SIG_EVENT_RANDOM_ON, - MAIL_CONFIG_SIG_EVENT_RANDOM_OFF, MAIL_CONFIG_SIG_EVENT_ADDED, MAIL_CONFIG_SIG_EVENT_DELETED } MailConfigSigEvent; -- cgit v1.2.3