diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-10-28 02:39:09 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2007-10-28 02:39:09 +0000 |
commit | 026b566f63c407cae9cc00b94267b52733c40ab6 (patch) | |
tree | bc5627715bdc1fb46122b0d27d6a1c8f07b3d2a4 | |
parent | b4a3c98d3e0d8716302ffbd2112f1290a9a7ee02 (diff) | |
download | gdm-026b566f63c407cae9cc00b94267b52733c40ab6.tar.gz |
Remove deleted users from the model
2007-10-27 William Jon McCann <mccann@jhu.edu>
* gui/simple-greeter/gdm-user-chooser-widget.c: (on_user_removed):
* gui/simple-greeter/gdm-user.h:
Remove deleted users from the model
svn path=/trunk/; revision=5443
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gui/simple-greeter/gdm-user-chooser-widget.c | 34 | ||||
-rw-r--r-- | gui/simple-greeter/gdm-user.h | 8 |
3 files changed, 43 insertions, 5 deletions
@@ -1,5 +1,11 @@ 2007-10-27 William Jon McCann <mccann@jhu.edu> + * gui/simple-greeter/gdm-user-chooser-widget.c: (on_user_removed): + * gui/simple-greeter/gdm-user.h: + Remove deleted users from the model + +2007-10-27 William Jon McCann <mccann@jhu.edu> + * gui/simple-greeter/gdm-user-chooser-widget.c: (get_pixbuf_for_user), (on_user_added): * gui/simple-greeter/gdm-user.c: (check_user_file), diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c index 2492c89f..e81c8b57 100644 --- a/gui/simple-greeter/gdm-user-chooser-widget.c +++ b/gui/simple-greeter/gdm-user-chooser-widget.c @@ -517,9 +517,41 @@ on_user_removed (GdmUserManager *manager, GdmUser *user, GdmUserChooserWidget *widget) { + GtkTreeIter iter; + gboolean found; + const char *user_name; + g_debug ("User removed: %s", gdm_user_get_user_name (user)); - /* FIXME: */ + found = FALSE; + + user_name = gdm_user_get_user_name (user); + + if (gtk_tree_model_get_iter_first (widget->priv->real_model, &iter)) { + + do { + char *id; + + id = NULL; + gtk_tree_model_get (widget->priv->real_model, + &iter, + CHOOSER_LIST_ID_COLUMN, &id, + -1); + if (id == NULL) { + continue; + } + + found = (strcmp (id, user_name) == 0); + + if (found) { + break; + } + + } while (gtk_tree_model_iter_next (widget->priv->real_model, &iter)); + } + if (found) { + gtk_list_store_remove (GTK_LIST_STORE (widget->priv->real_model), &iter); + } } static gboolean diff --git a/gui/simple-greeter/gdm-user.h b/gui/simple-greeter/gdm-user.h index fb091534..2dbeda2c 100644 --- a/gui/simple-greeter/gdm-user.h +++ b/gui/simple-greeter/gdm-user.h @@ -39,10 +39,10 @@ typedef struct _GdmUser GdmUser; GType gdm_user_get_type (void) G_GNUC_CONST; uid_t gdm_user_get_uid (GdmUser *user); -G_CONST_RETURN gchar *gdm_user_get_user_name (GdmUser *user); -G_CONST_RETURN gchar *gdm_user_get_real_name (GdmUser *user); -G_CONST_RETURN gchar *gdm_user_get_home_directory (GdmUser *user); -G_CONST_RETURN gchar *gdm_user_get_shell (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); GSList *gdm_user_get_sessions (GdmUser *user); guint gdm_user_get_n_sessions (GdmUser *user); |