static guint inc_lock_count = 0;
-static GdkPixmap *currentxpm;
-static GdkBitmap *currentxpmmask;
-static GdkPixmap *errorxpm;
-static GdkBitmap *errorxpmmask;
-static GdkPixmap *okxpm;
-static GdkBitmap *okxpmmask;
+static GdkPixbuf *currentpix;
+static GdkPixbuf *errorpix;
+static GdkPixbuf *okpix;
#define MSGBUFSIZE 8192
const gchar *file);
static void inc_put_error (IncState istate,
- const gchar *msg);
+ Pop3Session *session);
static void inc_cancel_cb (GtkWidget *widget,
gpointer data);
G_CALLBACK(inc_dialog_delete_cb), dialog);
/* manage_window_set_transient(GTK_WINDOW(progress->window)); */
- progress_dialog_set_value(progress, 0.0);
+ progress_dialog_get_fraction(progress);
- stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_COMPLETE,
- &okxpm, &okxpmmask);
- stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_CONTINUE,
- ¤txpm, ¤txpmmask);
- stock_pixmap_gdk(progress->clist, STOCK_PIXMAP_ERROR,
- &errorxpm, &errorxpmmask);
+ stock_pixbuf_gdk(progress->list_view, STOCK_PIXMAP_COMPLETE,
+ &okpix);
+ stock_pixbuf_gdk(progress->list_view, STOCK_PIXMAP_CONTINUE,
+ ¤tpix);
+ stock_pixbuf_gdk(progress->list_view, STOCK_PIXMAP_ERROR,
+ &errorpix);
if (prefs_common.recv_dialog_mode == RECV_DIALOG_ALWAYS ||
(prefs_common.recv_dialog_mode == RECV_DIALOG_MANUAL &&
for (list = inc_dialog->queue_list; list != NULL; list = list->next) {
IncSession *session = list->data;
Pop3Session *pop3_session = POP3_SESSION(session->session);
- gchar *text[3];
session->data = inc_dialog;
- text[0] = NULL;
- text[1] = pop3_session->ac_prefs->account_name;
- text[2] = _("Standby");
- gtk_clist_append(GTK_CLIST(inc_dialog->dialog->clist), text);
+ progress_dialog_list_set(inc_dialog->dialog,
+ -1, NULL,
+ pop3_session->ac_prefs->account_name,
+ _("Standby"));
}
}
static void inc_progress_dialog_clear(IncProgressDialog *inc_dialog)
{
- progress_dialog_set_value(inc_dialog->dialog, 0.0);
+ progress_dialog_get_fraction(inc_dialog->dialog);
progress_dialog_set_label(inc_dialog->dialog, "");
if (inc_dialog->mainwin)
main_window_progress_off(inc_dialog->mainwin);
g_return_val_if_fail(account != NULL, NULL);
- if (account->protocol != A_POP3 && account->protocol != A_APOP)
+ if (account->protocol != A_POP3)
return NULL;
if (!account->recv_server || !account->userid)
return NULL;
static gint inc_start(IncProgressDialog *inc_dialog)
{
IncSession *session;
- GtkCList *clist = GTK_CLIST(inc_dialog->dialog->clist);
GList *qlist;
Pop3Session *pop3_session;
IncState inc_state;
qlist = next;
}
-#define SET_PIXMAP_AND_TEXT(xpm, xpmmask, str) \
+#define SET_PIXMAP_AND_TEXT(pix, str) \
{ \
- gtk_clist_set_pixmap(clist, inc_dialog->cur_row, 0, xpm, xpmmask); \
- gtk_clist_set_text(clist, inc_dialog->cur_row, 2, str); \
+ progress_dialog_list_set(inc_dialog->dialog, \
+ inc_dialog->cur_row, \
+ pix, \
+ NULL, \
+ str); \
}
for (; inc_dialog->queue_list != NULL; inc_dialog->cur_row++) {
pop3_session = POP3_SESSION(session->session);
if (pop3_session->pass == NULL) {
- SET_PIXMAP_AND_TEXT(okxpm, okxpmmask, _("Cancelled"));
+ SET_PIXMAP_AND_TEXT(okpix, _("Cancelled"));
inc_session_destroy(session);
inc_dialog->queue_list =
g_list_remove(inc_dialog->queue_list, session);
}
inc_progress_dialog_clear(inc_dialog);
- gtk_clist_moveto(clist, inc_dialog->cur_row, -1, 1.0, 0.0);
+ progress_dialog_list_select_row(inc_dialog->dialog,
+ inc_dialog->cur_row);
- SET_PIXMAP_AND_TEXT(currentxpm, currentxpmmask,
- _("Retrieving"));
+ SET_PIXMAP_AND_TEXT(currentpix, _("Retrieving"));
/* begin POP3 session */
inc_state = inc_pop3_session_do(session);
to_human_readable(pop3_session->cur_total_recv_bytes));
else
msg = g_strdup_printf(_("Done (no new messages)"));
- SET_PIXMAP_AND_TEXT(okxpm, okxpmmask, msg);
+ SET_PIXMAP_AND_TEXT(okpix, msg);
g_free(msg);
break;
case INC_CONNECT_ERROR:
- SET_PIXMAP_AND_TEXT(errorxpm, errorxpmmask,
- _("Connection failed"));
+ SET_PIXMAP_AND_TEXT(errorpix, _("Connection failed"));
break;
case INC_AUTH_FAILED:
- SET_PIXMAP_AND_TEXT(errorxpm, errorxpmmask,
- _("Auth failed"));
+ SET_PIXMAP_AND_TEXT(errorpix, _("Auth failed"));
break;
case INC_LOCKED:
- SET_PIXMAP_AND_TEXT(errorxpm, errorxpmmask,
- _("Locked"));
+ SET_PIXMAP_AND_TEXT(errorpix, _("Locked"));
break;
case INC_ERROR:
case INC_NO_SPACE:
case INC_IO_ERROR:
case INC_SOCKET_ERROR:
case INC_EOF:
- SET_PIXMAP_AND_TEXT(errorxpm, errorxpmmask, _("Error"));
+ SET_PIXMAP_AND_TEXT(errorpix, _("Error"));
break;
case INC_TIMEOUT:
- SET_PIXMAP_AND_TEXT(errorxpm, errorxpmmask, _("Timeout"));
+ SET_PIXMAP_AND_TEXT(errorpix, _("Timeout"));
break;
case INC_CANCEL:
- SET_PIXMAP_AND_TEXT(okxpm, okxpmmask, _("Cancelled"));
+ SET_PIXMAP_AND_TEXT(okpix, _("Cancelled"));
break;
default:
break;
msglist = folder_item_get_msg_list(processing);
/* process messages */
+ folder_item_update_freeze();
for(msglist_element = msglist; msglist_element != NULL; msglist_element = msglist_element->next) {
msginfo = (MsgInfo *) msglist_element->data;
if (!pop3_session->ac_prefs->filter_on_recv || !procmsg_msginfo_filter(msginfo))
folder_item_move_msg(inbox, msginfo);
procmsg_msginfo_free(msginfo);
}
+ folder_item_update_thaw();
g_slist_free(msglist);
+ statusbar_pop_all();
+
new_msgs += pop3_session->cur_total_num;
if (pop3_session->error_val == PS_AUTHFAIL &&
manage_window_focus_in
(inc_dialog->dialog->window,
NULL, NULL);
- inc_put_error(inc_state, pop3_session->error_msg);
+ inc_put_error(inc_state, pop3_session);
if (inc_dialog->show_dialog)
manage_window_focus_out
(inc_dialog->dialog->window,
progress_dialog_set_label(inc_dialog->dialog, buf);
}
- progress_dialog_set_percentage
+ progress_dialog_set_fraction
(inc_dialog->dialog,(gfloat)cur_total / (gfloat)total);
- gtk_progress_set_show_text
- (GTK_PROGRESS(inc_dialog->mainwin->progressbar), TRUE);
g_snprintf(buf, sizeof(buf), "%d / %d",
pop3_session->cur_msg, pop3_session->count);
- gtk_progress_set_format_string
- (GTK_PROGRESS(inc_dialog->mainwin->progressbar), buf);
- gtk_progress_bar_update
+ gtk_progress_bar_set_text
+ (GTK_PROGRESS_BAR(inc_dialog->mainwin->progressbar), buf);
+ gtk_progress_bar_set_fraction
(GTK_PROGRESS_BAR(inc_dialog->mainwin->progressbar),
(gfloat)cur_total / (gfloat)total);
pop3_session->cur_total_num,
to_human_readable
(pop3_session->cur_total_recv_bytes));
- gtk_clist_set_text(GTK_CLIST(inc_dialog->dialog->clist),
- inc_dialog->cur_row, 2, buf);
+ progress_dialog_list_set_status(inc_dialog->dialog,
+ inc_dialog->cur_row,
+ buf);
}
}
return 0;
}
-static void inc_put_error(IncState istate, const gchar *msg)
+static void inc_put_error(IncState istate, Pop3Session *session)
{
gchar *log_msg = NULL;
gchar *err_msg = NULL;
log_msg = _("Connection failed.");
if (prefs_common.no_recv_err_panel)
break;
- err_msg = g_strdup(log_msg);
+ err_msg = g_strdup_printf(_("Connection to %s:%d failed."),
+ SESSION(session)->server,
+ SESSION(session)->port);
break;
case INC_ERROR:
log_msg = _("Error occurred while processing mail.");
if (prefs_common.no_recv_err_panel)
break;
- if (msg)
+ if (session->error_msg)
err_msg = g_strdup_printf
(_("Error occurred while processing mail:\n%s"),
- msg);
+ session->error_msg);
else
err_msg = g_strdup(log_msg);
break;
log_msg = _("Socket error.");
if (prefs_common.no_recv_err_panel)
break;
- err_msg = g_strdup(log_msg);
+ err_msg = g_strdup_printf(_("Socket error on connection to %s:%d."),
+ SESSION(session)->server,
+ SESSION(session)->port);
break;
case INC_EOF:
log_msg = _("Connection closed by the remote host.");
if (prefs_common.no_recv_err_panel)
break;
- err_msg = g_strdup(log_msg);
+ err_msg = g_strdup_printf(_("Connection to %s:%d closed by the remote host."),
+ SESSION(session)->server,
+ SESSION(session)->port);
break;
case INC_LOCKED:
log_msg = _("Mailbox is locked.");
if (prefs_common.no_recv_err_panel)
break;
- if (msg)
+ if (session->error_msg)
err_msg = g_strdup_printf(_("Mailbox is locked:\n%s"),
- msg);
+ session->error_msg);
else
err_msg = g_strdup(log_msg);
break;
log_msg = _("Authentication failed.");
if (prefs_common.no_recv_err_panel)
break;
- if (msg)
+ if (session->error_msg)
err_msg = g_strdup_printf
- (_("Authentication failed:\n%s"), msg);
+ (_("Authentication failed:\n%s"), session->error_msg);
else
err_msg = g_strdup(log_msg);
break;
log_msg = _("Session timed out.");
if (prefs_common.no_recv_err_panel)
break;
- err_msg = g_strdup(log_msg);
+ err_msg = g_strdup_printf(_("Connection to %s:%d timed out."),
+ SESSION(session)->server,
+ SESSION(session)->port);
break;
default:
break;
static gint inc_spool_account(PrefsAccount *account)
{
FolderItem *inbox;
- gchar *mbox, *logname;
+ gchar *mbox;
gint result;
- logname = g_get_user_name();
-
if (account->inbox) {
inbox = folder_find_item_from_path(account->inbox);
if (!inbox)
if (is_file_exist(account->local_mbox))
mbox = g_strdup(account->local_mbox);
- else
- mbox = g_strconcat(account->local_mbox,
- G_DIR_SEPARATOR_S, logname, NULL);
+ else if (is_dir_exist(account->local_mbox))
+ mbox = g_strconcat(account->local_mbox, G_DIR_SEPARATOR_S,
+ g_get_user_name(), NULL);
+ else {
+ debug_print("%s: local mailbox not found.\n",
+ account->local_mbox);
+ return -1;
+ }
result = get_spool(inbox, mbox);
g_free(mbox);
g_return_val_if_fail(mbox != NULL, -1);
if (!is_file_exist(mbox) || (size = get_file_size(mbox)) == 0) {
- debug_print("no messages in local mailbox.\n");
+ debug_print("%s: no messages in local mailbox.\n", mbox);
return 0;
} else if (size < 0)
return -1;
static void inc_notify_cmd(gint new_msgs, gboolean notify)
{
- gchar *buf;
+ gchar *buf, *numpos, *ret_str;
+ gssize by_read = 0, by_written = 0;
if (!(new_msgs && notify && prefs_common.newmail_notify_cmd &&
*prefs_common.newmail_notify_cmd))
return;
- if ((buf = strchr(prefs_common.newmail_notify_cmd, '%')) &&
- buf[1] == 'd' && !strchr(&buf[1], '%'))
- buf = g_strdup_printf(prefs_common.newmail_notify_cmd,
- new_msgs);
- else
- buf = g_strdup(prefs_common.newmail_notify_cmd);
+ buf = g_strdup(prefs_common.newmail_notify_cmd);
+ if ((numpos = strstr(buf, "%d")) != NULL) {
+ gchar *buf2;
+
+ *numpos = '\0';
+ buf2 = g_strdup_printf("%s%d%s", buf, new_msgs, numpos + 2);
+ g_free(buf);
+ buf = buf2;
+ }
+ ret_str = g_locale_from_utf8(buf, strlen(buf), &by_read, &by_written,
+ NULL);
+ if (ret_str && by_written) {
+ g_free(buf);
+ buf = ret_str;
+ }
+ debug_print("executing new mail notification command: %s\n", buf);
execute_command_line(buf, TRUE);
g_free(buf);