X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=curs_main.c;h=28921a386c14d1f29d42409b6527bb0c238416db;hp=8686baf879a4472a2064846af612e4ffaccf16b6;hb=ce92f8c407db309ef5c3262cff1bd77d0a91b77d;hpb=7259a4b7e7de67679ee74c966439dbb43602a1f1 diff --git a/curs_main.c b/curs_main.c index 8686baf..28921a3 100644 --- a/curs_main.c +++ b/curs_main.c @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include "mutt.h" #include "mutt_curses.h" #include "mx.h" @@ -533,6 +537,8 @@ int mutt_index_menu (void) mutt_error _("Mailbox was externally modified. Flags may be wrong."); else if (check == M_NEW_MAIL) { + /* on new mail: redraw sidebar */ + draw_sidebar (CurrentMenu); mutt_message _("New mail in this mailbox."); if (option (OPTBEEPNEW)) beep (); @@ -558,8 +564,10 @@ int mutt_index_menu (void) { /* check for new mail in the incoming folders */ oldcount = newcount; - if ((newcount = mutt_buffy_check (0)) != oldcount) + if ((newcount = mutt_buffy_check (0)) != oldcount){ menu->redraw |= REDRAW_STATUS; + menu->redraw |= REDRAW_SIDEBAR; + } if (do_buffy_notify) { if (mutt_buffy_notify () && option (OPTBEEPNEW)) @@ -571,7 +579,7 @@ int mutt_index_menu (void) if (op != -1) mutt_curs_set (0); - + if (menu->redraw & REDRAW_SIDEBAR) draw_sidebar(menu->menu); if (menu->redraw & REDRAW_FULL) { menu_redraw_full (menu); @@ -605,6 +613,7 @@ int mutt_index_menu (void) SETCOLOR (MT_COLOR_STATUS); mutt_paddstr (COLS, buf); SETCOLOR (MT_COLOR_NORMAL); + set_buffystats (Context); menu->redraw &= ~REDRAW_STATUS; if (option(OPTXTERMSETTITLES)) { @@ -1395,7 +1404,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); if ((menu->menu == MENU_MAIN) && (query_quadoption (OPT_QUIT, - _("Exit Mutt without saving?")) == M_YES)) + _("Exit Mutt-ng without saving?")) == M_YES)) { if (Context) { @@ -1422,6 +1431,86 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); menu->redraw = REDRAW_CURRENT; break; + case OP_MAIN_BREAK_THREAD: + + CHECK_MSGCOUNT; + CHECK_VISIBLE; + CHECK_READONLY; + + if ((Sort & SORT_MASK) != SORT_THREADS) + mutt_error _("Threading is not enabled."); + +#if defined (USE_IMAP) && ! defined (IMAP_EDIT_THREADS) + else if (Context->magic == M_IMAP) + mutt_error _("Compile Mutt with --enable-imap-edit-threads for break-thread support"); +#endif + else + { + { + HEADER *oldcur = CURHDR; + + mutt_break_thread (CURHDR); + mutt_sort_headers (Context, 1); + menu->current = oldcur->virtual; + } + + Context->changed = 1; + mutt_message _("Thread broken"); + + if (menu->menu == MENU_PAGER) + { + op = OP_DISPLAY_MESSAGE; + continue; + } + else + menu->redraw |= REDRAW_INDEX; + } + break; + + case OP_MAIN_LINK_THREADS: + + CHECK_MSGCOUNT; + CHECK_VISIBLE; + CHECK_READONLY; + + if ((Sort & SORT_MASK) != SORT_THREADS) + mutt_error _("Threading is not enabled."); + +#if defined (USE_IMAP) && ! defined (IMAP_EDIT_THREADS) + else if (Context->magic == M_IMAP) + mutt_error _("Compile Mutt with --enable-imap-edit-threads for link-threads support"); +#endif + + else if (!CURHDR->env->message_id) + mutt_error _("No Message-ID: header available to link thread"); + else if (!tag && (!Context->last_tag || !Context->last_tag->tagged)) + mutt_error _("First, please tag a message to be linked here"); + else + { + HEADER *oldcur = CURHDR; + + if (mutt_link_threads (CURHDR, tag ? NULL : Context->last_tag, + Context)) + { + mutt_sort_headers (Context, 1); + menu->current = oldcur->virtual; + + Context->changed = 1; + mutt_message _("Threads linked"); + } + else + mutt_error _("No thread linked"); + } + + if (menu->menu == MENU_PAGER) + { + op = OP_DISPLAY_MESSAGE; + continue; + } + else + menu->redraw |= REDRAW_STATUS | REDRAW_INDEX; + break; + case OP_MAIN_NEXT_UNDELETED: CHECK_MSGCOUNT; @@ -2083,6 +2172,8 @@ CHECK_IMAP_ACL(IMAP_ACL_INSERT); } #endif + if (option (OPTPGPAUTODEC) && (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED))) + mutt_check_traditional_pgp (tag ? NULL : CURHDR, &menu->redraw); mutt_edit_message (Context, tag ? NULL : CURHDR); menu->redraw = REDRAW_FULL; @@ -2235,7 +2326,11 @@ CHECK_IMAP_ACL(IMAP_ACL_SEEN); case OP_FORWARD_TO_GROUP: CHECK_ATTACH; - if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || + if ((op == OP_FOLLOWUP || op == OP_FORWARD_TO_GROUP) && + Context && Context->msgcount == 0) { + mutt_error (_("There are no messages.")); + sleep (2); + } else if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || mutt_strcasecmp (CURHDR->env->followup_to, "poster") || query_quadoption (OPT_FOLLOWUPTOPOSTER,_("Reply by mail as poster prefers?")) != M_YES) { @@ -2365,6 +2460,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); case OP_BUFFY_LIST: mutt_buffy_list (); + menu->redraw = REDRAW_FULL; break; case OP_VIEW_ATTACHMENTS: @@ -2387,6 +2483,8 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); case OP_SIDEBAR_SCROLL_DOWN: case OP_SIDEBAR_NEXT: case OP_SIDEBAR_PREV: + case OP_SIDEBAR_NEXT_NEW: + case OP_SIDEBAR_PREV_NEW: scroll_sidebar(op, menu->menu); break; default: