]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Add UID to lightdm gobject and qt bindings
authorAndrea Cimitan <andrea.cimitan@gmail.com>
Fri, 9 May 2014 10:37:13 +0000 (11:37 +0100)
committerAndrea Cimitan <andrea.cimitan@gmail.com>
Fri, 9 May 2014 10:37:13 +0000 (11:37 +0100)
liblightdm-gobject/lightdm/user.h
liblightdm-gobject/user.c
liblightdm-qt/QLightDM/usersmodel.h
liblightdm-qt/usersmodel.cpp

index b43fc5160cc9762aeab98976d65161378cd210ab..f955ab2908ad35b663d9cfa375963590e3f89bc9 100644 (file)
@@ -106,6 +106,8 @@ gboolean lightdm_user_get_logged_in (LightDMUser *user);
 
 gboolean lightdm_user_get_has_messages (LightDMUser *user);
 
+uid_t lightdm_user_get_uid (LightDMUser *user);
+
 G_END_DECLS
 
 #endif /* LIGHTDM_USER_H_ */
index 4fb5f0449bb698d6ce47c494aab81f469f328dda..86b462f88235c12ca40b9e746bb813847a38484f 100644 (file)
@@ -38,7 +38,8 @@ enum
     USER_PROP_LAYOUTS,
     USER_PROP_SESSION,
     USER_PROP_LOGGED_IN,
-    USER_PROP_HAS_MESSAGES
+    USER_PROP_HAS_MESSAGES,
+    USER_PROP_UID,
 };
 
 enum
@@ -526,6 +527,21 @@ lightdm_user_get_has_messages (LightDMUser *user)
     return common_user_get_has_messages (GET_USER_PRIVATE (user)->common_user);
 }
 
+/**
+ * lightdm_user_get_uid:
+ * @user: A #LightDMUser
+ * 
+ * Get the uid of a user.
+ * 
+ * Return value: The uid of the given user
+ **/
+uid_t
+lightdm_user_get_display_name (LightDMUser *user)
+{
+    g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
+    return common_user_get_uid (GET_USER_PRIVATE (user)->common_user);
+}
+
 static void
 lightdm_user_init (LightDMUser *user)
 {
@@ -599,6 +615,9 @@ lightdm_user_get_property (GObject    *object,
     case USER_PROP_HAS_MESSAGES:
         g_value_set_boolean (value, lightdm_user_get_has_messages (self));
         break;
+    case USER_PROP_UID:
+        g_value_set_uint64 (value, lightdm_user_get_uid (self));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         break;
@@ -620,7 +639,7 @@ static void
 lightdm_user_class_init (LightDMUserClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
     g_type_class_add_private (klass, sizeof (LightDMUserPrivate));
 
     object_class->set_property = lightdm_user_set_property;
@@ -718,6 +737,13 @@ lightdm_user_class_init (LightDMUserClass *klass)
                                                            "TRUE if the user is has waiting messages",
                                                            FALSE,
                                                            G_PARAM_READWRITE));
+    g_object_class_install_property (object_class,
+                                     USER_PROP_UID,
+                                     g_param_spec_string ("uid",
+                                                          "uid",
+                                                          "User UID",
+                                                          NULL,
+                                                          G_PARAM_READABLE));
 
     /**
      * LightDMUser::changed:
index d803c41c943adce85df04343148d865a1def5378..9407e46eaa7b7f75e478181fab7fa3cacca8ab27 100644 (file)
@@ -37,7 +37,8 @@ public:
                          SessionRole,
                          HasMessagesRole,
                          ImagePathRole,
-                         BackgroundPathRole
+                         BackgroundPathRole,
+                         UidRole
     };
 
     int rowCount(const QModelIndex &parent) const;
index f45a79e2c4edfe3c0b57db5cca6e87c15a44e7a7..558cd329f81afdce032c6d7570823df99f428b85 100644 (file)
@@ -29,6 +29,7 @@ public:
     QString session;
     bool isLoggedIn;
     bool hasMessages;
+    quint64 uid;
     QString displayName() const;
 };
 
@@ -66,7 +67,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent) :
 {
 #if !defined(GLIB_VERSION_2_36)
     g_type_init();
-#endif  
+#endif
 }
 
 UsersModelPrivate::~UsersModelPrivate()
@@ -99,6 +100,7 @@ void UsersModelPrivate::loadUsers()
             user.session = QString::fromUtf8(lightdm_user_get_session(ldmUser));
             user.isLoggedIn = lightdm_user_get_logged_in(ldmUser);
             user.hasMessages = lightdm_user_get_has_messages(ldmUser);
+            user.uid = (quint64)lightdm_user_get_uid(ldmUser);
             users.append(user);
         }
 
@@ -109,8 +111,6 @@ void UsersModelPrivate::loadUsers()
     g_signal_connect(lightdm_user_list_get_instance(), "user-removed", G_CALLBACK (cb_userRemoved), this);
 }
 
-
-
 void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ldmUser, gpointer data)
 {
     Q_UNUSED(user_list)
@@ -126,6 +126,7 @@ void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ld
     user.background = QString::fromUtf8(lightdm_user_get_background(ldmUser));
     user.isLoggedIn = lightdm_user_get_logged_in(ldmUser);
     user.hasMessages = lightdm_user_get_has_messages(ldmUser);
+    user.uid = (quint64)lightdm_user_get_uid(ldmUser);
     that->users.append(user);
 
     that->q_func()->endInsertRows();
@@ -148,6 +149,7 @@ void UsersModelPrivate::cb_userChanged(LightDMUserList *user_list, LightDMUser *
             that->users[i].background = QString::fromUtf8(lightdm_user_get_background(ldmUser));
             that->users[i].isLoggedIn = lightdm_user_get_logged_in(ldmUser);
             that->users[i].hasMessages = lightdm_user_get_has_messages(ldmUser);
+            that->users[i].uid = (quint64)lightdm_user_get_uid(ldmUser);
 
             QModelIndex index = that->q_ptr->createIndex(i, 0);
             that->q_ptr->dataChanged(index, index);
@@ -189,6 +191,7 @@ UsersModel::UsersModel(QObject *parent) :
     roles[SessionRole] = "session";
     roles[HasMessagesRole] = "hasMessages";
     roles[ImagePathRole] = "imagePath";
+    roles[UidRole] = "uid";
     setRoleNames(roles);
     d->loadUsers();
 
@@ -240,6 +243,8 @@ QVariant UsersModel::data(const QModelIndex &index, int role) const
         return d->users[row].hasMessages;
     case UsersModel::ImagePathRole:
         return d->users[row].image;
+    case UsersModel::UidRole:
+        return d->users[row].uid;
     }
 
     return QVariant();