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

Proposed by David Barth
Status: Merged
Approved by: David Barth
Approved revision: 99
Merged at revision: 98
Proposed branch: lp:~dbarth/indicator-me/ui-adjustments
Merge into: lp:indicator-me
Diff against target: 158 lines (+59/-36)
1 file modified
src/me-service.c (+59/-36)
To merge this branch: bzr merge lp:~dbarth/indicator-me/ui-adjustments
Reviewer Review Type Date Requested Status
Jason Smith (community) Approve
Review via email: mp+33109@code.launchpad.net

Description of the change

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

To post a comment you must log in.
Revision history for this message
Jason Smith (jassmith) wrote :

+1

review: Approve
Revision history for this message
David Barth (dbarth) wrote :

fixed the parameter check you mentioned, thanks for the review.

100. By David Barth

fixing param check noticed by Jason

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/me-service.c'
2--- src/me-service.c 2010-08-16 14:50:56 +0000
3+++ src/me-service.c 2010-08-19 17:20:57 +0000
4@@ -235,32 +235,40 @@
5 DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
6 g_return_if_fail(root != NULL);
7
8+ DbusmenuMenuitem *im_accounts_mi = NULL;
9+ DbusmenuMenuitem *tw_accounts_mi = NULL;
10+ gboolean at_least_one = FALSE;
11+
12 if (program_is_installed ("empathy-accounts")) {
13- DbusmenuMenuitem *im_accounts_mi = dbusmenu_menuitem_new();
14+ im_accounts_mi = dbusmenu_menuitem_new();
15 dbusmenu_menuitem_property_set(im_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
16 _("Chat Accounts..."));
17- dbusmenu_menuitem_child_append(root, im_accounts_mi);
18 g_signal_connect(G_OBJECT(im_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
19 G_CALLBACK(spawn_on_activate_cb), "empathy-accounts");
20+ at_least_one = TRUE;
21 }
22
23 if (program_is_installed ("gwibber-accounts")) {
24- DbusmenuMenuitem *tw_accounts_mi = dbusmenu_menuitem_new();
25+ tw_accounts_mi = dbusmenu_menuitem_new();
26 dbusmenu_menuitem_property_set(tw_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
27 _("Broadcast Accounts..."));
28- dbusmenu_menuitem_child_append(root, tw_accounts_mi);
29 g_signal_connect(G_OBJECT(tw_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
30 G_CALLBACK(spawn_on_activate_cb), "gwibber-accounts");
31- }
32-
33- if (program_is_installed ("ubuntuone-preferences")) {
34- DbusmenuMenuitem *u1_accounts_mi = dbusmenu_menuitem_new();
35- dbusmenu_menuitem_property_set(u1_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL,
36- _("Ubuntu One..."));
37- dbusmenu_menuitem_child_append(root, u1_accounts_mi);
38- g_signal_connect(G_OBJECT(u1_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
39- G_CALLBACK(spawn_on_activate_cb), "ubuntuone-preferences");
40- }
41+ at_least_one = TRUE;
42+ }
43+
44+ if (at_least_one) {
45+ DbusmenuMenuitem *separator = dbusmenu_menuitem_new();
46+ dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE,
47+ DBUSMENU_CLIENT_TYPES_SEPARATOR);
48+ dbusmenu_menuitem_child_append(root, separator);
49+
50+ if (im_accounts_mi)
51+ dbusmenu_menuitem_child_append(root, im_accounts_mi);
52+ if (tw_accounts_mi)
53+ dbusmenu_menuitem_child_append(root, tw_accounts_mi);
54+ }
55+
56 }
57
58 static gboolean
59@@ -326,6 +334,8 @@
60 }
61
62
63+/* disabled for this release */
64+#if 0
65 static void
66 avatar_changed_cb (GFileMonitor * monitor, GFile * file, GFile * other_file, GFileMonitorEvent event_type, gpointer user_data)
67 {
68@@ -342,7 +352,7 @@
69 }
70
71 static void
72-build_user_item (DbusmenuMenuitem * root)
73+build_avatar_item (DbusmenuMenuitem * root)
74 {
75 useritem = dbusmenu_menuitem_new();
76 dbusmenu_menuitem_property_set(useritem, DBUSMENU_ABOUT_ME_MENUITEM_PROP_NAME, g_get_real_name ());
77@@ -361,17 +371,15 @@
78
79 g_free (filename);
80
81- gchar *gam = g_find_program_in_path("gnome-about-me");
82- if (gam != NULL) {
83- dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
84- g_signal_connect(G_OBJECT(useritem),
85- DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
86- G_CALLBACK(spawn_on_activate_cb), "gnome-about-me");
87- g_free(gam);
88- }
89+ return;
90+}
91+#endif
92
93- /* set the menu name */
94- display_mode_changed ();
95+static gboolean
96+build_menu (gpointer data)
97+{
98+ DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
99+ g_return_val_if_fail(DBUSMENU_IS_MENUITEM(root), FALSE);
100
101 /* and receive display mode notifications to update it later */
102 GConfClient *context = gconf_client_get_default ();
103@@ -383,16 +391,10 @@
104 g_object_unref (context);
105 }
106
107- return;
108-}
109-
110-static gboolean
111-build_menu (gpointer data)
112-{
113- DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data);
114- g_return_val_if_fail(root != NULL, FALSE);
115-
116- build_user_item(root);
117+ /* disabled for this release */
118+#if 0
119+ build_avatar_item(root);
120+#endif
121
122 broadcast_field = DBUSMENU_MENUITEM (entry_menu_item_new());
123 dbusmenu_menuitem_property_set_bool (broadcast_field, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
124@@ -427,12 +429,33 @@
125 g_debug("Built %s", status_strings[i]);
126 }
127
128+ build_accounts_menuitems(root);
129+
130+ /* add a standard "About Me..." menu item at the end of the menu */
131 DbusmenuMenuitem *separator = dbusmenu_menuitem_new();
132 dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE,
133 DBUSMENU_CLIENT_TYPES_SEPARATOR);
134 dbusmenu_menuitem_child_append(root, separator);
135
136- build_accounts_menuitems(root);
137+ useritem = dbusmenu_menuitem_new();
138+ dbusmenu_menuitem_property_set(useritem, DBUSMENU_MENUITEM_PROP_LABEL, _("About Me..."));
139+ dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
140+ dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
141+ dbusmenu_menuitem_child_append(root, useritem);
142+
143+ gchar *gam = g_find_program_in_path("gnome-about-me");
144+ if (gam != NULL) {
145+ dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_ENABLED, TRUE);
146+ g_signal_connect(G_OBJECT(useritem),
147+ DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
148+ G_CALLBACK(spawn_on_activate_cb), "gnome-about-me");
149+ g_free(gam);
150+ }
151+
152+ /* finally set the menu name and update items visibility according
153+ to a gconf key
154+ */
155+ display_mode_changed ();
156
157 return FALSE;
158 }

Subscribers

People subscribed via source and target branches