+2006-09-02 [colin] 2.4.0cvs128
+
+ * src/imap.c
+ * src/import.c
+ * src/mainwindow.c
+ * src/mainwindow.h
+ Fix warning icon
+ * src/inc.c
+ * src/mbox.c
+ * src/mbox.h
+ Let proc_mbox know its account, for
+ account-specific rules
+
2006-09-01 [colin] 2.4.0cvs127
* src/codeconv.c
( cvs diff -u -r 1.1.2.5 -r 1.1.2.6 manual/fr/plugins.xml; ) > 2.4.0cvs125.patchset
( cvs diff -u -r 1.1.2.5 -r 1.1.2.6 manual/fr/account.xml; ) > 2.4.0cvs126.patchset
( cvs diff -u -r 1.17.2.26 -r 1.17.2.27 src/alertpanel.c; cvs diff -u -r 1.65.2.48 -r 1.65.2.49 src/codeconv.c; cvs diff -u -r 1.149.2.56 -r 1.149.2.57 src/inc.c; cvs diff -u -r 1.274.2.142 -r 1.274.2.143 src/mainwindow.c; cvs diff -u -r 1.39.2.21 -r 1.39.2.22 src/mainwindow.h; cvs diff -u -r 1.1.4.48 -r 1.1.4.49 src/etpan/imap-thread.c; cvs diff -u -r 1.1.4.17 -r 1.1.4.18 src/gtk/logwindow.c; cvs diff -u -r 1.1.4.4 -r 1.1.4.5 src/gtk/logwindow.h; ) > 2.4.0cvs127.patchset
+( cvs diff -u -r 1.179.2.130 -r 1.179.2.131 src/imap.c; cvs diff -u -r 1.13.2.17 -r 1.13.2.18 src/import.c; cvs diff -u -r 1.149.2.57 -r 1.149.2.58 src/inc.c; cvs diff -u -r 1.274.2.143 -r 1.274.2.144 src/mainwindow.c; cvs diff -u -r 1.39.2.22 -r 1.39.2.23 src/mainwindow.h; cvs diff -u -r 1.28.2.25 -r 1.28.2.26 src/mbox.c; cvs diff -u -r 1.3.2.6 -r 1.3.2.7 src/mbox.h; ) > 2.4.0cvs128.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=127
+EXTRA_VERSION=128
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
failed = TRUE;
goto try_again;
} else {
- alertpanel_error_log(_("Couldn't login to IMAP server %s."), account->recv_server);
+ if (prefs_common.no_recv_err_panel) {
+ log_error(_("Couldn't login to IMAP server %s."), account->recv_server);
+ mainwindow_show_error();
+ } else
+ alertpanel_error_log(_("Couldn't login to IMAP server %s."), account->recv_server);
}
return;
gtk_widget_grab_focus(dest_entry);
return;
} else {
- import_ok = proc_mbox(dest, mbox, FALSE);
+ import_ok = proc_mbox(dest, mbox, FALSE, NULL);
}
g_free(mbox);
gpointer data);
static gint get_spool (FolderItem *dest,
- const gchar *mbox);
+ const gchar *mbox,
+ PrefsAccount *account);
static gint inc_spool_account(PrefsAccount *account);
static gint inc_all_spool(void);
err_msg = g_strdup_printf(_("Connection to %s:%d failed."),
SESSION(session)->server,
SESSION(session)->port);
- fatal_error = TRUE;
break;
case INC_ERROR:
log_msg = _("Error occurred while processing mail.");
break;
case INC_SOCKET_ERROR:
log_msg = _("Socket error.");
- fatal_error = TRUE;
if (prefs_common.no_recv_err_panel)
break;
err_msg = g_strdup_printf(_("Socket error on connection to %s:%d."),
break;
case INC_AUTH_FAILED:
log_msg = _("Authentication failed.");
+ fatal_error = TRUE;
if (prefs_common.no_recv_err_panel)
break;
if (session->error_msg)
break;
case INC_TIMEOUT:
log_msg = _("Session timed out.");
- fatal_error = TRUE;
if (prefs_common.no_recv_err_panel)
break;
err_msg = g_strdup_printf(_("Connection to %s:%d timed out."),
else
log_warning("%s\n", log_msg);
}
+ if (prefs_common.no_recv_err_panel && fatal_error)
+ mainwindow_show_error();
+
if (err_msg) {
alertpanel_error_log(err_msg);
g_free(err_msg);
return -1;
}
- result = get_spool(inbox, mbox);
+ result = get_spool(inbox, mbox, account);
g_free(mbox);
statusbar_pop_all();
return new_msgs;
}
-static gint get_spool(FolderItem *dest, const gchar *mbox)
+static gint get_spool(FolderItem *dest, const gchar *mbox, PrefsAccount *account)
{
gint msgs, size;
gint lockfd;
debug_print("Getting new messages from %s into %s...\n",
mbox, dest->path);
- msgs = proc_mbox(dest, tmp_mbox, TRUE);
+ msgs = proc_mbox(dest, tmp_mbox, TRUE, account);
g_unlink(tmp_mbox);
if (msgs >= 0) empty_mbox(mbox);
return FALSE;
}
-static gboolean mainwindow_log_error(gpointer source, gpointer data)
+void mainwindow_show_error(void)
{
- LogText *logtext = (LogText *) source;
- MainWindow *mainwin = (MainWindow *) data;
- if (logtext->type != LOG_ERROR)
- return FALSE;
-
+ MainWindow *mainwin = mainwindow_get_mainwindow();
gtk_widget_show(mainwin->warning_btn);
-
- return FALSE;
}
void mainwindow_clear_error(MainWindow *mainwin)
_("Some error(s) happened. Click here to view log."), NULL);
gtk_box_pack_start(GTK_BOX(hbox_stat), warning_btn, FALSE, FALSE, 0);
- /* Disabled for now
- * hooks_register_hook(LOG_APPEND_TEXT_HOOKLIST, mainwindow_log_error, mainwin);
- */
-
statusbar = statusbar_create();
gtk_box_pack_start(GTK_BOX(hbox_stat), statusbar, TRUE, TRUE, 0);
void mainwindow_learn (MainWindow *mainwin,
gboolean is_spam);
void mainwindow_jump_to (const gchar *target);
+void mainwindow_show_error (void);
void mainwindow_clear_error (MainWindow *mainwin);
#endif /* __MAINWINDOW_H__ */
} \
}
-gint proc_mbox(FolderItem *dest, const gchar *mbox, gboolean apply_filter)
+gint proc_mbox(FolderItem *dest, const gchar *mbox, gboolean apply_filter,
+ PrefsAccount *account)
/* return values: -1 error, >=0 number of msgs added */
{
FILE *mbox_fp;
statusbar_pop_all();
if (apply_filter) {
- procmsg_msglist_filter(to_filter, NULL, &filtered, &unfiltered, TRUE);
+ procmsg_msglist_filter(to_filter, account,
+ &filtered, &unfiltered, TRUE);
unfiltered = g_slist_reverse(unfiltered);
folder_item_move_msgs(dest, unfiltered);
for (cur = unfiltered; cur; cur = g_slist_next(cur)) {
gint proc_mbox (FolderItem *dest,
const gchar *mbox,
- gboolean apply_filter);
+ gboolean apply_filter,
+ PrefsAccount *account);
gint lock_mbox (const gchar *base,
LockType type);
gint unlock_mbox (const gchar *base,