Merge lp:~ted/indicator-session/real-name-sorting-and-conflicts into lp:indicator-session/0.1

Proposed by Ted Gould
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ted/indicator-session/real-name-sorting-and-conflicts
Merge into: lp:indicator-session/0.1
Diff against target: 58 lines (+18/-1)
3 files modified
src/session-service.c (+15/-1)
src/users-service-dbus.c (+1/-0)
src/users-service-dbus.h (+2/-0)
To merge this branch: bzr merge lp:~ted/indicator-session/real-name-sorting-and-conflicts
Reviewer Review Type Date Requested Status
David Barth Approve
Review via email: mp+20496@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

Making it so that the entires are sorted by real name. And if they get
in conflict that the user name is shown to disambiguate them.

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

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/session-service.c'
2--- src/session-service.c 2010-02-23 22:55:45 +0000
3+++ src/session-service.c 2010-03-02 23:05:26 +0000
4@@ -406,7 +406,15 @@
5 UserData *user1 = (UserData *)a;
6 UserData *user2 = (UserData *)b;
7
8- return g_strcmp0 (user1->user_name, user2->user_name);
9+ gint retval = g_strcmp0 (user1->real_name, user2->real_name);
10+
11+ /* If they're the same, they're both in conflict. */
12+ if (retval == 0) {
13+ user1->real_name_conflict = TRUE;
14+ user2->real_name_conflict = TRUE;
15+ }
16+
17+ return retval;
18 }
19
20 /* Builds up the menu for us */
21@@ -498,7 +506,13 @@
22
23 mi = dbusmenu_menuitem_new ();
24 dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_TYPE, USER_ITEM_TYPE);
25+ if (user->real_name_conflict) {
26+ gchar * conflictedname = g_strdup_printf("%s (%s)", user->real_name, user->user_name);
27+ dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, conflictedname);
28+ g_free(conflictedname);
29+ } else {
30 dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, user->real_name);
31+ }
32 dbusmenu_menuitem_property_set_bool (mi, USER_ITEM_PROP_LOGGED_IN, user->sessions != NULL);
33 dbusmenu_menuitem_child_append (root, mi);
34 g_signal_connect (G_OBJECT (mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_user_session), user);
35
36=== modified file 'src/users-service-dbus.c'
37--- src/users-service-dbus.c 2010-03-02 03:34:08 +0000
38+++ src/users-service-dbus.c 2010-03-02 23:05:26 +0000
39@@ -656,6 +656,7 @@
40 user->shell = g_strdup (g_value_get_string (g_value_array_get_nth (values, 3)));
41 user->login_count = g_value_get_int (g_value_array_get_nth (values, 4));
42 user->icon_url = g_strdup (g_value_get_string (g_value_array_get_nth (values, 5)));
43+ user->real_name_conflict = FALSE;
44
45 g_hash_table_insert (priv->users,
46 g_strdup (user->user_name),
47
48=== modified file 'src/users-service-dbus.h'
49--- src/users-service-dbus.h 2010-02-09 23:24:23 +0000
50+++ src/users-service-dbus.h 2010-03-02 23:05:26 +0000
51@@ -47,6 +47,8 @@
52
53 GList *sessions;
54
55+ gboolean real_name_conflict;
56+
57 UsersServiceDbus *service;
58 };
59

Subscribers

People subscribed via source and target branches