* src/summaryview.c
[claws.git] / src / summaryview.c
index 01ca28618447049d5ba3af2dc1184f979399b6a5..f5fbb8ae2e3fafcdeee55e27e7cfce66f9119c42 100644 (file)
@@ -61,7 +61,6 @@
 #include "sourcewindow.h"
 #include "prefs_common.h"
 #include "prefs_summary_column.h"
-#include "prefs_filter.h"
 #include "prefs_filtering.h"
 #include "account.h"
 #include "compose.h"
@@ -72,7 +71,6 @@
 #include "alertpanel.h"
 #include "inputdialog.h"
 #include "statusbar.h"
-#include "filter.h"
 #include "folder.h"
 #include "colorlabel.h"
 #include "inc.h"
@@ -648,7 +646,7 @@ void summary_init(SummaryView *summaryview)
                small_style = gtk_style_copy
                        (gtk_widget_get_style(summaryview->ctree));
                if (!smallfont)
-                       smallfont = gdk_fontset_load(SMALL_FONT);
+                       smallfont = gtkut_font_load(SMALL_FONT);
                small_style->font = smallfont;
                small_marked_style = gtk_style_copy(small_style);
                small_marked_style->fg[GTK_STATE_NORMAL] =
@@ -661,7 +659,7 @@ void summary_init(SummaryView *summaryview)
                bold_style = gtk_style_copy
                        (gtk_widget_get_style(summaryview->ctree));
                if (!boldfont)
-                       boldfont = gdk_fontset_load(BOLD_FONT);
+                       boldfont = gtkut_font_load(BOLD_FONT);
                bold_style->font = boldfont;
                bold_marked_style = gtk_style_copy(bold_style);
                bold_marked_style->fg[GTK_STATE_NORMAL] =
@@ -790,7 +788,7 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
                gtk_entry_set_text(GTK_ENTRY(summaryview->search_string), "");
        }
        
-       STATUSBAR_POP(summaryview->mainwin);
+       /* STATUSBAR_POP(summaryview->mainwin); */
 
        is_refresh = (item == summaryview->folder_item) ? TRUE : FALSE;
        if (is_refresh) {
@@ -1022,7 +1020,7 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
 
        debug_print("\n");
        STATUSBAR_PUSH(summaryview->mainwin, _("Done."));
-
+       STATUSBAR_POP(summaryview->mainwin);
        main_window_cursor_normal(summaryview->mainwin);
        summary_unlock(summaryview);
        inc_unlock();
@@ -1795,7 +1793,7 @@ static void summary_status_show(SummaryView *summaryview)
            prefs_common.ng_abbrev_len < strlen(summaryview->folder_item->path)) {
                gchar *group;
                group = get_abbrev_newsgroup_name
-                       (g_basename(summaryview->folder_item->path));
+                       (g_basename(summaryview->folder_item->path), prefs_common.ng_abbrev_len);
                gtk_label_set(GTK_LABEL(summaryview->statlabel_folder), group);
                g_free(group);
        } else {
@@ -2109,14 +2107,6 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
                msginfo->threadscore = msginfo->score;
        }
 
