[empathy] add account_widget_get_service() and an enum to represent services



commit 0087a5bd8ddd99a16288bd74a5e23da41c0d8dd1
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Sep 30 10:20:15 2010 +0200

    add account_widget_get_service() and an enum to represent services

 libempathy-gtk/empathy-account-widget.c |   53 +++++++++++++++++++++++-------
 1 files changed, 40 insertions(+), 13 deletions(-)
---
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index c14ca59..25a2e6f 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -54,6 +54,15 @@
 
 G_DEFINE_TYPE (EmpathyAccountWidget, empathy_account_widget, G_TYPE_OBJECT)
 
+typedef enum
+{
+  NO_SERVICE = 0,
+  GTALK_SERVICE,
+  FACEBOOK_SERVICE,
+  OVI_SERVICE,
+  N_SERVICES
+} Service;
+
 typedef struct {
   EmpathyAccountSettings *settings;
 
@@ -1341,6 +1350,26 @@ setup_id_widget_with_suffix (EmpathyAccountWidget *self,
       G_CALLBACK (suffix_id_widget_changed_cb), self);
 }
 
+static Service
+account_widget_get_service (EmpathyAccountWidget *self)
+{
+  EmpathyAccountWidgetPriv *priv = GET_PRIV (self);
+
+  if (!tp_strdiff (empathy_account_settings_get_icon_name (priv->settings),
+      "im-google-talk"))
+    return GTALK_SERVICE;
+
+  if (!tp_strdiff (empathy_account_settings_get_icon_name (priv->settings),
+      "im-facebook"))
+    return FACEBOOK_SERVICE;
+
+  if (!tp_strdiff (empathy_account_settings_get_service (priv->settings),
+      "ovi-chat"))
+    return OVI_SERVICE;
+
+  return NO_SERVICE;
+}
+
 static void
 account_widget_build_jabber (EmpathyAccountWidget *self,
     const char *filename)
@@ -1352,18 +1381,16 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
   GtkWidget *label_id_create, *label_password_create;
   GtkWidget *label_example_gtalk, *label_example_jabber, *label_example_fb;
   GtkWidget *label_example_ovi;
-  gboolean is_gtalk, is_facebook, is_ovi;
   GtkWidget *expander_advanced;
   GtkWidget *entry_id;
+  Service service;
 
-  is_gtalk = account_widget_is_gtalk (self);
-  is_facebook = account_widget_is_facebook (self);
-  is_ovi = account_widget_is_ovi (self);
+  service = account_widget_get_service (self);
 
   empathy_account_settings_set_regex (priv->settings, "account",
       ACCOUNT_REGEX_JABBER);
 
-  if (priv->simple && !is_gtalk && !is_facebook && !is_ovi)
+  if (priv->simple && service == NO_SERVICE)
     {
       /* Simple widget for XMPP */
       self->ui_details->gui = empathy_builder_get_file (filename,
@@ -1389,7 +1416,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
 
       self->ui_details->default_focus = g_strdup ("entry_id_simple");
     }
-  else if (priv->simple && is_gtalk)
+  else if (priv->simple && service == GTALK_SERVICE)
     {
       /* Simple widget for Google Talk */
       self->ui_details->gui = empathy_builder_get_file (filename,
@@ -1403,7 +1430,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
 
       self->ui_details->default_focus = g_strdup ("entry_id_g_simple");
     }
-  else if (priv->simple && is_facebook)
+  else if (priv->simple && service == FACEBOOK_SERVICE)
     {
       /* Simple widget for Facebook */
       self->ui_details->gui = empathy_builder_get_file (filename,
@@ -1419,7 +1446,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
 
       self->ui_details->default_focus = g_strdup ("entry_id_fb_simple");
     }
-  else if (priv->simple && is_ovi)
+  else if (priv->simple && service == OVI_SERVICE)
     {
       /* Simple widget for Ovi */
       self->ui_details->gui = empathy_builder_get_file (filename,
@@ -1463,7 +1490,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
           "checkbutton_encryption", "require-encryption",
           NULL);
 
-      if (is_facebook)
+      if (service == FACEBOOK_SERVICE)
         {
           gtk_label_set_label (GTK_LABEL (label_id), _("Username:"));
 
@@ -1471,7 +1498,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
            * "@chat.facebook.com" part */
           setup_id_widget_with_suffix (self, entry_id, "@chat.facebook.com");
         }
-      else if (is_ovi)
+      else if (service == OVI_SERVICE)
         {
           gtk_label_set_label (GTK_LABEL (label_id), _("Username:"));
 
@@ -1489,12 +1516,12 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
           G_CALLBACK (account_widget_jabber_ssl_toggled_cb),
           self);
 
-      if (is_gtalk)
+      if (service == GTALK_SERVICE)
         {
           gtk_widget_hide (label_example_jabber);
           gtk_widget_show (label_example_gtalk);
         }
-      else if (is_facebook)
+      else if (service == FACEBOOK_SERVICE)
         {
           GtkContainer *parent;
           GList *children;
@@ -1511,7 +1538,7 @@ account_widget_build_jabber (EmpathyAccountWidget *self,
           gtk_widget_show (label_example_fb);
           gtk_widget_hide (expander_advanced);
         }
-      else if (is_ovi)
+      else if (service == OVI_SERVICE)
         {
           gtk_widget_hide (label_example_jabber);
           gtk_widget_show (label_example_ovi);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]