[empathy] contact-widget: don't display the account when editing our info



commit 98648871225823cf7ddc11a746185fe9007d6936
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Wed Mar 14 11:57:12 2012 +0100

    contact-widget: don't display the account when editing our info
    
    All these flags are making this code pretty messy. Hopefully we'll move and
    clean it when implementing the new design next cycle.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=672036

 libempathy-gtk/empathy-contact-widget.c  |   20 +++++++++++++++-----
 libempathy-gtk/empathy-contact-widget.h  |    1 +
 libempathy-gtk/empathy-contact-widget.ui |    2 +-
 src/empathy-accounts-dialog.c            |    3 ++-
 4 files changed, 19 insertions(+), 7 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index edeec31..e44772a 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -103,6 +103,7 @@ typedef struct
   GtkWidget *vbox_avatar;
   GtkWidget *favourite_checkbox;
   GtkWidget *label_details;
+  GtkWidget *label_left_account;
 
   /* Location */
   GtkWidget *vbox_location;
@@ -1403,7 +1404,7 @@ contact_widget_contact_update (EmpathyContactWidget *information)
               contact_widget_change_contact, information);
         }
     }
-  else
+  else if ((information->flags & EMPATHY_CONTACT_WIDGET_NO_ACCOUNT) == 0)
     {
       if (account)
         {
@@ -1585,6 +1586,11 @@ contact_widget_contact_setup (EmpathyContactWidget *information)
             G_CALLBACK (contact_widget_change_contact),
             information);
     }
+  else if (information->flags & EMPATHY_CONTACT_WIDGET_NO_ACCOUNT)
+    {
+      /* Don't display the account */
+      gtk_widget_hide (information->label_left_account);
+    }
   else
     {
       /* Pack the protocol icon with the account name in an hbox */
@@ -1606,11 +1612,14 @@ contact_widget_contact_setup (EmpathyContactWidget *information)
           information->label_account, FALSE, TRUE, 0);
     }
 
-  gtk_grid_attach (GTK_GRID (information->grid_contact),
-      information->widget_account,
-      1, 0, 1, 1);
+  if (information->widget_account != NULL)
+    {
+      gtk_grid_attach (GTK_GRID (information->grid_contact),
+          information->widget_account,
+          1, 0, 1, 1);
 
-  gtk_widget_show (information->widget_account);
+      gtk_widget_show (information->widget_account);
+    }
 
   /* Set up avatar chooser/display */
   if (information->flags & EMPATHY_CONTACT_WIDGET_EDIT_AVATAR)
@@ -1761,6 +1770,7 @@ empathy_contact_widget_new (EmpathyContact *contact,
        "grid_client", &information->grid_client,
        "hbox_client_requested", &information->hbox_client_requested,
        "label_details", &information->label_details,
+       "label_left_account", &information->label_left_account,
        NULL);
   g_free (filename);
 
diff --git a/libempathy-gtk/empathy-contact-widget.h b/libempathy-gtk/empathy-contact-widget.h
index 2533248..a50f9fa 100644
--- a/libempathy-gtk/empathy-contact-widget.h
+++ b/libempathy-gtk/empathy-contact-widget.h
@@ -64,6 +64,7 @@ typedef enum
   EMPATHY_CONTACT_WIDGET_SHOW_DETAILS = 1 << 8,
   EMPATHY_CONTACT_WIDGET_EDIT_DETAILS = 1 << 9,
   EMPATHY_CONTACT_WIDGET_NO_STATUS    = 1 << 10,
+  EMPATHY_CONTACT_WIDGET_NO_ACCOUNT   = 1 << 11,
 } EmpathyContactWidgetFlags;
 
 GtkWidget * empathy_contact_widget_new (EmpathyContact *contact,
diff --git a/libempathy-gtk/empathy-contact-widget.ui b/libempathy-gtk/empathy-contact-widget.ui
index a8d9fbe..c6cb7a5 100644
--- a/libempathy-gtk/empathy-contact-widget.ui
+++ b/libempathy-gtk/empathy-contact-widget.ui
@@ -10,7 +10,7 @@
         <property name="column_spacing">6</property>
         <property name="row_spacing">6</property>
         <child>
-          <object class="GtkLabel" id="label680">
+          <object class="GtkLabel" id="label_left_account">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">Account:</property>
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 2cc2482..ec40ef3 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -788,7 +788,8 @@ account_dialog_got_self_contact (TpConnection *conn,
       EMPATHY_CONTACT_WIDGET_EDIT_ALIAS |
       EMPATHY_CONTACT_WIDGET_EDIT_AVATAR |
       EMPATHY_CONTACT_WIDGET_NO_STATUS |
-      EMPATHY_CONTACT_WIDGET_EDIT_DETAILS);
+      EMPATHY_CONTACT_WIDGET_EDIT_DETAILS |
+      EMPATHY_CONTACT_WIDGET_NO_ACCOUNT);
 
   gtk_box_pack_start (GTK_BOX (priv->dialog_content), alig, TRUE, TRUE, 0);
   gtk_container_add (GTK_CONTAINER (alig), editor);



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