From 3e22736f0211a0bb668218243bc4764435f62a58 Mon Sep 17 00:00:00 2001 From: Danielle Madeley Date: Thu, 28 Apr 2011 15:28:35 +1000 Subject: [chat-window] add a spinner to the window tab for when messages are being sent --- src/empathy-chat-window.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/empathy-chat-window.c') diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index ac97601ce..1012e4e90 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -314,6 +314,15 @@ chat_window_create_label (EmpathyChatWindow *window, if (is_tab_label) { GtkWidget *close_button; + GtkWidget *sending_spinner; + + sending_spinner = gtk_spinner_new (); + + gtk_box_pack_start (GTK_BOX (hbox), sending_spinner, + FALSE, FALSE, 0); + g_object_set_data (G_OBJECT (chat), + "chat-window-tab-sending-spinner", + sending_spinner); close_button = gedit_close_button_new (); g_object_set_data (G_OBJECT (chat), "chat-window-tab-close-button", close_button); @@ -652,6 +661,8 @@ chat_window_update_chat_tab_full (EmpathyChat *chat, const gchar *icon_name; GtkWidget *tab_image; GtkWidget *menu_image; + GtkWidget *sending_spinner; + guint nb_sending; window = chat_window_find_chat (chat); if (!window) { @@ -700,6 +711,16 @@ chat_window_update_chat_tab_full (EmpathyChat *chat, gtk_widget_hide (menu_image); } + /* Update the sending spinner */ + nb_sending = empathy_chat_get_n_messages_sending (chat); + sending_spinner = g_object_get_data (G_OBJECT (chat), + "chat-window-tab-sending-spinner"); + + g_object_set (sending_spinner, + "active", nb_sending > 0, + "visible", nb_sending > 0, + NULL); + /* Update tab tooltip */ tooltip = g_string_new (NULL); @@ -719,6 +740,15 @@ chat_window_update_chat_tab_full (EmpathyChat *chat, id, tp_account_get_display_name (account)); + if (nb_sending > 0) { + append_markup_printf (tooltip, "\n"); + append_markup_printf (tooltip, + ngettext ("Sending %d message", + "Sending %d messages", + nb_sending), + nb_sending); + } + if (!EMP_STR_EMPTY (status)) { append_markup_printf (tooltip, "\n%s", status); } @@ -2251,6 +2281,9 @@ empathy_chat_window_add_chat (EmpathyChatWindow *window, g_signal_connect (chat, "notify::sms-channel", G_CALLBACK (chat_window_chat_notify_cb), NULL); + g_signal_connect (chat, "notify::n-messages-sending", + G_CALLBACK (chat_window_chat_notify_cb), + NULL); chat_window_chat_notify_cb (chat); gtk_notebook_append_page_menu (GTK_NOTEBOOK (priv->notebook), child, label, popup_label); -- cgit v1.2.3 From 0d44943efc4f3f727861387ba89f57238aa92577 Mon Sep 17 00:00:00 2001 From: Danielle Madeley Date: Wed, 4 May 2011 10:05:16 +1000 Subject: Add a tooltip to the sending message spinner --- src/empathy-chat-window.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/empathy-chat-window.c') diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 1012e4e90..841005c93 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -741,12 +741,17 @@ chat_window_update_chat_tab_full (EmpathyChat *chat, tp_account_get_display_name (account)); if (nb_sending > 0) { - append_markup_printf (tooltip, "\n"); - append_markup_printf (tooltip, - ngettext ("Sending %d message", - "Sending %d messages", - nb_sending), - nb_sending); + char *tmp = g_strdup_printf ( + ngettext ("Sending %d message", + "Sending %d messages", + nb_sending), + nb_sending); + + g_string_append (tooltip, "\n"); + g_string_append (tooltip, tmp); + + gtk_widget_set_tooltip_text (sending_spinner, tmp); + g_free (tmp); } if (!EMP_STR_EMPTY (status)) { -- cgit v1.2.3