-       if (global_scoring || summaryview->folder_item->prefs->scoring) {
-               summaryview->important_score = prefs_common.important_score;
-               if (summaryview->folder_item->prefs->important_score >
-                   summaryview->important_score)
-                       summaryview->important_score =
-                               summaryview->folder_item->prefs->important_score;
-       }
-
        if (summaryview->threaded) {
                GNode *root, *gnode;
 
@@ -2131,7 +2121,7 @@ static void summary_set_ctree_from_list(SummaryView *summaryview,
 
                g_node_destroy(root);
 
-               folderview_update_items_when_required(FALSE);
+               folder_update_items_when_required(FALSE);
 
                summary_thread_init(summaryview);
        } else {
@@ -2323,7 +2313,7 @@ static void summary_display_msg_full(SummaryView *summaryview,
                if (MSG_IS_NEW(msginfo->flags) || MSG_IS_UNREAD(msginfo->flags)) {
                        procmsg_msginfo_unset_flags
                                (msginfo, MSG_NEW | MSG_UNREAD, 0);
-                       folderview_update_item(msginfo->folder, FALSE);
+                       folder_update_item(msginfo->folder, FALSE);
                        summary_set_row_marks(summaryview, row);
                        gtk_clist_thaw(GTK_CLIST(ctree));
                        summary_status_show(summaryview);
@@ -2649,7 +2639,7 @@ static void summary_mark_row(SummaryView *summaryview, GtkCTreeNode *row)
        if (changed && !prefs_common.immediate_exec) {
                msginfo->to_folder->op_count--;
                if (msginfo->to_folder->op_count == 0)
-                       folderview_update_item(msginfo->to_folder, 0);
+                       folder_update_item(msginfo->to_folder, FALSE);
        }
        msginfo->to_folder = NULL;
        procmsg_msginfo_unset_flags(msginfo, MSG_DELETED, MSG_MOVE | MSG_COPY);
@@ -2679,7 +2669,7 @@ static void summary_lock_row(SummaryView *summaryview, GtkCTreeNode *row)
        if (changed && !prefs_common.immediate_exec) {
                msginfo->to_folder->op_count--;
                if (msginfo->to_folder->op_count == 0)
-                       folderview_update_item(msginfo->to_folder, 0);
+                       folder_update_item(msginfo->to_folder, FALSE);
        }
        msginfo->to_folder = NULL;
        procmsg_msginfo_unset_flags(msginfo, MSG_DELETED, MSG_MOVE | MSG_COPY);
@@ -2730,7 +2720,7 @@ void summary_mark_as_read(SummaryView *summaryview)
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next)
                summary_mark_row_as_read(summaryview,
                                         GTK_CTREE_NODE(cur->data));
-       folderview_update_items_when_required(FALSE);
+       folder_update_items_when_required(FALSE);
 
        summary_status_show(summaryview);
 }
@@ -2751,7 +2741,7 @@ void summary_mark_all_read(SummaryView *summaryview)
                        summary_set_row_marks(summaryview, node);
        }
        gtk_clist_thaw(clist);
-       folderview_update_items_when_required(FALSE);
+       folder_update_items_when_required(FALSE);
 
        summary_status_show(summaryview);
 }
@@ -2788,7 +2778,7 @@ void summary_mark_as_unread(SummaryView *summaryview)
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next)
                summary_mark_row_as_unread(summaryview,
                                           GTK_CTREE_NODE(cur->data));
-       folderview_update_items_when_required(FALSE);
+       folder_update_items_when_required(FALSE);
 
        summary_status_show(summaryview);
 }
@@ -2868,7 +2858,7 @@ static void summary_delete_row(SummaryView *summaryview, GtkCTreeNode *row)
        if (changed && !prefs_common.immediate_exec) {
                msginfo->to_folder->op_count--;
                if (msginfo->to_folder->op_count == 0)
-                       folderview_update_item(msginfo->to_folder, 0);
+                       folder_update_item(msginfo->to_folder, FALSE);
        }
        msginfo->to_folder = NULL;
        procmsg_msginfo_unset_flags(msginfo, MSG_MARKED, MSG_MOVE | MSG_COPY);
@@ -3024,7 +3014,7 @@ static void summary_unmark_row(SummaryView *summaryview, GtkCTreeNode *row)
        if (changed && !prefs_common.immediate_exec) {
                msginfo->to_folder->op_count--;
                if (msginfo->to_folder->op_count == 0)
-                       folderview_update_item(msginfo->to_folder, 0);
+                       folder_update_item(msginfo->to_folder, FALSE);
        }
        msginfo->to_folder = NULL;
        procmsg_msginfo_unset_flags(msginfo, MSG_MARKED | MSG_DELETED, MSG_MOVE | MSG_COPY);
