[empathy] empathy-account-widget: replace the 'Connect' buton by a 'Save' one when we are offlineÂ
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy] empathy-account-widget: replace the 'Connect' buton by a 'Save' one when we are offlineÂ
- Date: Tue, 3 Nov 2009 12:49:58 +0000 (UTC)
commit 51c871d17949a1366f09eb16e74aac0cae653086
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Mon Nov 2 16:33:15 2009 +0000
empathy-account-widget: replace the 'Connect' buton by a 'Save' one when we are offline (#600427)
libempathy-gtk/empathy-account-widget.c | 38 +++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 2 deletions(-)
---
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 293b2c7..3fc556a 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -35,6 +35,7 @@
#endif
#include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-idle.h>
#include <telepathy-glib/account.h>
#include <telepathy-glib/connection-manager.h>
@@ -71,6 +72,8 @@ typedef struct {
* modify it. When we are creating an account, this member is set to TRUE */
gboolean creating_account;
+ EmpathyIdle *idle;
+
gboolean dispose_run;
} EmpathyAccountWidgetPriv;
@@ -1240,10 +1243,35 @@ do_constructed (GObject *obj)
if (!priv->simple)
{
GtkWidget *hbox = gtk_hbox_new (TRUE, 3);
+ const gchar *apply_button_id;
priv->cancel_button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
- priv->apply_button = gtk_button_new_from_stock (
- priv->creating_account ? GTK_STOCK_CONNECT : GTK_STOCK_APPLY);
+
+ if (priv->creating_account)
+ {
+ TpConnectionPresenceType state;
+ priv->idle = empathy_idle_dup_singleton ();
+
+ state = empathy_idle_get_state (priv->idle);
+
+ if (state > TP_CONNECTION_PRESENCE_TYPE_OFFLINE)
+ {
+ /* We are online, display a Connect button */
+ apply_button_id = GTK_STOCK_CONNECT;
+ }
+ else
+ {
+ /* We are offline, display a Save button */
+ apply_button_id = GTK_STOCK_SAVE;
+ }
+ }
+ else
+ {
+ /* We are editing an existing account, display an Apply button */
+ apply_button_id = GTK_STOCK_APPLY;
+ }
+
+ priv->apply_button = gtk_button_new_from_stock (apply_button_id);
#ifdef HAVE_MOBLIN
if (priv->creating_account)
@@ -1386,6 +1414,12 @@ do_dispose (GObject *obj)
priv->settings = NULL;
}
+ if (priv->idle != NULL)
+ {
+ g_object_unref (priv->idle);
+ priv->idle = NULL;
+ }
+
if (G_OBJECT_CLASS (empathy_account_widget_parent_class)->dispose != NULL)
G_OBJECT_CLASS (empathy_account_widget_parent_class)->dispose (obj);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]