enum
{
- LIST_PROP_0,
- LIST_PROP_NUM_USERS,
+ LIST_PROP_NUM_USERS = 1,
LIST_PROP_LENGTH,
LIST_PROP_USERS,
};
enum
{
- USER_PROP_0,
- USER_PROP_COMMON_USER,
+ USER_PROP_COMMON_USER = 1,
USER_PROP_NAME,
USER_PROP_REAL_NAME,
USER_PROP_DISPLAY_NAME,
}
static void
-initialize_user_list_if_needed (LightDMUserList *user_list)
+initialize_user_list_if_needed (LightDMUserList *user_list, const gchar *username)
{
LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list);
GList *common_users;
if (priv->initialized)
return;
- common_users = common_user_list_get_users (common_user_list_get_instance ());
- for (link = common_users; link; link = link->next)
+ if (!username)
{
- CommonUser *user = link->data;
+ common_users = common_user_list_get_users (common_user_list_get_instance ());
+ for (link = common_users; link; link = link->next)
+ {
+ CommonUser *user = link->data;
+ LightDMUser *lightdm_user = wrap_common_user (user);
+ priv->lightdm_list = g_list_prepend (priv->lightdm_list, lightdm_user);
+ }
+ priv->lightdm_list = g_list_reverse (priv->lightdm_list);
+
+ priv->initialized = TRUE;
+ }
+ else
+ {
+ CommonUser *user = common_user_list_get_user_by_name (common_user_list_get_instance (), username);
LightDMUser *lightdm_user = wrap_common_user (user);
- priv->lightdm_list = g_list_prepend (priv->lightdm_list, lightdm_user);
+ priv->lightdm_list = g_list_append (priv->lightdm_list, lightdm_user);
}
- priv->lightdm_list = g_list_reverse (priv->lightdm_list);
CommonUserList *common_list = common_user_list_get_instance ();
g_signal_connect (common_list, USER_LIST_SIGNAL_USER_ADDED, G_CALLBACK (user_list_added_cb), user_list);
g_signal_connect (common_list, USER_LIST_SIGNAL_USER_CHANGED, G_CALLBACK (user_list_changed_cb), user_list);
g_signal_connect (common_list, USER_LIST_SIGNAL_USER_REMOVED, G_CALLBACK (user_list_removed_cb), user_list);
-
- priv->initialized = TRUE;
}
/**
lightdm_user_list_get_length (LightDMUserList *user_list)
{
g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), 0);
- initialize_user_list_if_needed (user_list);
+ initialize_user_list_if_needed (user_list, NULL);
return g_list_length (GET_LIST_PRIVATE (user_list)->lightdm_list);
}
lightdm_user_list_get_users (LightDMUserList *user_list)
{
g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), NULL);
- initialize_user_list_if_needed (user_list);
+ initialize_user_list_if_needed (user_list, NULL);
return GET_LIST_PRIVATE (user_list)->lightdm_list;
}
g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), NULL);
g_return_val_if_fail (username != NULL, NULL);
- initialize_user_list_if_needed (user_list);
+ initialize_user_list_if_needed (user_list, username);
for (link = GET_LIST_PRIVATE (user_list)->lightdm_list; link; link = link->next)
{
}
static void
-lightdm_user_list_set_property (GObject *object,
- guint prop_id,
+lightdm_user_list_set_property (GObject *object,
+ guint prop_id,
const GValue *value,
- GParamSpec *pspec)
+ GParamSpec *pspec)
{
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}