[anjal] Spinner on checkmail to indicate mails downloaded.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Spinner on checkmail to indicate mails downloaded.
- Date: Mon, 30 Mar 2009 13:36:48 -0400 (EDT)
commit a95679ede2e829b8470f998958c75e8938d57145
Author: Srinivasa Ragavan <sragavan novell com>
Date: Mon Mar 30 23:00:24 2009 +0530
Spinner on checkmail to indicate mails downloaded.
---
src/mail-shell.c | 17 +++++++++++++++--
src/mail-view.c | 29 ++++++++++++++++++++++++++---
2 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/src/mail-shell.c b/src/mail-shell.c
index 608269d..61bacb6 100644
--- a/src/mail-shell.c
+++ b/src/mail-shell.c
@@ -258,8 +258,21 @@ mail_shell_construct (MailShell *shell)
gtk_box_pack_start ((GtkBox *)priv->top_bar, priv->new_mail, FALSE, FALSE, 0);
gtk_widget_show (priv->new_mail);
- priv->check_mail = gtk_button_new_with_mnemonic (_("Check email"));
- gtk_button_set_image ((GtkButton *)priv->check_mail, gtk_image_new_from_icon_name("mail-send-receive", GTK_ICON_SIZE_BUTTON));
+ priv->check_mail = gtk_button_new ();
+ box = gtk_hbox_new (FALSE, 0);
+ tmp = e_spinner_new_spinning_small_shown();
+ gtk_widget_hide(tmp);
+ g_object_set_data (priv->check_mail, "spinner", tmp);
+ gtk_box_pack_start ((GtkBox *)box, tmp, FALSE, FALSE, 0);
+ tmp = gtk_image_new_from_icon_name("mail-send-receive", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show(tmp);
+ g_object_set_data (priv->check_mail, "icon", tmp);
+ gtk_box_pack_start ((GtkBox *)box, tmp, FALSE, FALSE, 0);
+ tmp = gtk_label_new_with_mnemonic (_("Check _email"));
+ gtk_widget_show(tmp);
+ gtk_box_pack_start ((GtkBox *)box, tmp, FALSE, FALSE, 2);
+ gtk_container_add (priv->check_mail, box);
+ gtk_widget_show(box);
gtk_box_pack_start ((GtkBox *)priv->top_bar, priv->check_mail, FALSE, FALSE, 0);
gtk_widget_show (priv->check_mail);
g_signal_connect (priv->check_mail, "clicked", G_CALLBACK(ms_check_mail), shell);
diff --git a/src/mail-view.c b/src/mail-view.c
index e7d4d7f..75c3b2e 100644
--- a/src/mail-view.c
+++ b/src/mail-view.c
@@ -433,6 +433,27 @@ mail_view_set_sort_by (MailView *mv, GtkWidget *button)
mv->sort_by = button;;
}
+static void
+mv_spinner_show (MailView *mv, gboolean show)
+{
+ GtkWidget *spinner = g_object_get_data (mv->check_mail, "spinner");
+ GtkWidget *icon = g_object_get_data (mv->check_mail, "icon");
+
+ if(show) {
+ gtk_widget_show (spinner);
+ gtk_widget_hide(icon);
+ } else {
+ gtk_widget_show (icon);
+ gtk_widget_hide(spinner);
+ }
+}
+
+static void
+mv_spinner_done (CamelFolder *f, MailView *mv)
+{
+ mv_spinner_show (mv, FALSE);
+}
+
void
mail_view_check_mail(MailView *mv)
{
@@ -441,9 +462,11 @@ mail_view_check_mail(MailView *mv)
if (child->type == MAIL_VIEW_FOLDER) {
mail_folder_view_check_mail (child);
CamelFolder *folder;
-
- if ((folder = em_folder_tree_get_selected_folder (mv->tree)) != NULL)
- mail_refresh_folder(folder, NULL, NULL);
+
+ if ((folder = em_folder_tree_get_selected_folder (mv->tree)) != NULL) {
+ mv_spinner_show (mv, TRUE);
+ mail_refresh_folder(folder, mv_spinner_done, mv);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]