← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~dbarth/indicator-me/ui-adjustments into lp:indicator-me

 

David Barth has proposed merging lp:~dbarth/indicator-me/ui-adjustments into lp:indicator-me.

Requested reviews:
  Indicator Applet Developers (indicator-applet-developers)


UI changes:
1. remove the U1 menu item that doesn't fit into the me menu
2. remove the avatar that user testing found to be difficult to associate oneself with
3. provide a simple 'about me' entry at the bottom of the menu

-- 
https://code.launchpad.net/~dbarth/indicator-me/ui-adjustments/+merge/33109
Your team ayatana-commits is subscribed to branch lp:indicator-me.
=== modified file 'src/me-service.c'
--- src/me-service.c	2010-08-16 14:50:56 +0000
+++ src/me-service.c	2010-08-19 14:24:43 +0000
@@ -235,32 +235,40 @@
 	DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
 	g_return_if_fail(root != NULL);
 
+  DbusmenuMenuitem *im_accounts_mi = NULL;
+  DbusmenuMenuitem *tw_accounts_mi = NULL;
+  gboolean at_least_one = FALSE;
+
   if (program_is_installed ("empathy-accounts")) {
-    DbusmenuMenuitem *im_accounts_mi = dbusmenu_menuitem_new();
+    im_accounts_mi = dbusmenu_menuitem_new();
     dbusmenu_menuitem_property_set(im_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
                                    _("Chat Accounts..."));
-    dbusmenu_menuitem_child_append(root, im_accounts_mi);
     g_signal_connect(G_OBJECT(im_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
                      G_CALLBACK(spawn_on_activate_cb), "empathy-accounts");
+    at_least_one = TRUE;
   }
 
   if (program_is_installed ("gwibber-accounts")) {
-    DbusmenuMenuitem *tw_accounts_mi = dbusmenu_menuitem_new();
+    tw_accounts_mi = dbusmenu_menuitem_new();
     dbusmenu_menuitem_property_set(tw_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
                                    _("Broadcast Accounts..."));
-    dbusmenu_menuitem_child_append(root, tw_accounts_mi);
     g_signal_connect(G_OBJECT(tw_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
                      G_CALLBACK(spawn_on_activate_cb), "gwibber-accounts");
-  }
-
-  if (program_is_installed ("ubuntuone-preferences")) {
-    DbusmenuMenuitem *u1_accounts_mi = dbusmenu_menuitem_new();
-    dbusmenu_menuitem_property_set(u1_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
-                                   _("Ubuntu One..."));
-    dbusmenu_menuitem_child_append(root, u1_accounts_mi);
-    g_signal_connect(G_OBJECT(u1_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
-                     G_CALLBACK(spawn_on_activate_cb), "ubuntuone-preferences");
-  }
+    at_least_one = TRUE;
+  }
+
+  if (at_least_one) {
+    DbusmenuMenuitem *separator = dbusmenu_menuitem_new();
+    dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE,
+                                   DBUSMENU_CLIENT_TYPES_SEPARATOR);
+    dbusmenu_menuitem_child_append(root, separator);
+
+    if (im_accounts_mi)
+      dbusmenu_menuitem_child_append(root, im_accounts_mi);
+    if (tw_accounts_mi)
+      dbusmenu_menuitem_child_append(root, tw_accounts_mi);
+  }
+
 }
 
 static gboolean
@@ -326,6 +334,8 @@
 }
 
 
+/* disabled for this release */
+#if 0
 static void
 avatar_changed_cb (GFileMonitor * monitor, GFile * file, GFile * other_file, GFileMonitorEvent event_type, gpointer user_data)
 {
@@ -342,7 +352,7 @@
 }
 
 static void
-build_user_item (DbusmenuMenuitem * root)
+build_avatar_item (DbusmenuMenuitem * root)
 {
   useritem = dbusmenu_menuitem_new();
   dbusmenu_menuitem_property_set(useritem, DBUSMENU_ABOUT_ME_MENUITEM_PROP_NAME, g_get_real_name ());
@@ -361,17 +371,15 @@
 
   g_free (filename);
 
-  gchar *gam = g_find_program_in_path("gnome-about-me");
-  if (gam != NULL) {
-    dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
-    g_signal_connect(G_OBJECT(useritem),
-                     DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
-                     G_CALLBACK(spawn_on_activate_cb), "gnome-about-me");
-    g_free(gam);
-  }
+	return;
+}
+#endif
 
-  /* set the menu name */
-  display_mode_changed ();
+static gboolean
+build_menu (gpointer data)
+{
+	DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
+	g_return_val_if_fail(root != NULL, FALSE);
 
   /* and receive display mode notifications to update it later */
   GConfClient *context = gconf_client_get_default ();
@@ -383,16 +391,10 @@
     g_object_unref (context);
   }
 
-	return;
-}
-
-static gboolean
-build_menu (gpointer data)
-{
-	DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
-	g_return_val_if_fail(root != NULL, FALSE);
-
-  build_user_item(root);
+  /* disabled for this release */
+#if 0
+  build_avatar_item(root);
+#endif
 
   broadcast_field = DBUSMENU_MENUITEM (entry_menu_item_new());
   dbusmenu_menuitem_property_set_bool (broadcast_field, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
@@ -427,12 +429,33 @@
 		g_debug("Built %s", status_strings[i]);
 	}
 
+	build_accounts_menuitems(root);
+
+  /* add a standard "About Me..." menu item at the end of the menu */
 	DbusmenuMenuitem *separator = dbusmenu_menuitem_new();
 	dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE,
                                  DBUSMENU_CLIENT_TYPES_SEPARATOR);
 	dbusmenu_menuitem_child_append(root, separator);
 
-	build_accounts_menuitems(root);
+  useritem = dbusmenu_menuitem_new();
+  dbusmenu_menuitem_property_set(useritem, DBUSMENU_MENUITEM_PROP_LABEL, _("About Me..."));
+  dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
+  dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
+  dbusmenu_menuitem_child_append(root, useritem);
+
+  gchar *gam = g_find_program_in_path("gnome-about-me");
+  if (gam != NULL) {
+    dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
+    g_signal_connect(G_OBJECT(useritem),
+                     DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
+                     G_CALLBACK(spawn_on_activate_cb), "gnome-about-me");
+    g_free(gam);
+  }
+
+  /* finally set the menu name and update items visibility according
+     to a gconf key
+  */
+  display_mode_changed ();
 
 	return FALSE;
 }


Follow ups