aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/empathy-accounts-dialog.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 7dd9aa48b..c32763385 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -50,6 +50,7 @@
#include "empathy-accounts-dialog.h"
#include "empathy-import-dialog.h"
#include "empathy-import-utils.h"
+#include "ephy-spinner.h"
#define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT
#include <libempathy/empathy-debug.h>
@@ -81,6 +82,7 @@ typedef struct {
GtkWidget *infobar;
GtkWidget *label_status;
GtkWidget *image_status;
+ GtkWidget *throbber;
GtkWidget *frame_no_protocol;
GtkWidget *treeview;
@@ -190,6 +192,10 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
_("Connecting..."));
gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
GTK_MESSAGE_INFO);
+
+ ephy_spinner_start (EPHY_SPINNER (priv->throbber));
+ gtk_widget_show (priv->throbber);
+ gtk_widget_hide (priv->image_status);
break;
case TP_CONNECTION_STATUS_DISCONNECTED:
gtk_label_set_text (GTK_LABEL (priv->label_status),
@@ -197,16 +203,19 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
GTK_MESSAGE_WARNING);
- gtk_image_set_from_icon_name (GTK_IMAGE (priv->image_status),
- empathy_icon_name_for_presence (
- TP_CONNECTION_PRESENCE_TYPE_OFFLINE), GTK_ICON_SIZE_SMALL_TOOLBAR);
+ ephy_spinner_stop (EPHY_SPINNER (priv->throbber));
gtk_widget_show (priv->image_status);
+ gtk_widget_hide (priv->throbber);
break;
default:
gtk_label_set_text (GTK_LABEL (priv->label_status),
_("Unknown Status"));
gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
GTK_MESSAGE_WARNING);
+
+ ephy_spinner_stop (EPHY_SPINNER (priv->throbber));
+ gtk_widget_hide (priv->image_status);
+ gtk_widget_hide (priv->throbber);
}
gtk_widget_show (priv->label_status);
@@ -1666,20 +1675,25 @@ accounts_dialog_build_ui (EmpathyAccountsDialog *dialog)
gtk_window_set_transient_for (GTK_WINDOW (priv->window),
priv->parent_window);
+ /* set up spinner */
+ priv->throbber = ephy_spinner_new ();
+ ephy_spinner_set_size (EPHY_SPINNER (priv->throbber), GTK_ICON_SIZE_SMALL_TOOLBAR);
+
priv->infobar = gtk_info_bar_new ();
gtk_container_add (GTK_CONTAINER (priv->alignment_infobar),
priv->infobar);
+ priv->image_status = gtk_image_new_from_icon_name (
+ empathy_icon_name_for_presence (
+ TP_CONNECTION_PRESENCE_TYPE_OFFLINE), GTK_ICON_SIZE_SMALL_TOOLBAR);
- content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (priv->infobar));
+ priv->label_status = gtk_label_new (NULL);
- priv->image_status = gtk_image_new_from_stock (
- GTK_STOCK_INFO, GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_widget_show (priv->image_status);
+ content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (priv->infobar));
+ gtk_box_pack_start (GTK_BOX (content_area), priv->throbber,
+ FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (content_area), priv->image_status,
FALSE, FALSE, 0);
-
- priv->label_status = gtk_label_new (NULL);
gtk_container_add (GTK_CONTAINER (content_area), priv->label_status);
}