fixed local account
[claws.git] / src / inc.c
index f15928b..11e9e49 100644 (file)
--- a/src/inc.c
+++ b/src/inc.c
@@ -113,6 +113,7 @@ static gint inc_spool                       (void);
 static gint get_spool                  (FolderItem     *dest,
                                         const gchar    *mbox);
 
+static void inc_spool_account(PrefsAccount *account);
 static void inc_all_spool(void);
 static void inc_autocheck_timer_set_interval   (guint           interval);
 static gint inc_autocheck_func                 (gpointer        data);
@@ -210,28 +211,37 @@ static gint inc_account_mail(PrefsAccount *account, MainWindow *mainwin)
        IncSession *session;
        gchar *text[3];
 
-       if (account->protocol == A_IMAP4 || account->protocol == A_NNTP) {
+       switch (account->protocol) {
+       case A_IMAP4:
+       case A_NNTP:
                folderview_check_new(FOLDER(account->folder));
                return 1;
-       }
-
-       session = inc_session_new(account);
-       if (!session) return 0;
-
-       inc_dialog = inc_progress_dialog_create();
-       inc_dialog->queue_list = g_list_append(inc_dialog->queue_list, session);
-       inc_dialog->mainwin = mainwin;
-       session->data = inc_dialog;
-
-       text[0] = NULL;
-       text[1] = account->account_name;
-       text[2] = _("Standby");
-       gtk_clist_append(GTK_CLIST(inc_dialog->dialog->clist), text);
-
-       main_window_set_toolbar_sensitive(mainwin);
-       main_window_set_menu_sensitive(mainwin);
 
-       return inc_start(inc_dialog);
+       case A_POP3:
+       case A_APOP:
+               session = inc_session_new(account);
+               if (!session) return 0;
+               
+               inc_dialog = inc_progress_dialog_create();
+               inc_dialog->queue_list = g_list_append(inc_dialog->queue_list,
+                                                      session);
+               inc_dialog->mainwin = mainwin;
+               session->data = inc_dialog;
+       
+               text[0] = NULL;
+               text[1] = account->account_name;
+               text[2] = _("Standby");
+               gtk_clist_append(GTK_CLIST(inc_dialog->dialog->clist), text);
+               
+               main_window_set_toolbar_sensitive(mainwin);
+               main_window_set_menu_sensitive(mainwin);
+               
+               return inc_start(inc_dialog);
+
+       case A_LOCAL:
+               inc_spool_account(account);
+               return 1;
+       }
 }
 
 void inc_all_account_mail(MainWindow *mainwin, gboolean notify)
@@ -258,6 +268,9 @@ void inc_all_account_mail(MainWindow *mainwin, gboolean notify)
                return;
        }
 
+       /* check local folders */
+       inc_all_spool();
+
        /* check IMAP4 folders */
        for (; list != NULL; list = list->next) {
                PrefsAccount *account = list->data;
@@ -1081,7 +1094,8 @@ static void inc_all_spool(void)
                IncSession *session;
                PrefsAccount *account = list->data;
 
-               if (account->protocol == A_LOCAL)
+               if ((account->protocol == A_LOCAL) &&
+                   (account->recv_at_getall))
                        inc_spool_account(account);
        }
 }