g_free(mbox);
return;
} else {
+ gtk_widget_set_sensitive(file_entry, FALSE);
+ gtk_widget_set_sensitive(dest_entry, FALSE);
+ gtk_widget_set_sensitive(file_button, FALSE);
+ gtk_widget_set_sensitive(dest_button, FALSE);
+ gtk_widget_set_sensitive(ok_button, FALSE);
+ gtk_widget_set_sensitive(cancel_button, FALSE);
+ GTK_EVENTS_FLUSH();
+
import_ok = proc_mbox(dest, mbox, FALSE, NULL);
}
GSList *to_filter = NULL, *filtered = NULL, *unfiltered = NULL, *cur, *to_add = NULL;
gboolean printed = FALSE;
FolderItem *dropfolder;
+ GStatBuf src_stat;
cm_return_val_if_fail(dest != NULL, -1);
cm_return_val_if_fail(mbox != NULL, -1);
debug_print("Getting messages from %s into %s...\n", mbox, dest->path);
+ if (g_stat(mbox, &src_stat) < 0) {
+ FILE_OP_ERROR(mbox, "g_stat");
+ alertpanel_error(_("Could not stat mbox file:\n%s\n"), mbox);
+ return -1;
+ }
+
if ((mbox_fp = claws_fopen(mbox, "rb")) == NULL) {
FILE_OP_ERROR(mbox, "claws_fopen");
alertpanel_error(_("Could not open mbox file:\n%s\n"), mbox);
gint empty_lines;
gint msgnum;
- if (msgs > 0 && msgs%500 == 0) {
+ if (msgs%500 == 0) {
+ long cur_offset_mb = ftell(mbox_fp) / (1024 * 1024);
if (printed)
statusbar_pop_all();
statusbar_print_all(
- ngettext("Importing from mbox... (%d mail imported)",
- "Importing from mbox... (%d mails imported)", msgs), msgs);
+ ngettext("Importing from mbox... (%ld MB imported)",
+ "Importing from mbox... (%ld MB imported)", cur_offset_mb), cur_offset_mb);
+ statusbar_progress_all(cur_offset_mb, src_stat.st_size / (1024*1024), 1);
printed=TRUE;
GTK_EVENTS_FLUSH();
}
msgs++;
} while (more);
- if (printed)
+ if (printed) {
statusbar_pop_all();
+ statusbar_progress_all(0, 0, 0);
+ }
if (apply_filter) {