ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #01044
[Merge] lp:~ted/indicator-session/real-name-sorting-and-conflicts into lp:indicator-session
Ted Gould has proposed merging lp:~ted/indicator-session/real-name-sorting-and-conflicts into lp:indicator-session.
Requested reviews:
Indicator Applet Developers (indicator-applet-developers)
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.
--
https://code.launchpad.net/~ted/indicator-session/real-name-sorting-and-conflicts/+merge/20496
Your team ayatana-commits is subscribed to branch lp:indicator-session.
=== modified file 'src/session-service.c'
--- src/session-service.c 2010-02-23 22:55:45 +0000
+++ src/session-service.c 2010-03-02 23:05:26 +0000
@@ -406,7 +406,15 @@
UserData *user1 = (UserData *)a;
UserData *user2 = (UserData *)b;
- return g_strcmp0 (user1->user_name, user2->user_name);
+ gint retval = g_strcmp0 (user1->real_name, user2->real_name);
+
+ /* If they're the same, they're both in conflict. */
+ if (retval == 0) {
+ user1->real_name_conflict = TRUE;
+ user2->real_name_conflict = TRUE;
+ }
+
+ return retval;
}
/* Builds up the menu for us */
@@ -498,7 +506,13 @@
mi = dbusmenu_menuitem_new ();
dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_TYPE, USER_ITEM_TYPE);
+ if (user->real_name_conflict) {
+ gchar * conflictedname = g_strdup_printf("%s (%s)", user->real_name, user->user_name);
+ dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, conflictedname);
+ g_free(conflictedname);
+ } else {
dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, user->real_name);
+ }
dbusmenu_menuitem_property_set_bool (mi, USER_ITEM_PROP_LOGGED_IN, user->sessions != NULL);
dbusmenu_menuitem_child_append (root, mi);
g_signal_connect (G_OBJECT (mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_user_session), user);
=== modified file 'src/users-service-dbus.c'
--- src/users-service-dbus.c 2010-03-02 03:34:08 +0000
+++ src/users-service-dbus.c 2010-03-02 23:05:26 +0000
@@ -656,6 +656,7 @@
user->shell = g_strdup (g_value_get_string (g_value_array_get_nth (values, 3)));
user->login_count = g_value_get_int (g_value_array_get_nth (values, 4));
user->icon_url = g_strdup (g_value_get_string (g_value_array_get_nth (values, 5)));
+ user->real_name_conflict = FALSE;
g_hash_table_insert (priv->users,
g_strdup (user->user_name),
=== modified file 'src/users-service-dbus.h'
--- src/users-service-dbus.h 2010-02-09 23:24:23 +0000
+++ src/users-service-dbus.h 2010-03-02 23:05:26 +0000
@@ -47,6 +47,8 @@
GList *sessions;
+ gboolean real_name_conflict;
+
UsersServiceDbus *service;
};
Follow ups