2012-01-31 [wwp] 3.8.0cvs18
[claws.git] / src / inc.c
index 4bdeaec52acbb15ecd073518584230bff6ea7b1e..9f14c9b074933768783a04fc3bae9fe59137979f 100644 (file)
--- a/src/inc.c
+++ b/src/inc.c
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2011 Hiroyuki Yamamoto and the Claws Mail team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,6 +57,7 @@
 #include "filtering.h"
 #include "log.h"
 #include "hooks.h"
+#include "logwindow.h"
 
 #ifdef MAEMO
 #ifdef CHINOOK
@@ -133,6 +134,8 @@ static gint inc_drop_message                (Pop3Session    *session,
 static void inc_put_error              (IncState        istate,
                                         Pop3Session    *session);
 
+static void inc_showlog_cb             (GtkWidget      *widget,
+                                        gpointer        data);
 static void inc_cancel_cb              (GtkWidget      *widget,
                                         gpointer        data);
 static gint inc_dialog_delete_cb       (GtkWidget      *widget,
@@ -413,6 +416,8 @@ static IncProgressDialog *inc_progress_dialog_create(gboolean autocheck)
        progress = progress_dialog_create();
        gtk_window_set_title(GTK_WINDOW(progress->window),
                             _("Retrieving new messages"));
+       g_signal_connect(G_OBJECT(progress->showlog_btn), "clicked",
+                        G_CALLBACK(inc_showlog_cb), dialog);
        g_signal_connect(G_OBJECT(progress->cancel_btn), "clicked",
                         G_CALLBACK(inc_cancel_cb), dialog);
        g_signal_connect(G_OBJECT(progress->window), "delete_event",
@@ -768,6 +773,7 @@ static IncState inc_pop3_session_do(IncSession *session)
        Pop3Session *pop3_session = POP3_SESSION(session->session);
        IncProgressDialog *inc_dialog = (IncProgressDialog *)session->data;
        gchar *server;
+       gchar *account_name;
        gushort port;
        gchar *buf;
 
@@ -782,6 +788,7 @@ static IncState inc_pop3_session_do(IncSession *session)
        g_free(buf);
 
        server = pop3_session->ac_prefs->recv_server;
+       account_name = pop3_session->ac_prefs->account_name;
 #ifdef USE_GNUTLS
        port = pop3_session->ac_prefs->set_popport ?
                pop3_session->ac_prefs->popport :
@@ -808,7 +815,8 @@ static IncState inc_pop3_session_do(IncSession *session)
                pop3_session->ac_prefs->popport : 110;
 #endif
 
-       buf = g_strdup_printf(_("Connecting to POP3 server: %s..."), server);
+       buf = g_strdup_printf(_("Account '%s': Connecting to POP3 server: %s..."),
+                               account_name, server);
        statuswindow_print_all("%s", buf);
        log_message(LOG_PROTOCOL, "%s\n", buf);
 
@@ -837,7 +845,7 @@ static IncState inc_pop3_session_do(IncSession *session)
                return INC_CONNECT_ERROR;
        }
 
-       while (session_is_connected(SESSION(pop3_session)) &&
+       while (session_is_running(SESSION(pop3_session)) &&
               session->inc_state != INC_CANCEL)
                gtk_main_iteration();
 
@@ -970,13 +978,7 @@ static void inc_progress_dialog_set_progress(IncProgressDialog *inc_dialog,
        progress_dialog_set_fraction
                (inc_dialog->dialog, (total == 0) ? 0: (gfloat)cur_total / (gfloat)total);
 
-       g_snprintf(buf, sizeof(buf), "%d / %d",
-                  pop3_session->cur_msg, pop3_session->count);
-       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),
-                (total == 0) ? 0 : (gfloat)cur_total / (gfloat)total);
+       statusbar_progress_all(pop3_session->cur_msg, pop3_session->count, 1);
 
        if (pop3_session->cur_total_num > 0) {
                g_snprintf(buf, sizeof(buf),
@@ -1263,6 +1265,13 @@ void inc_cancel_all(void)
                inc_cancel((IncProgressDialog *)cur->data);
 }
 
+static void inc_showlog_cb(GtkWidget *widget, gpointer data)
+{
+       MainWindow *mainwin = mainwindow_get_mainwindow();
+
+       log_window_show(mainwin->logwin);
+}
+
 static void inc_cancel_cb(GtkWidget *widget, gpointer data)
 {
        inc_cancel((IncProgressDialog *)data);