add new ctree sorting code
[claws.git] / src / folderview.c
index 5ce56cb0f405f2a5c1b6ca65b60b0d9eb578d8b3..8e10ab7288a55fd8b9f511e24df8a50eaae70b79 100644 (file)
@@ -361,9 +361,10 @@ FolderView *folderview_create(void)
        titles[COL_TOTAL]  = _("#");
 
        scrolledwin = gtk_scrolled_window_new(NULL, NULL);
-       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
-                                      GTK_POLICY_AUTOMATIC,
-                                      GTK_POLICY_ALWAYS);
+       gtk_scrolled_window_set_policy
+               (GTK_SCROLLED_WINDOW(scrolledwin),
+                GTK_POLICY_AUTOMATIC,
+                prefs_common.folderview_vscrollbar_policy);
        gtk_widget_set_usize(scrolledwin,
                             prefs_common.folderview_width,
                             prefs_common.folderview_height);
@@ -805,12 +806,14 @@ void folderview_rescan_tree(Folder *folder)
        window = label_window_create(_("Rescanning folder tree..."));
 
        folder_set_ui_func(folder, folderview_scan_tree_func, NULL);
-       folder->scan_tree(folder);
+       folder_scan_tree(folder);
        folder_set_ui_func(folder, NULL, NULL);
 
        folder_write_list();
        folderview_set_all();
 
+       folderview_check_new(folder);
+       
        gtk_widget_destroy(window);
        inc_unlock();
 }
@@ -829,12 +832,20 @@ void folderview_rescan_all(void)
 
                if (!folder->scan_tree) continue;
                folder_set_ui_func(folder, folderview_scan_tree_func, NULL);
-               folder->scan_tree(folder);
+               folder_scan_tree(folder);
                folder_set_ui_func(folder, NULL, NULL);
        }
 
        folder_write_list();
        folderview_set_all();
+
+       list = folder_get_list();
+       for (; list != NULL; list = list->next) {
+               Folder *folder = list->data;
+
+               folderview_check_new(folder);
+       }
+
        gtk_widget_destroy(window);
        inc_unlock();
 }
@@ -1281,7 +1292,7 @@ static void folderview_sort_folders(FolderView *folderview, GtkCTreeNode *root,
        GtkCTree *ctree = GTK_CTREE(folderview->ctree);
        GtkCTreeNode *prev = NULL;
 
-       gtk_ctree_sort_recursive(ctree, root);
+       gtk_sctree_sort_recursive(ctree, root);
 
        if (GTK_CTREE_ROW(root)->parent) return;
 
@@ -1615,7 +1626,7 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
                        (folderview->mainwin,
                         item->folder->type == F_NEWS ? 
                         COMPOSEBUTTON_NEWS : COMPOSEBUTTON_MAIL);
-        
+
        if (item->path)
                debug_print(_("Folder %s is selected\n"), item->path);
 
@@ -1632,8 +1643,14 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
                        gdk_pointer_ungrab(GDK_CURRENT_TIME);
        }
 
+       if((item->folder->type == F_IMAP) || (item->folder->type == F_NEWS)) {
+               folder_item_scan(item);
+       }
+
        opened = summary_show(folderview->summaryview, item, FALSE);
 
+       folder_clean_cache_memory();
+       
        if (!opened) {
                gtkut_ctree_set_focus_row(ctree, folderview->opened);
                gtk_ctree_select(ctree, folderview->opened);
@@ -2092,7 +2109,7 @@ static void folderview_remove_mailbox_cb(FolderView *folderview, guint action,
        message = g_strdup_printf
                (_("Really remove the mailbox `%s' ?\n"
                   "(The messages are NOT deleted from the disk)"), name);
-       avalue = alertpanel(_("Remove folder"), message,
+       avalue = alertpanel(_("Remove mailbox"), message,
                            _("Yes"), _("+No"), NULL);
        g_free(message);
        if (avalue != G_ALERTDEFAULT) return;