2007-05-03 [colin] 2.9.1cvs39
[claws.git] / src / inc.c
index 821ce550b14f7782c9d3e6edede25edd6e6b1e9f..53dccaa4436fd2019605e3937e7429907c4c407f 100644 (file)
--- a/src/inc.c
+++ b/src/inc.c
@@ -146,12 +146,12 @@ static void inc_notify_cmd                (gint new_msgs,
  **/
 static void inc_finished(MainWindow *mainwin, gboolean new_messages, gboolean autocheck)
 {
-       FolderItem *item;
-
        if (prefs_common.scan_all_after_inc)
                folderview_check_new(NULL);
 
        if (!autocheck && prefs_common.open_inbox_on_inc) {
+               FolderItem *item = NULL;
+
                if (cur_account && cur_account->inbox)
                        item = folder_find_item_from_identifier(cur_account->inbox);
                if (item == NULL && cur_account->folder)
@@ -172,7 +172,7 @@ void inc_mail(MainWindow *mainwin, gboolean notify)
        if (inc_lock_count) return;
 
        if (prefs_common.work_offline && 
-           !inc_offline_should_override(
+           !inc_offline_should_override(TRUE,
                _("Claws Mail needs network access in order "
                  "to get mails.")))
                return;
@@ -277,7 +277,7 @@ gint inc_account_mail(MainWindow *mainwin, PrefsAccount *account)
        if (inc_lock_count) return 0;
 
        if (prefs_common.work_offline && 
-           !inc_offline_should_override(
+           !inc_offline_should_override(TRUE,
                _("Claws Mail needs network access in order "
                  "to get mails.")))
                return 0;
@@ -303,7 +303,7 @@ void inc_all_account_mail(MainWindow *mainwin, gboolean autocheck,
        gint account_new_msgs = 0;
        
        if (prefs_common.work_offline && 
-           !inc_offline_should_override(
+           !inc_offline_should_override( (autocheck == FALSE),
                _("Claws Mail needs network access in order "
                  "to get mails.")))
                return;
@@ -788,7 +788,7 @@ static IncState inc_pop3_session_do(IncSession *session)
 
        buf = g_strdup_printf(_("Connecting to POP3 server: %s..."), server);
        statusbar_print_all("%s", buf);
-       log_message("%s\n", buf);
+       log_message(LOG_PROTOCOL, "%s\n", buf);
 
        progress_dialog_set_label(inc_dialog->dialog, buf);
        GTK_EVENTS_FLUSH();
@@ -807,7 +807,7 @@ static IncState inc_pop3_session_do(IncSession *session)
                                         server, port);
                        manage_window_focus_out(inc_dialog->dialog->window, NULL, NULL);
                } else {
-                       log_error(_("Can't connect to POP3 server: %s:%d\n"),
+                       log_error(LOG_PROTOCOL, _("Can't connect to POP3 server: %s:%d\n"),
                            server, port);
                }
                session->inc_state = INC_CONNECT_ERROR;
@@ -1195,9 +1195,9 @@ static void inc_put_error(IncState istate, Pop3Session *session)
 
        if (log_msg) {
                if (fatal_error)
-                       log_error("%s\n", log_msg);
+                       log_error(LOG_PROTOCOL, "%s\n", log_msg);
                else
-                       log_warning("%s\n", log_msg);
+                       log_warning(LOG_PROTOCOL, "%s\n", log_msg);
        }
        if (prefs_common.no_recv_err_panel && fatal_error)
                mainwindow_show_error();
@@ -1223,7 +1223,7 @@ static void inc_cancel(IncProgressDialog *dialog)
 
        session->inc_state = INC_CANCEL;
 
-       log_message(_("Incorporation cancelled\n"));
+       log_message(LOG_PROTOCOL, _("Incorporation cancelled\n"));
 }
 
 gboolean inc_is_active(void)
@@ -1441,7 +1441,7 @@ static gint inc_autocheck_func(gpointer data)
        return FALSE;
 }
 
-gboolean inc_offline_should_override(const gchar *msg)
+gboolean inc_offline_should_override(gboolean force_ask, const gchar *msg)
 {
        static time_t overridden_yes = 0;
        static time_t overridden_no  = 0;
@@ -1451,29 +1451,41 @@ gboolean inc_offline_should_override(const gchar *msg)
        if (prefs_common.autochk_newmail)
                length = prefs_common.autochk_itv; /* minutes */
 
+       if (force_ask) {
+               overridden_no = (time_t)0;
+       }
+
        if (prefs_common.work_offline) {
                gchar *tmp = NULL;
                
                if (time(NULL) - overridden_yes < length * 60) /* seconds */
                         return TRUE;
-               else if (time(NULL) - overridden_no < 3) /* seconds */
+               else if (time(NULL) - overridden_no < length * 60) /* seconds */
                         return FALSE;
 
-               tmp = g_strdup_printf(
+               if (!force_ask)
+                       tmp = g_strdup_printf(
                                _("%s%sYou're working offline. Override for %d minutes?"),
                                msg?msg:"", 
                                msg?"\n\n":"",
                                length);
+               else
+                       tmp = g_strdup_printf(
+                               _("%s%sYou're working offline. Override?"),
+                               msg?msg:"", 
+                               msg?"\n\n":"");
 
                answer = alertpanel(_("Offline warning"), 
                               tmp,
-                              GTK_STOCK_NO, "+" GTK_STOCK_YES, _("On_ly once"));
+                              GTK_STOCK_NO, "+" GTK_STOCK_YES, 
+                               !force_ask? _("On_ly once"):NULL);
                g_free(tmp);
                if (answer == G_ALERTALTERNATE) {
                        overridden_yes = time(NULL);
                        return TRUE;
                } else if (answer == G_ALERTDEFAULT) {
-                       overridden_no  = time(NULL);
+                       if (!force_ask)
+                               overridden_no  = time(NULL);
                        return FALSE;
                } else {
                        overridden_yes = (time_t)0;