diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/import.c | 21 |
2 files changed, 22 insertions, 3 deletions
@@ -1,5 +1,9 @@ 2009-08-10 + * src/import.c: added eml file import (one file). + +2009-08-10 + * src/import.c: added format selection menu, and refactored the code. 2009-08-10 diff --git a/src/import.c b/src/import.c index 131cbf3d..c5b95d06 100644 --- a/src/import.c +++ b/src/import.c @@ -157,6 +157,10 @@ static gint import_do(void) FolderItem *dest; gchar *filename; gchar *msg; + gint type; + + type = menu_get_option_menu_active_index + (GTK_OPTION_MENU(format_optmenu)); utf8filename = gtk_entry_get_text(GTK_ENTRY(file_entry)); destdir = gtk_entry_get_text(GTK_ENTRY(dest_entry)); @@ -168,6 +172,11 @@ static gint import_do(void) g_warning("faild to convert character set\n"); filename = g_strdup(utf8filename); } + if (!g_file_test(filename, G_FILE_TEST_EXISTS)) { + alertpanel_error(_("The source file does not exist.")); + g_free(filename); + return -1; + } if (!destdir || !*destdir) { dest = folder_find_item_from_path(INBOX_DIR); @@ -193,9 +202,15 @@ static gint import_do(void) gtk_widget_show(progress->window); ui_update(); - folder_set_ui_func(dest->folder, proc_mbox_func, NULL); - ok = proc_mbox(dest, filename, NULL); - folder_set_ui_func(dest->folder, NULL, NULL); + if (type == IMPORT_MBOX) { + folder_set_ui_func(dest->folder, proc_mbox_func, NULL); + ok = proc_mbox(dest, filename, NULL); + folder_set_ui_func(dest->folder, NULL, NULL); + } else if (type == IMPORT_EML_FILE) { + MsgFlags flags = { MSG_NEW|MSG_UNREAD, MSG_RECEIVED }; + folder_item_add_msg(dest, filename, &flags, FALSE); + } else if (type == IMPORT_EML_FOLDER) { + } progress_dialog_set_label(progress, _("Scanning folder...")); ui_update(); |