2006-03-29 [colin] 2.0.0cvs181
[claws.git] / src / folderview.c
index 4297f2e7f3d597b6f707a20c364fd0e5832c7601..d000a0051d06db83ae7e52aa1c663c16c3cb98ed 100644 (file)
@@ -660,6 +660,9 @@ void folderview_set(FolderView *folderview)
        GtkCTree *ctree = GTK_CTREE(folderview->ctree);
        MainWindow *mainwin = folderview->mainwin;
 
+       if (!mainwin)
+               return;
+
        debug_print("Setting folder info...\n");
        STATUSBAR_PUSH(mainwin, _("Setting folder info..."));
 
@@ -920,11 +923,29 @@ void folderview_append_item(FolderItem *item)
 static void folderview_set_folders(FolderView *folderview)
 {
        GList *list;
-
+       static gboolean missing_imap_warning = TRUE;
        list = folder_get_list();
 
-       for (; list != NULL; list = list->next)
+       for (; list != NULL; list = list->next) {
+#ifndef HAVE_LIBETPAN
+               if ((FOLDER(list->data))
+               &&  (FOLDER(list->data))->klass
+               &&  (FOLDER(list->data))->klass->type == F_IMAP
+               &&  missing_imap_warning) {
+                       missing_imap_warning = FALSE;
+                       alertpanel_error(
+                               _("You have one or more IMAP accounts "
+                                 "defined. However this version of "
+                                 "Sylpheed-Claws has been built without "
+                                 "IMAP support; your IMAP account(s) are "
+                                 "disabled.\n\n"
+                                 "You probably need to "
+                                 "install libetpan and recompile "
+                                 "Sylpheed-Claws."));
+               }
+#endif
                folderview_append_folder(folderview, FOLDER(list->data));
+       }
 }
 
 static void folderview_scan_tree_func(Folder *folder, FolderItem *item,
@@ -2407,7 +2428,11 @@ gboolean folderview_update_folder(gpointer source, gpointer userdata)
 
        if (hookdata->update_flags & FOLDER_ADD_FOLDERITEM)
                folderview_create_folder_node(folderview, hookdata->item);
-       else if (hookdata->update_flags & FOLDER_REMOVE_FOLDERITEM) {
+       else if (hookdata->update_flags & FOLDER_RENAME_FOLDERITEM) {
+               GtkCTreeNode *node = gtk_ctree_find_by_row_data(GTK_CTREE(ctree),
+                               NULL, folder_item_parent(hookdata->item));
+               folderview_sort_folders(folderview, node, hookdata->folder);
+       } else if (hookdata->update_flags & FOLDER_REMOVE_FOLDERITEM) {
                GtkCTreeNode *node;
 
                node = gtk_ctree_find_by_row_data(GTK_CTREE(ctree), NULL, hookdata->item);