gdm: resync cut-and-paste code from gdm tree.
The GDM code upstream talks to the account service now, has better introspection annotations, and is more asynchronous. This commit updates the shell's copy to the latest upstream. Note, the API changed somewhat and so the callers will need to be fixed up subsequently. https://bugzilla.gnome.org/show_bug.cgi?id=631888
This commit is contained in:
parent
9bfda11f0d
commit
7ce5ea4142
@ -5,6 +5,7 @@ gdmuser_cflags = \
|
||||
-DDATADIR=\""$(datadir)"\" \
|
||||
-DG_DISABLE_DEPRECATED \
|
||||
-DG_LOG_DOMAIN=\"GdmUser\" \
|
||||
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
|
||||
$(GDMUSER_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -18,8 +18,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __GDM_USER_MANAGER_H
|
||||
#define __GDM_USER_MANAGER_H
|
||||
#ifndef __GDM_USER_MANAGER_H__
|
||||
#define __GDM_USER_MANAGER_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
@ -35,34 +35,35 @@ G_BEGIN_DECLS
|
||||
#define GDM_USER_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_USER_MANAGER, GdmUserManagerClass))
|
||||
|
||||
typedef struct GdmUserManagerPrivate GdmUserManagerPrivate;
|
||||
typedef struct GdmUserManager GdmUserManager;
|
||||
typedef struct GdmUserManagerClass GdmUserManagerClass;
|
||||
typedef enum GdmUserManagerError GdmUserManagerError;
|
||||
|
||||
typedef struct
|
||||
struct GdmUserManager
|
||||
{
|
||||
GObject parent;
|
||||
GdmUserManagerPrivate *priv;
|
||||
} GdmUserManager;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
struct GdmUserManagerClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* loading_users) (GdmUserManager *user_manager);
|
||||
void (* users_loaded) (GdmUserManager *user_manager);
|
||||
void (* user_added) (GdmUserManager *user_manager,
|
||||
GdmUser *user);
|
||||
void (* user_removed) (GdmUserManager *user_manager,
|
||||
GdmUser *user);
|
||||
void (* user_is_logged_in_changed) (GdmUserManager *user_manager,
|
||||
GdmUser *user);
|
||||
void (* user_login_frequency_changed) (GdmUserManager *user_manager,
|
||||
GdmUser *user);
|
||||
} GdmUserManagerClass;
|
||||
void (* user_changed) (GdmUserManager *user_manager,
|
||||
GdmUser *user);
|
||||
};
|
||||
|
||||
typedef enum
|
||||
enum GdmUserManagerError
|
||||
{
|
||||
GDM_USER_MANAGER_ERROR_GENERAL,
|
||||
GDM_USER_MANAGER_ERROR_KEY_NOT_FOUND
|
||||
} GdmUserManagerError;
|
||||
};
|
||||
|
||||
#define GDM_USER_MANAGER_ERROR gdm_user_manager_error_quark ()
|
||||
|
||||
@ -71,6 +72,7 @@ GType gdm_user_manager_get_type (void);
|
||||
|
||||
GdmUserManager * gdm_user_manager_ref_default (void);
|
||||
|
||||
void gdm_user_manager_queue_load (GdmUserManager *manager);
|
||||
GSList * gdm_user_manager_list_users (GdmUserManager *manager);
|
||||
GdmUser * gdm_user_manager_get_user (GdmUserManager *manager,
|
||||
const char *username);
|
||||
@ -80,6 +82,8 @@ GdmUser * gdm_user_manager_get_user_by_uid (GdmUserManager *mana
|
||||
gboolean gdm_user_manager_activate_user_session (GdmUserManager *manager,
|
||||
GdmUser *user);
|
||||
|
||||
gboolean gdm_user_manager_can_switch (GdmUserManager *manager);
|
||||
|
||||
gboolean gdm_user_manager_goto_login_session (GdmUserManager *manager);
|
||||
|
||||
G_END_DECLS
|
||||
|
@ -21,8 +21,8 @@
|
||||
* Private interfaces to the GdmUser object
|
||||
*/
|
||||
|
||||
#ifndef __GDM_USER_PRIVATE_H
|
||||
#define __GDM_USER_PRIVATE_H
|
||||
#ifndef __GDM_USER_PRIVATE_H_
|
||||
#define __GDM_USER_PRIVATE_H_
|
||||
|
||||
#include <pwd.h>
|
||||
|
||||
@ -30,15 +30,20 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void _gdm_user_update (GdmUser *user,
|
||||
const struct passwd *pwent);
|
||||
void _gdm_user_update_from_object_path (GdmUser *user,
|
||||
const char *object_path);
|
||||
|
||||
void _gdm_user_update_from_pwent (GdmUser *user,
|
||||
const struct passwd *pwent);
|
||||
|
||||
void _gdm_user_update_login_frequency (GdmUser *user,
|
||||
guint64 login_frequency);
|
||||
|
||||
void _gdm_user_add_session (GdmUser *user,
|
||||
const char *session_id);
|
||||
void _gdm_user_remove_session (GdmUser *user,
|
||||
const char *session_id);
|
||||
|
||||
void _gdm_user_icon_changed (GdmUser *user);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* !__GDM_USER_PRIVATE_H */
|
||||
#endif /* !__GDM_USER_PRIVATE__ */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -22,8 +22,8 @@
|
||||
* Facade object for user data, owned by GdmUserManager
|
||||
*/
|
||||
|
||||
#ifndef __GDM_USER_H
|
||||
#define __GDM_USER_H
|
||||
#ifndef __GDM_USER_H__
|
||||
#define __GDM_USER_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <gtk/gtk.h>
|
||||
@ -40,20 +40,24 @@ typedef struct _GdmUserClass GdmUserClass;
|
||||
|
||||
GType gdm_user_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GdmUser *gdm_user_new_from_object_path (const char *path);
|
||||
const char *gdm_user_get_object_path (GdmUser *user);
|
||||
|
||||
gulong gdm_user_get_uid (GdmUser *user);
|
||||
G_CONST_RETURN char *gdm_user_get_user_name (GdmUser *user);
|
||||
G_CONST_RETURN char *gdm_user_get_real_name (GdmUser *user);
|
||||
G_CONST_RETURN char *gdm_user_get_home_directory (GdmUser *user);
|
||||
G_CONST_RETURN char *gdm_user_get_shell (GdmUser *user);
|
||||
const char *gdm_user_get_user_name (GdmUser *user);
|
||||
const char *gdm_user_get_real_name (GdmUser *user);
|
||||
guint gdm_user_get_num_sessions (GdmUser *user);
|
||||
GList *gdm_user_get_sessions (GdmUser *user);
|
||||
gboolean gdm_user_is_logged_in (GdmUser *user);
|
||||
gulong gdm_user_get_login_frequency (GdmUser *user);
|
||||
const char *gdm_user_get_icon_file (GdmUser *user);
|
||||
const char *gdm_user_get_primary_session_id (GdmUser *user);
|
||||
|
||||
GdkPixbuf *gdm_user_render_icon (GdmUser *user,
|
||||
gint icon_size);
|
||||
|
||||
gint gdm_user_collate (GdmUser *user1,
|
||||
GdmUser *user2);
|
||||
gboolean gdm_user_is_loaded (GdmUser *user);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user