From: Paul Mangan Date: Thu, 29 Jan 2004 10:26:55 +0000 (+0000) Subject: sync with 0.9.9 release X-Git-Tag: rel_0_9_9~12 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=a950ee1a06b495796c6d9101ef10264e7facb00f sync with 0.9.9 release --- diff --git a/ChangeLog b/ChangeLog index 6f33d9c3f..1e9d727cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2004-01-29 + + * version 0.9.9 + +2004-01-29 + + * src/folder.c: folder_item_fetch_all_msg() + src/folderview.c: folderview_download_cb(): show progress with + the progressbar. + * src/mainwindow.[ch]: added new functions for progressbar. + 2004-01-29 * src/summaryview.c: summary_key_pressed(): GDK_Left should only diff --git a/ChangeLog.claws b/ChangeLog.claws index 1d5f95f6a..c16b0919f 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,8 @@ +2004-01-29 [paul] 0.9.8claws58 + + * sync with 0.9.9 release + see ChangeLog 2004-01-29 + 2004-01-29 [paul] 0.9.8claws57 * sync with 0.9.8cvs11 diff --git a/ChangeLog.jp b/ChangeLog.jp index 4f31162d7..4d44e7b49 100644 --- a/ChangeLog.jp +++ b/ChangeLog.jp @@ -1,3 +1,14 @@ +2004-01-29 + + * version 0.9.9 + +2004-01-29 + + * src/folder.c: folder_item_fetch_all_msg() + src/folderview.c: folderview_download_cb(): ¿ÊĽ¤ò¥×¥í¥°¥ì¥¹¥Ð¡¼¤Ç + ɽ¼¨¡£ + * src/mainwindow.[ch]: ¿·¤¿¤Ë¥×¥í¥°¥ì¥¹¥Ð¡¼ÍѤδؿô¤òÄɲᣠ+ 2004-01-29 * src/summaryview.c: summary_key_pressed(): ¥µ¥Þ¥ê¥Ó¥å¡¼¤Î¿åÊ¿ diff --git a/NEWS b/NEWS index 73f4273c5..16a809431 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,18 @@ Changes of Sylpheed +* 0.9.9 + + * Word wrapping on multibyte locales has been improved. + * The receive menu has been improved. + * The combo button for toolbar has been implemented. + * The download feature for IMAP / News folders has been implemented. + * URL is now shown on the toolbar when links are clicked, and put + warning in case of fake URL. + * JIS X 0201 Kana (hankaku kana) will be converted into JIS X 0208 + when sending. + * Crashes on 64-bit environments has been fixed. + * Other bugfixes have been made. + * 0.9.8a * The bug that caused the failure of cache data read has been fixed. diff --git a/configure.ac b/configure.ac index 318269050..9e9bde849 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=9 MICRO_VERSION=8 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=57 +EXTRA_VERSION=58 if test $EXTRA_VERSION -eq 0; then VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws else diff --git a/src/folder.c b/src/folder.c index f7e1849a3..71f7688aa 100644 --- a/src/folder.c +++ b/src/folder.c @@ -1883,20 +1883,35 @@ gchar *folder_item_fetch_msg(FolderItem *item, gint num) gint folder_item_fetch_all_msg(FolderItem *item) { + Folder *folder; GSList *mlist; GSList *cur; + gint num = 0; gint ret = 0; g_return_val_if_fail(item != NULL, -1); debug_print("fetching all messages in %s ...\n", item->path); + folder = item->folder; + + if (folder->ui_func) + folder->ui_func(folder, item, folder->ui_func_data ? + folder->ui_func_data : GINT_TO_POINTER(num)); + mlist = folder_item_get_msg_list(item); for (cur = mlist; cur != NULL; cur = cur->next) { MsgInfo *msginfo = (MsgInfo *)cur->data; gchar *msg; + num++; + if (folder->ui_func) + folder->ui_func(folder, item, + folder->ui_func_data ? + folder->ui_func_data : + GINT_TO_POINTER(num)); + msg = folder_item_fetch_msg(item, msginfo->msgnum); if (!msg) { g_warning("Can't fetch message %d. Aborting.\n", diff --git a/src/folderview.c b/src/folderview.c index d5321c64c..7bae72c48 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1827,6 +1827,26 @@ static GtkCTreeNode *folderview_find_by_name(GtkCTree *ctree, return NULL; } +static void folderview_download_func(Folder *folder, FolderItem *item, + gpointer data) +{ + GList *list; + + for (list = folderview_list; list != NULL; list = list->next) { + FolderView *folderview = (FolderView *)list->data; + MainWindow *mainwin = folderview->mainwin; + gchar *str; + + str = g_strdup_printf + (_("Downloading messages in %s ..."), item->path); + main_window_progress_set(mainwin, + GPOINTER_TO_INT(data), item->total_msgs); + STATUSBAR_PUSH(mainwin, str); + STATUSBAR_POP(mainwin); + g_free(str); + } +} + static void folderview_download_cb(FolderView *folderview, guint action, GtkWidget *widget) { @@ -1849,11 +1869,13 @@ static void folderview_download_cb(FolderView *folderview, guint action, return; } #endif - STATUSBAR_PUSH(mainwin, _("Downloading messages...")); main_window_cursor_wait(mainwin); inc_lock(); main_window_lock(mainwin); + gtk_widget_set_sensitive(folderview->ctree, FALSE); + main_window_progress_on(mainwin); GTK_EVENTS_FLUSH(); + folder_set_ui_func(item->folder, folderview_download_func, NULL); if (folder_item_fetch_all_msg(item) < 0) { gchar *name; @@ -1861,10 +1883,12 @@ static void folderview_download_cb(FolderView *folderview, guint action, alertpanel_error(_("Error occurred while downloading messages in `%s'."), name); g_free(name); } + folder_set_ui_func(item->folder, NULL, NULL); + main_window_progress_off(mainwin); + gtk_widget_set_sensitive(folderview->ctree, TRUE); main_window_unlock(mainwin); inc_unlock(); main_window_cursor_normal(mainwin); - STATUSBAR_POP(mainwin); } static void folderview_update_tree_cb(FolderView *folderview, guint action, diff --git a/src/inc.c b/src/inc.c index d299130c0..a62beccec 100644 --- a/src/inc.c +++ b/src/inc.c @@ -410,10 +410,7 @@ static void inc_progress_dialog_clear(IncProgressDialog *inc_dialog) progress_dialog_set_value(inc_dialog->dialog, 0.0); progress_dialog_set_label(inc_dialog->dialog, ""); if (inc_dialog->mainwin) - gtk_progress_set_show_text - (GTK_PROGRESS(inc_dialog->mainwin->progressbar), FALSE); - gtk_progress_bar_update - (GTK_PROGRESS_BAR(inc_dialog->mainwin->progressbar), 0.0); + main_window_progress_off(inc_dialog->mainwin); } static void inc_progress_dialog_destroy(IncProgressDialog *inc_dialog) @@ -423,11 +420,7 @@ static void inc_progress_dialog_destroy(IncProgressDialog *inc_dialog) inc_dialog_list = g_list_remove(inc_dialog_list, inc_dialog); if (inc_dialog->mainwin) - gtk_progress_set_show_text - (GTK_PROGRESS(inc_dialog->mainwin->progressbar), FALSE); - gtk_progress_bar_update - (GTK_PROGRESS_BAR(inc_dialog->mainwin->progressbar), 0.0); - + main_window_progress_off(inc_dialog->mainwin); progress_dialog_destroy(inc_dialog->dialog); g_free(inc_dialog); diff --git a/src/mainwindow.c b/src/mainwindow.c index 2c81f0a72..5d9cb9fb9 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -1522,6 +1522,30 @@ void main_window_get_position(MainWindow *mainwin) } } +void main_window_progress_on(MainWindow *mainwin) +{ + gtk_progress_set_show_text(GTK_PROGRESS(mainwin->progressbar), TRUE); + gtk_progress_set_format_string(GTK_PROGRESS(mainwin->progressbar), ""); +} + +void main_window_progress_off(MainWindow *mainwin) +{ + gtk_progress_set_show_text(GTK_PROGRESS(mainwin->progressbar), FALSE); + gtk_progress_bar_update(GTK_PROGRESS_BAR(mainwin->progressbar), 0.0); + gtk_progress_set_format_string(GTK_PROGRESS(mainwin->progressbar), ""); +} + +void main_window_progress_set(MainWindow *mainwin, gint cur, gint total) +{ + gchar buf[32]; + + g_snprintf(buf, sizeof(buf), "%d / %d", cur, total); + gtk_progress_set_format_string(GTK_PROGRESS(mainwin->progressbar), buf); + gtk_progress_bar_update(GTK_PROGRESS_BAR(mainwin->progressbar), + (cur == 0 && total == 0) ? 0 : + (gfloat)cur / (gfloat)total); +} + void main_window_empty_trash(MainWindow *mainwin, gboolean confirm) { GList *list; diff --git a/src/mainwindow.h b/src/mainwindow.h index f75843252..e535be491 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -163,6 +163,12 @@ void main_window_toggle_message_view (MainWindow *mainwin); void main_window_get_size (MainWindow *mainwin); void main_window_get_position (MainWindow *mainwin); +void main_window_progress_on (MainWindow *mainwin); +void main_window_progress_off (MainWindow *mainwin); +void main_window_progress_set (MainWindow *mainwin, + gint cur, + gint total); + void main_window_empty_trash (MainWindow *mainwin, gboolean confirm); void main_window_add_mailbox (MainWindow *mainwin);