@@ -3059,7 +3049,7 @@ static void summary_move_row_to(SummaryView *summaryview, GtkCTreeNode *row,
                if (!prefs_common.immediate_exec) {
                        msginfo->to_folder->op_count--;
                        if (msginfo->to_folder->op_count == 0) {
-                               folderview_update_item(msginfo->to_folder, 0);
+                               folder_update_item(msginfo->to_folder, FALSE);
                                changed = TRUE;
                        }
                }
@@ -3083,7 +3073,7 @@ static void summary_move_row_to(SummaryView *summaryview, GtkCTreeNode *row,
                if (changed) {
                        msginfo->to_folder->op_count++;
                        if (msginfo->to_folder->op_count == 1)
-                               folderview_update_item(msginfo->to_folder, 0);
+                               folder_update_item(msginfo->to_folder, FALSE);
                }
        }
 
@@ -3118,7 +3108,7 @@ void summary_move_selected_to(SummaryView *summaryview, FolderItem *to_folder)
        else {
                summary_status_show(summaryview);
 
-               folderview_update_item(to_folder, 0);
+               folder_update_item(to_folder, FALSE);
        }
        
        if (!summaryview->selected) { /* this was the last message */
@@ -3156,7 +3146,7 @@ static void summary_copy_row_to(SummaryView *summaryview, GtkCTreeNode *row,
                if (!prefs_common.immediate_exec) {
                        msginfo->to_folder->op_count--;
                        if (msginfo->to_folder->op_count == 0) {
-                               folderview_update_item(msginfo->to_folder, 0);
+                               folder_update_item(msginfo->to_folder, FALSE);
                                changed = TRUE;
                        }
                }
@@ -3180,7 +3170,7 @@ static void summary_copy_row_to(SummaryView *summaryview, GtkCTreeNode *row,
                if (changed) {
                        msginfo->to_folder->op_count++;
                        if (msginfo->to_folder->op_count == 1)
-                               folderview_update_item(msginfo->to_folder, 0);
+                               folder_update_item(msginfo->to_folder, FALSE);
                }
        }
 
@@ -3215,7 +3205,7 @@ void summary_copy_selected_to(SummaryView *summaryview, FolderItem *to_folder)
        else {
                summary_status_show(summaryview);
 
-               folderview_update_item(to_folder, 0);
+               folder_update_item(to_folder, FALSE);
        }
 }
 
@@ -3449,7 +3439,7 @@ static void summary_execute_move(SummaryView *summaryview)
        if (summaryview->mlist) {
                procmsg_move_messages(summaryview->mlist);
 
-               folderview_update_items_when_required(FALSE);
+               folder_update_items_when_required(FALSE);
 
                for (cur = summaryview->mlist; cur != NULL; cur = cur->next)
                        procmsg_msginfo_free((MsgInfo *)cur->data);
@@ -3457,7 +3447,7 @@ static void summary_execute_move(SummaryView *summaryview)
                summaryview->mlist = NULL;
        }
 
-       folderview_update_item(summaryview->folder_item, FALSE);
+       folder_update_item(summaryview->folder_item, FALSE);
 }
 
 static void summary_execute_move_func(GtkCTree *ctree, GtkCTreeNode *node,
@@ -3496,7 +3486,7 @@ static void summary_execute_copy(SummaryView *summaryview)
        if (summaryview->mlist) {
                procmsg_copy_messages(summaryview->mlist);
 
-               folderview_update_items_when_required(FALSE);
+               folder_update_items_when_required(FALSE);
 
                g_slist_free(summaryview->mlist);
                summaryview->mlist = NULL;
@@ -3554,9 +3544,9 @@ static void summary_execute_delete(SummaryView *summaryview)
        summaryview->mlist = NULL;
 
        if ((summaryview->folder_item != trash) && (trash != NULL)) {
-               folderview_update_item(trash, FALSE);
+               folder_update_item(trash, FALSE);
        }
-       folderview_update_item(summaryview->folder_item, FALSE);
+       folder_update_item(summaryview->folder_item, FALSE);
 }
 
 static void summary_execute_delete_func(GtkCTree *ctree, GtkCTreeNode *node,
@@ -3817,7 +3807,7 @@ void summary_collapse_threads(SummaryView *summaryview)
 
 void summary_filter(SummaryView *summaryview)
 {
-       if (!prefs_common.fltlist && !global_processing) {
+       if (!global_processing) {
                alertpanel_error(_("No filter rules defined."));
                return;
        }
@@ -3851,7 +3841,7 @@ void summary_filter(SummaryView *summaryview)
 
                gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
 
-               folderview_update_items_when_required(FALSE);
+               folder_update_items_when_required(FALSE);
        }
 
        debug_print("done.\n");
@@ -3873,21 +3863,8 @@ static void summary_filter_func(GtkCTree *ctree, GtkCTreeNode *node,
                                gpointer data)
 {
        MsgInfo *msginfo = GTKUT_CTREE_NODE_GET_ROW_DATA(node);
-       SummaryView *summaryview = data;
-       gchar *file;
-       FolderItem *dest;
-
-       if (global_processing == NULL) {
-               /* old filtering */
-               file = procmsg_get_message_file(msginfo);
-               dest = filter_get_dest_folder(prefs_common.fltlist, file);
-               g_free(file);
 
-               if (dest && strcmp2(dest->path, FILTER_NOT_RECEIVE) != 0 &&
-                   summaryview->folder_item != dest)
-                       summary_move_row_to(summaryview, node, dest);
-       } else 
-               filter_message_by_msginfo(global_processing, msginfo);
+       filter_message_by_msginfo(global_processing, msginfo);
 }
 
 void summary_filter_open(SummaryView *summaryview, PrefsFilterType type)
@@ -3935,14 +3912,8 @@ void summary_filter_open(SummaryView *summaryview, PrefsFilterType type)
                                              summaryview->selected);
        if (!msginfo) return;
 
-       if (global_processing) {
-               header_offset = 1;
-               hentry_offset = 5;
-       }
-       else {
-               header_offset = 0;
-               hentry_offset = 0;
-       }
+       header_offset = 1;
+       hentry_offset = 5;
 
        switch (type) {
        case FILTER_BY_NONE:
@@ -4006,10 +3977,7 @@ void summary_filter_open(SummaryView *summaryview, PrefsFilterType type)
         * and have set entries. Otherwise we're hosed.  
         */
 
-       if (global_processing)
-               prefs_filtering_open(NULL, header, key);
-       else
-               prefs_filter_open(header, key);
+       prefs_filtering_open(NULL, header, key);
 }
 
 void summary_reply(SummaryView *summaryview, ComposeMode mode)
@@ -5040,7 +5008,7 @@ static void news_flag_crosspost(MsgInfo *msginfo)
                        debug_print(" <%s>", (gchar *)value);
                        if (MSG_IS_NEW(msginfo->flags) || MSG_IS_UNREAD(msginfo->flags)) {
                                procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
-                               folderview_update_item(msginfo->folder, FALSE);
+                               folder_update_item(msginfo->folder, FALSE);
                                procmsg_msginfo_set_flags(msginfo, mff->account->crosspost_col, 0);
                        }
                        g_hash_table_remove(mff->newsart, key);
@@ -5103,7 +5071,7 @@ static void summary_ignore_thread(SummaryView *summaryview)
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next) {
                gtk_ctree_pre_recursive(ctree, GTK_CTREE_NODE(cur->data), GTK_CTREE_FUNC(summary_ignore_thread_func), summaryview);
        }
-       folderview_update_items_when_required(FALSE);
+       folder_update_items_when_required(FALSE);
 
        summary_status_show(summaryview);
 }
@@ -5135,7 +5103,7 @@ static void summary_unignore_thread(SummaryView *summaryview)
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next) {
                gtk_ctree_pre_recursive(ctree, GTK_CTREE_NODE(cur->data), GTK_CTREE_FUNC(summary_unignore_thread_func), summaryview);
        }
-       folderview_update_items_when_required(FALSE);
+       folder_update_items_when_required(FALSE);
 
        summary_status_show(summaryview);
 }
@@ -5322,6 +5290,15 @@ void summary_set_prefs_from_folderitem(SummaryView *summaryview, FolderItem *ite
 
        /* Threading */
        summaryview->threaded = item->threaded;
+
+       /* Scoring */
+       if (global_scoring || summaryview->folder_item->prefs->scoring) {
+               summaryview->important_score = prefs_common.important_score;
+               if (summaryview->folder_item->prefs->important_score >
+                   summaryview->important_score)
+                       summaryview->important_score =
+                               summaryview->folder_item->prefs->important_score;
+       }
 }
 
 void summary_save_prefs_to_folderitem(SummaryView *summaryview, FolderItem *item)