talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 0ee16468e9bfc1accabe0034251a9a5d7a53d481
parent 11cdedccf39449396462b62ad48b55be01bd055d
Author: Oliver Lowe <o@olowe.co>
Date:   Sun, 31 Aug 2025 11:42:00 +1000

Delete compose, reply etc. templates per folder item

Write mail like a human

Diffstat:
Msrc/compose.c | 181+++++--------------------------------------------------------------------------
Msrc/compose.h | 1-
Msrc/folder_item_prefs.c | 49-------------------------------------------------
Msrc/folder_item_prefs.h | 11-----------
Msrc/prefs_folder_item.c | 304-------------------------------------------------------------------------------
Msrc/textview.c | 30+++---------------------------
6 files changed, 13 insertions(+), 563 deletions(-)

diff --git a/src/compose.c b/src/compose.c @@ -864,36 +864,7 @@ Compose *compose_generic_new(PrefsAccount *account, const gchar *mailto, FolderI if (mailto_from) { gtk_entry_set_text(GTK_ENTRY(compose->from_name), mailto_from); g_free(mailto_from); - } else - /* override from name according to folder properties */ - if (item && item->prefs && - item->prefs->compose_with_format && - item->prefs->compose_override_from_format && - *item->prefs->compose_override_from_format != '\0') { - - gchar *tmp = NULL; - gchar *buf = NULL; - - dummyinfo = compose_msginfo_new_from_compose(compose); - - /* decode \-escape sequences in the internal representation of the quote format */ - tmp = g_malloc(strlen(item->prefs->compose_override_from_format)+1); - pref_get_unescaped_pref(tmp, item->prefs->compose_override_from_format); - quote_fmt_init(dummyinfo, NULL, NULL, FALSE, compose->account, FALSE); - quote_fmt_scan_string(tmp); - quote_fmt_parse(); - - buf = quote_fmt_get_buffer(); - if (buf == NULL) - alertpanel_error(_("New message From format error.")); - else - gtk_entry_set_text(GTK_ENTRY(compose->from_name), buf); - quote_fmt_reset_vartable(); - quote_fmtlex_destroy(); - - g_free(tmp); - } - + } compose->replyinfo = NULL; compose->fwdinfo = NULL; @@ -915,10 +886,7 @@ Compose *compose_generic_new(PrefsAccount *account, const gchar *mailto, FolderI compose_add_field_list( compose, listAddress ); - if (item && item->prefs && item->prefs->compose_with_format) { - subject_format = item->prefs->compose_subject_format; - body_format = item->prefs->compose_body_format; - } else if (account->compose_with_format) { + if (account->compose_with_format) { subject_format = account->compose_subject_format; body_format = account->compose_body_format; } else if (prefs_common.compose_with_format) { @@ -1401,35 +1369,6 @@ static Compose *compose_generic_reply(MsgInfo *msginfo, return NULL; } - /* override from name according to folder properties */ - if (msginfo->folder && msginfo->folder->prefs && - msginfo->folder->prefs->reply_with_format && - msginfo->folder->prefs->reply_override_from_format && - *msginfo->folder->prefs->reply_override_from_format != '\0') { - - gchar *tmp = NULL; - gchar *buf = NULL; - - /* decode \-escape sequences in the internal representation of the quote format */ - tmp = g_malloc(strlen(msginfo->folder->prefs->reply_override_from_format)+1); - pref_get_unescaped_pref(tmp, msginfo->folder->prefs->reply_override_from_format); - - - quote_fmt_init(compose->replyinfo, NULL, NULL, FALSE, compose->account, FALSE); - quote_fmt_scan_string(tmp); - quote_fmt_parse(); - - buf = quote_fmt_get_buffer(); - if (buf == NULL) - alertpanel_error(_("The \"From\" field of the \"Reply\" template contains an invalid email address.")); - else - gtk_entry_set_text(GTK_ENTRY(compose->from_name), buf); - quote_fmt_reset_vartable(); - quote_fmtlex_destroy(); - - g_free(tmp); - } - textview = (GTK_TEXT_VIEW(compose->text)); textbuf = gtk_text_view_get_buffer(textview); compose_create_tags(textview, compose); @@ -1442,18 +1381,11 @@ static Compose *compose_generic_reply(MsgInfo *msginfo, (if enabled) or fallback to the global reply format, which is always enabled (even if empty). */ quote = TRUE; - if (msginfo->folder && msginfo->folder->prefs && - msginfo->folder->prefs->reply_with_format) { - body_fmt = msginfo->folder->prefs->reply_body_format; - - } else if (account->reply_with_format) { + body_fmt = ""; + if (account->reply_with_format) { body_fmt = account->reply_body_format; - - } else { - if (prefs_common.quotefmt && *prefs_common.quotefmt) - body_fmt = gettext(prefs_common.quotefmt); - else - body_fmt = ""; + } else if (prefs_common.quotefmt && *prefs_common.quotefmt) { + body_fmt = gettext(prefs_common.quotefmt); } } @@ -1574,41 +1506,6 @@ Compose *compose_forward(PrefsAccount *account, MsgInfo *msginfo, g_free(buf2); } - /* override from name according to folder properties */ - if (msginfo->folder && msginfo->folder->prefs && - msginfo->folder->prefs->forward_with_format && - msginfo->folder->prefs->forward_override_from_format && - *msginfo->folder->prefs->forward_override_from_format != '\0') { - - gchar *tmp = NULL; - gchar *buf = NULL; - MsgInfo *full_msginfo = NULL; - - if (!as_attach) - full_msginfo = procmsg_msginfo_get_full_info(msginfo); - if (!full_msginfo) - full_msginfo = procmsg_msginfo_copy(msginfo); - - /* decode \-escape sequences in the internal representation of the quote format */ - tmp = g_malloc(strlen(msginfo->folder->prefs->forward_override_from_format)+1); - pref_get_unescaped_pref(tmp, msginfo->folder->prefs->forward_override_from_format); - - quote_fmt_init(full_msginfo, NULL, NULL, FALSE, compose->account, FALSE); - quote_fmt_scan_string(tmp); - quote_fmt_parse(); - - buf = quote_fmt_get_buffer(); - if (buf == NULL) - alertpanel_error(_("The \"From\" field of the \"Forward\" template contains an invalid email address.")); - else - gtk_entry_set_text(GTK_ENTRY(compose->from_name), buf); - quote_fmt_reset_vartable(); - quote_fmtlex_destroy(); - - g_free(tmp); - procmsg_msginfo_free(&full_msginfo); - } - textview = GTK_TEXT_VIEW(compose->text); textbuf = gtk_text_view_get_buffer(textview); compose_create_tags(textview, compose); @@ -1626,29 +1523,17 @@ Compose *compose_forward(PrefsAccount *account, MsgInfo *msginfo, g_free(msgfile); } else { - const gchar *body_fmt = NULL; MsgInfo *full_msginfo; full_msginfo = procmsg_msginfo_get_full_info(msginfo); if (!full_msginfo) full_msginfo = procmsg_msginfo_copy(msginfo); - /* - * use the forward format of folder (if enabled), or the account's one - * (if enabled) or fallback to the global forward format, which is always - * enabled (even if empty). - */ - if (msginfo->folder && msginfo->folder->prefs && - msginfo->folder->prefs->forward_with_format) { - body_fmt = msginfo->folder->prefs->forward_body_format; - - } else if (account->forward_with_format) { + gchar *body_fmt = ""; + if (account->forward_with_format) { body_fmt = account->forward_body_format; - } else { - if (prefs_common.fw_quotefmt && *prefs_common.fw_quotefmt) - body_fmt = gettext(prefs_common.fw_quotefmt); - else - body_fmt = ""; + } else if (prefs_common.fw_quotefmt && *prefs_common.fw_quotefmt) { + body_fmt = gettext(prefs_common.fw_quotefmt); } compose_quote_fmt(compose, full_msginfo, @@ -1761,37 +1646,6 @@ static Compose *compose_forward_multiple(PrefsAccount *account, GSList *msginfo_ compose->updating = TRUE; - /* override from name according to folder properties */ - if (msginfo_list->data) { - MsgInfo *msginfo = msginfo_list->data; - - if (msginfo->folder && msginfo->folder->prefs && - msginfo->folder->prefs->forward_with_format && - msginfo->folder->prefs->forward_override_from_format && - *msginfo->folder->prefs->forward_override_from_format != '\0') { - - gchar *tmp = NULL; - gchar *buf = NULL; - - /* decode \-escape sequences in the internal representation of the quote format */ - tmp = g_malloc(strlen(msginfo->folder->prefs->forward_override_from_format)+1); - pref_get_unescaped_pref(tmp, msginfo->folder->prefs->forward_override_from_format); - quote_fmt_init(msginfo, NULL, NULL, FALSE, compose->account, FALSE); - quote_fmt_scan_string(tmp); - quote_fmt_parse(); - - buf = quote_fmt_get_buffer(); - if (buf == NULL) - alertpanel_error(_("The \"From\" field of the \"Forward\" template contains an invalid email address.")); - else - gtk_entry_set_text(GTK_ENTRY(compose->from_name), buf); - quote_fmt_reset_vartable(); - quote_fmtlex_destroy(); - - g_free(tmp); - } - } - textview = GTK_TEXT_VIEW(compose->text); textbuf = gtk_text_view_get_buffer(textview); compose_create_tags(textview, compose); @@ -3844,7 +3698,6 @@ static gchar * compose_get_itemized_chars(GtkTextBuffer *buffer, { GtkTextIter iter = *start; gunichar wc; - gint len = 0; GString *item_chars = g_string_new(""); if (gtk_text_iter_ends_line(&iter)) { @@ -3853,7 +3706,6 @@ static gchar * compose_get_itemized_chars(GtkTextBuffer *buffer, } while (1) { - len++; wc = gtk_text_iter_get_char(&iter); if (!g_unichar_isspace(wc)) break; @@ -4137,7 +3989,6 @@ static gboolean compose_beautify_paragraph(Compose *compose, GtkTextIter *par_it gboolean modified = force; gboolean removed = FALSE; gboolean modified_before_remove = FALSE; - gint lines = 0; gboolean start = TRUE; gint itemized_len = 0, rem_item_len = 0; gchar *itemized_chars = NULL; @@ -4336,7 +4187,6 @@ static gboolean compose_beautify_paragraph(Compose *compose, GtkTextIter *par_it } else { /* move iter to next line start */ iter = break_pos; - lines++; } colorize: @@ -4701,7 +4551,6 @@ static void compose_select_account(Compose *compose, PrefsAccount *account, gboolean compose_check_for_valid_recipient(Compose *compose) { gchar *recipient_headers_mail[] = {"To:", "Cc:", "Bcc:", NULL}; - gchar *recipient_headers_news[] = {"Newsgroups:", NULL}; gboolean recipient_found = FALSE; GSList *list; gchar **strptr; @@ -10855,15 +10704,6 @@ void compose_reply_from_messageview(MessageView *msgview, GSList *msginfo_list, } } -void compose_check_for_email_account(Compose *compose) -{ - PrefsAccount *ac = NULL, *curr = NULL; - GList *list; - - if (!compose) - return; -} - void compose_reply_to_address(MessageView *msgview, MsgInfo *msginfo, const gchar *address) { @@ -10874,7 +10714,6 @@ void compose_reply_to_address(MessageView *msgview, MsgInfo *msginfo, msginfo_list = g_slist_prepend(msginfo_list, msginfo); compose = compose_reply_mode(COMPOSE_REPLY_TO_ADDRESS, msginfo_list, body); - compose_check_for_email_account(compose); compose_set_folder_prefs(compose, msginfo->folder, FALSE); compose_entry_append(compose, address, COMPOSE_TO, PREF_NONE); compose_reply_set_subject(compose, msginfo); diff --git a/src/compose.h b/src/compose.h @@ -339,7 +339,6 @@ void compose_close_toolbar (Compose *compose); void compose_clear_exit_drafts (void); void compose_reopen_exit_drafts (void); void compose_attach_from_list (Compose *compose, GList *file_list, gboolean free_data); -void compose_check_for_email_account(Compose *compose); void compose_use_signing(Compose *compose, gboolean use_signing); void compose_use_encryption(Compose *compose, gboolean use_encryption); diff --git a/src/folder_item_prefs.c b/src/folder_item_prefs.c @@ -98,26 +98,6 @@ static PrefParam param[] = { {"skip_on_goto_unread_or_new", "FALSE", &tmp_prefs.skip_on_goto_unread_or_new, P_BOOL, NULL, NULL, NULL}, - {"compose_with_format", "FALSE", &tmp_prefs.compose_with_format, P_BOOL, - NULL, NULL, NULL}, - {"compose_override_from_format", NULL, &tmp_prefs.compose_override_from_format, P_STRING, - NULL, NULL, NULL}, - {"compose_subject_format", NULL, &tmp_prefs.compose_subject_format, P_STRING, - NULL, NULL, NULL}, - {"compose_body_format", NULL, &tmp_prefs.compose_body_format, P_STRING, - NULL, NULL, NULL}, - {"reply_with_format", "FALSE", &tmp_prefs.reply_with_format, P_BOOL, - NULL, NULL, NULL}, - {"reply_override_from_format", NULL, &tmp_prefs.reply_override_from_format, P_STRING, - NULL, NULL, NULL}, - {"reply_body_format", NULL, &tmp_prefs.reply_body_format, P_STRING, - NULL, NULL, NULL}, - {"forward_with_format", "FALSE", &tmp_prefs.forward_with_format, P_BOOL, - NULL, NULL, NULL}, - {"forward_override_from_format", NULL, &tmp_prefs.forward_override_from_format, P_STRING, - NULL, NULL, NULL}, - {"forward_body_format", NULL, &tmp_prefs.forward_body_format, P_STRING, - NULL, NULL, NULL}, {"config_version", "-1", &tmp_prefs.config_version, P_INT, NULL, NULL, NULL}, {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL} @@ -213,17 +193,6 @@ static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs) prefs->render_html = HTML_RENDER_DEFAULT; prefs->promote_html_part = HTML_PROMOTE_DEFAULT; prefs->skip_on_goto_unread_or_new = FALSE; - - prefs->compose_with_format = FALSE; - prefs->compose_subject_format = NULL; - prefs->compose_body_format = NULL; - prefs->compose_override_from_format = NULL; - prefs->reply_with_format = FALSE; - prefs->reply_body_format = NULL; - prefs->reply_override_from_format = NULL; - prefs->forward_with_format = FALSE; - prefs->forward_body_format = NULL; - prefs->forward_override_from_format = NULL; return prefs; } @@ -244,13 +213,6 @@ void folder_item_prefs_free(FolderItemPrefs * prefs) g_free(prefs->default_cc); g_free(prefs->default_bcc); g_free(prefs->default_replyto); - g_free(prefs->compose_subject_format); - g_free(prefs->compose_body_format); - g_free(prefs->compose_override_from_format); - g_free(prefs->reply_body_format); - g_free(prefs->reply_override_from_format); - g_free(prefs->forward_body_format); - g_free(prefs->forward_override_from_format); g_free(prefs); } @@ -301,17 +263,6 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest) tmp_prefs.save_copy_to_folder = src->prefs->save_copy_to_folder; tmp_prefs.color = src->prefs->color; - tmp_prefs.compose_with_format = src->prefs->compose_with_format; - tmp_prefs.compose_subject_format = g_strdup(src->prefs->compose_subject_format); - tmp_prefs.compose_body_format = g_strdup(src->prefs->compose_body_format); - tmp_prefs.compose_override_from_format = g_strdup(src->prefs->compose_override_from_format); - tmp_prefs.reply_with_format = src->prefs->reply_with_format; - tmp_prefs.reply_body_format = g_strdup(src->prefs->reply_body_format); - tmp_prefs.reply_override_from_format = g_strdup(src->prefs->reply_override_from_format); - tmp_prefs.forward_with_format = src->prefs->forward_with_format; - tmp_prefs.forward_body_format = g_strdup(src->prefs->forward_body_format); - tmp_prefs.forward_override_from_format = g_strdup(src->prefs->forward_override_from_format); - *dest->prefs = tmp_prefs; folder_item_prefs_save_config(dest); prefs_matcher_write_config(); diff --git a/src/folder_item_prefs.h b/src/folder_item_prefs.h @@ -84,17 +84,6 @@ struct _FolderItemPrefs { SignOrEncryptType always_encrypt; gboolean save_copy_to_folder; GdkRGBA color; - - gboolean compose_with_format; - gchar *compose_override_from_format; - gchar *compose_subject_format; - gchar *compose_body_format; - gboolean reply_with_format; - gchar *reply_override_from_format; - gchar *reply_body_format; - gboolean forward_with_format; - gchar *forward_override_from_format; - gchar *forward_body_format; }; void folder_item_prefs_read_config(FolderItem * item); diff --git a/src/prefs_folder_item.c b/src/prefs_folder_item.c @@ -57,7 +57,6 @@ typedef struct _FolderItemGeneralPage FolderItemGeneralPage; typedef struct _FolderItemComposePage FolderItemComposePage; -typedef struct _FolderItemTemplatesPage FolderItemTemplatesPage; static gboolean can_save = TRUE; struct _FolderItemGeneralPage @@ -145,39 +144,11 @@ struct _FolderItemComposePage GtkWidget *always_encrypt_rec_checkbtn; }; -struct _FolderItemTemplatesPage -{ - PrefsPage page; - - FolderItem *item; - - GtkWidget *window; - GtkWidget *table; - GtkWidget *checkbtn_compose_with_format; - GtkWidget *compose_override_from_format; - GtkWidget *compose_subject_format; - GtkWidget *compose_body_format; - GtkWidget *checkbtn_reply_with_format; - GtkWidget *reply_override_from_format; - GtkWidget *reply_body_format; - GtkWidget *checkbtn_forward_with_format; - GtkWidget *forward_override_from_format; - GtkWidget *forward_body_format; - - /* apply to sub folders */ - GtkWidget *new_msg_format_rec_checkbtn; - GtkWidget *reply_format_rec_checkbtn; - GtkWidget *forward_format_rec_checkbtn; -}; - - static void general_save_folder_prefs(FolderItem *folder, FolderItemGeneralPage *page); static void compose_save_folder_prefs(FolderItem *folder, FolderItemComposePage *page); -static void templates_save_folder_prefs(FolderItem *folder, FolderItemTemplatesPage *page); static gboolean general_save_recurse_func(GNode *node, gpointer data); static gboolean compose_save_recurse_func(GNode *node, gpointer data); -static gboolean templates_save_recurse_func(GNode *node, gpointer data); static void clean_cache_cb(GtkWidget *widget, gpointer data); static void folder_regexp_test_cb(GtkWidget *widget, gpointer data); @@ -1423,264 +1394,6 @@ static void prefs_folder_item_compose_save_func(PrefsPage *page_) } -static void prefs_folder_item_templates_create_widget_func(PrefsPage * page_, - GtkWindow * window, - gpointer data) -{ - FolderItemTemplatesPage *page = (FolderItemTemplatesPage *) page_; - FolderItem *item = (FolderItem *) data; - - GtkWidget *notebook; - GtkWidget *vbox; - GtkWidget *page_vbox; - GtkWidget *no_save_warning; - GtkWidget *new_msg_format_rec_checkbtn; - GtkWidget *reply_format_rec_checkbtn; - GtkWidget *forward_format_rec_checkbtn; - GtkWidget *hbox; - GtkWidget *vbox_format; - - page->item = item; - - page_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_container_set_border_width (GTK_CONTAINER (page_vbox), VBOX_BORDER); - gtk_widget_show (page_vbox); - - if (!can_save) { - no_save_warning = prefs_folder_no_save_warning_create_widget(); - gtk_box_pack_start(GTK_BOX(page_vbox), - no_save_warning, FALSE, FALSE, 0); - } - - /* Notebook */ - notebook = gtk_notebook_new(); - gtk_widget_show(notebook); - gtk_box_pack_start(GTK_BOX(page_vbox), notebook, TRUE, TRUE, 4); - - /* compose format */ - vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING); - gtk_widget_show (vbox); - gtk_container_set_border_width (GTK_CONTAINER (vbox), VBOX_BORDER); - - quotefmt_create_new_msg_fmt_widgets( - window, - vbox, - &page->checkbtn_compose_with_format, - &page->compose_override_from_format, - &page->compose_subject_format, - &page->compose_body_format, - FALSE, FALSE); - address_completion_register_entry(GTK_ENTRY(page->compose_override_from_format), - TRUE); - - vbox_format = gtk_widget_get_parent( - gtk_widget_get_parent(page->compose_body_format)); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_end (GTK_BOX(vbox_format), hbox, FALSE, FALSE, 0); - quotefmt_add_info_button(window, hbox); - - new_msg_format_rec_checkbtn = gtk_check_button_new_with_label( - _("Apply to subfolders")); - gtk_box_pack_end (GTK_BOX(hbox), new_msg_format_rec_checkbtn, FALSE, FALSE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(C_("Templates", "New"))); - - /* reply format */ - vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING); - gtk_widget_show (vbox); - gtk_container_set_border_width (GTK_CONTAINER (vbox), VBOX_BORDER); - - quotefmt_create_reply_fmt_widgets( - window, - vbox, - &page->checkbtn_reply_with_format, - &page->reply_override_from_format, - &page->reply_body_format, - FALSE, FALSE); - address_completion_register_entry(GTK_ENTRY(page->reply_override_from_format), - TRUE); - - vbox_format = gtk_widget_get_parent( - gtk_widget_get_parent(page->reply_body_format)); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_end (GTK_BOX(vbox_format), hbox, FALSE, FALSE, 0); - quotefmt_add_info_button(window, hbox); - - reply_format_rec_checkbtn = gtk_check_button_new_with_label( - _("Apply to subfolders")); - gtk_box_pack_end (GTK_BOX(hbox), reply_format_rec_checkbtn, FALSE, FALSE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(C_("Templates", "Reply"))); - - /* forward format */ - vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, VSPACING); - gtk_widget_show (vbox); - gtk_container_set_border_width (GTK_CONTAINER (vbox), VBOX_BORDER); - - quotefmt_create_forward_fmt_widgets( - window, - vbox, - &page->checkbtn_forward_with_format, - &page->forward_override_from_format, - &page->forward_body_format, - FALSE, FALSE); - address_completion_register_entry(GTK_ENTRY(page->forward_override_from_format), - TRUE); - - vbox_format = gtk_widget_get_parent( - gtk_widget_get_parent(page->forward_body_format)); - - hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_end (GTK_BOX(vbox_format), hbox, FALSE, FALSE, 0); - quotefmt_add_info_button(window, hbox); - - forward_format_rec_checkbtn = gtk_check_button_new_with_label( - _("Apply to subfolders")); - gtk_box_pack_end (GTK_BOX(hbox), forward_format_rec_checkbtn, FALSE, FALSE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(C_("Templates", "Forward"))); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->checkbtn_compose_with_format), - item->prefs->compose_with_format); - pref_set_entry_from_pref(GTK_ENTRY(page->compose_override_from_format), - item->prefs->compose_override_from_format); - pref_set_entry_from_pref(GTK_ENTRY(page->compose_subject_format), - item->prefs->compose_subject_format); - pref_set_textview_from_pref(GTK_TEXT_VIEW(page->compose_body_format), - item->prefs->compose_body_format); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->checkbtn_reply_with_format), - item->prefs->reply_with_format); - pref_set_entry_from_pref(GTK_ENTRY(page->reply_override_from_format), - item->prefs->reply_override_from_format); - pref_set_textview_from_pref(GTK_TEXT_VIEW(page->reply_body_format), - item->prefs->reply_body_format); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(page->checkbtn_forward_with_format), - item->prefs->forward_with_format); - pref_set_entry_from_pref(GTK_ENTRY(page->forward_override_from_format), - item->prefs->forward_override_from_format); - pref_set_textview_from_pref(GTK_TEXT_VIEW(page->forward_body_format), - item->prefs->forward_body_format); - - gtk_widget_show_all(page_vbox); - - page->window = GTK_WIDGET(window); - - page->new_msg_format_rec_checkbtn = new_msg_format_rec_checkbtn; - page->reply_format_rec_checkbtn = reply_format_rec_checkbtn; - page->forward_format_rec_checkbtn = forward_format_rec_checkbtn; - - page->page.widget = page_vbox; -} - -static void prefs_folder_item_templates_destroy_widget_func(PrefsPage *page_) -{ - FolderItemTemplatesPage *page = (FolderItemTemplatesPage *) page_; - - if (page->compose_override_from_format) - address_completion_unregister_entry(GTK_ENTRY(page->compose_override_from_format)); - if (page->reply_override_from_format) - address_completion_unregister_entry(GTK_ENTRY(page->reply_override_from_format)); - if (page->forward_override_from_format) - address_completion_unregister_entry(GTK_ENTRY(page->forward_override_from_format)); -} - -/** \brief Save the prefs in page to folder. - * - * If the folder is not the one specified in page->item, then only those properties - * that have the relevant 'apply to sub folders' button checked are saved - */ -static void templates_save_folder_prefs(FolderItem *folder, FolderItemTemplatesPage *page) -{ - FolderItemPrefs *prefs = folder->prefs; - gboolean all = FALSE; - - if (folder->path == NULL) - return; - - if (page->item == folder) - all = TRUE; - - cm_return_if_fail(prefs != NULL); - - /* save and check formats */ - - if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->new_msg_format_rec_checkbtn))) { - - prefs->compose_with_format = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_compose_with_format)); - prefs->compose_override_from_format = pref_get_pref_from_entry( - GTK_ENTRY(page->compose_override_from_format)); - prefs->compose_subject_format = pref_get_pref_from_entry( - GTK_ENTRY(page->compose_subject_format)); - prefs->compose_body_format = pref_get_pref_from_textview( - GTK_TEXT_VIEW(page->compose_body_format)); - quotefmt_check_new_msg_formats(prefs->compose_with_format, - prefs->compose_override_from_format, - prefs->compose_subject_format, - prefs->compose_body_format); - } - - if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->reply_format_rec_checkbtn))) { - prefs->reply_with_format = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_reply_with_format)); - prefs->reply_override_from_format = pref_get_pref_from_entry( - GTK_ENTRY(page->reply_override_from_format)); - prefs->reply_body_format = pref_get_pref_from_textview( - GTK_TEXT_VIEW(page->reply_body_format)); - quotefmt_check_reply_formats(prefs->reply_with_format, - prefs->reply_override_from_format, - prefs->reply_body_format); - } - - if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->forward_format_rec_checkbtn))) { - prefs->forward_with_format = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_forward_with_format)); - prefs->forward_override_from_format = pref_get_pref_from_entry( - GTK_ENTRY(page->forward_override_from_format)); - prefs->forward_body_format = pref_get_pref_from_textview( - GTK_TEXT_VIEW(page->forward_body_format)); - quotefmt_check_forward_formats(prefs->forward_with_format, - prefs->forward_override_from_format, - prefs->forward_body_format); - } - - folder_item_prefs_save_config(folder); -} - -static gboolean templates_save_recurse_func(GNode *node, gpointer data) -{ - FolderItem *item = (FolderItem *) node->data; - FolderItemTemplatesPage *page = (FolderItemTemplatesPage *) data; - - cm_return_val_if_fail(item != NULL, TRUE); - cm_return_val_if_fail(page != NULL, TRUE); - - templates_save_folder_prefs(item, page); - - /* optimise by not continuing if none of the 'apply to sub folders' - check boxes are selected - and optimise the checking by only doing - it once */ - if ((node == page->item->node) && - !(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->new_msg_format_rec_checkbtn)) || - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->reply_format_rec_checkbtn)) || - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->forward_format_rec_checkbtn)))) - return TRUE; - else - return FALSE; - - return FALSE; -} - -static void prefs_folder_item_templates_save_func(PrefsPage *page_) -{ - FolderItemTemplatesPage *page = (FolderItemTemplatesPage *) page_; - - g_node_traverse(page->item->node, G_PRE_ORDER, G_TRAVERSE_ALL, - -1, templates_save_recurse_func, page); - -} - static void clean_cache_cb(GtkWidget *widget, gpointer data) { FolderItemGeneralPage *page = (FolderItemGeneralPage *) data; @@ -1832,22 +1545,6 @@ static void register_compose_page(void) prefs_folder_item_register_page((PrefsPage *) &folder_item_compose_page, NULL); } -static void register_templates_page(void) -{ - static gchar *pfi_templates_path[2]; - static FolderItemTemplatesPage folder_item_templates_page; - - pfi_templates_path[0] = _("Templates"); - pfi_templates_path[1] = NULL; - - folder_item_templates_page.page.path = pfi_templates_path; - folder_item_templates_page.page.create_widget = prefs_folder_item_templates_create_widget_func; - folder_item_templates_page.page.destroy_widget = prefs_folder_item_templates_destroy_widget_func; - folder_item_templates_page.page.save_page = prefs_folder_item_templates_save_func; - - prefs_folder_item_register_page((PrefsPage *) &folder_item_templates_page, NULL); -} - static GSList *prefs_pages = NULL; static void prefs_folder_item_address_completion_start(PrefsWindow *window) @@ -1868,7 +1565,6 @@ void prefs_folder_item_open(FolderItem *item) if (prefs_pages == NULL) { register_general_page(); register_compose_page(); - register_templates_page(); } if (item->path) { diff --git a/src/textview.c b/src/textview.c @@ -2196,21 +2196,16 @@ static gboolean textview_uri_button_pressed(GtkTextTag *tag, GObject *obj, } else { PrefsAccount *account = NULL; FolderItem *folder_item = NULL; - Compose *compose; if (textview->messageview && textview->messageview->msginfo && textview->messageview->msginfo->folder) { - - folder_item = textview->messageview->msginfo->folder; if (folder_item->prefs && folder_item->prefs->enable_default_account) account = account_find_from_id(folder_item->prefs->default_account); if (!account) account = account_find_from_item(folder_item); } - compose = compose_new_with_folderitem(account, - folder_item, uri->uri + 7); - compose_check_for_email_account(compose); + compose_new_with_folderitem(account, folder_item, uri->uri + 7); } return TRUE; } else if (g_ascii_strncasecmp(uri->uri, "file:", 5)) { @@ -2432,28 +2427,9 @@ static void reply_to_uri_cb (GtkAction *action, TextView *textview) textview->messageview->msginfo, uri->uri+7); } -static void mail_to_uri_cb (GtkAction *action, TextView *textview) +static void mail_to_uri_cb(GtkAction *action, TextView *textview) { - PrefsAccount *account = NULL; - Compose *compose; - ClickableText *uri = g_object_get_data(G_OBJECT(textview->mail_popup_menu), - "menu_button"); - if (uri == NULL) - return; - - if (textview->messageview && textview->messageview->msginfo && - textview->messageview->msginfo->folder) { - FolderItem *folder_item; - - folder_item = textview->messageview->msginfo->folder; - if (folder_item->prefs && folder_item->prefs->enable_default_account) - account = account_find_from_id(folder_item->prefs->default_account); - - compose = compose_new_with_folderitem(account, folder_item, uri->uri+7); - } else { - compose = compose_new(account, uri->uri + 7, NULL); - } - compose_check_for_email_account(compose); + fprintf(stderr, "TODO(otl): no-op mail_to_uri_cb called, delete me\n"); } static void copy_mail_to_uri_cb (GtkAction *action, TextView *textview)