[gnome-control-center/wip/feborges/new-users-panel: 14/17] user-accounts: Remove Carousel item when removing account
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/wip/feborges/new-users-panel: 14/17] user-accounts: Remove Carousel item when removing account
- Date: Tue, 12 Jul 2016 16:00:24 +0000 (UTC)
commit 38d7471de98b6a303af6e5cc1ab957aa767ded49
Author: Felipe Borges <felipeborges gnome org>
Date: Tue Jul 12 16:19:18 2016 +0200
user-accounts: Remove Carousel item when removing account
https://bugzilla.gnome.org/show_bug.cgi?id=767065
panels/user-accounts/um-carousel.c | 5 +++++
panels/user-accounts/um-user-panel.c | 15 ++++++++++++++-
2 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/panels/user-accounts/um-carousel.c b/panels/user-accounts/um-carousel.c
index f702058..4f68447 100644
--- a/panels/user-accounts/um-carousel.c
+++ b/panels/user-accounts/um-carousel.c
@@ -215,6 +215,11 @@ model_changed (GListModel *list,
item = get_item_at_index (self, position);
gtk_widget_destroy (GTK_WIDGET (item));
+
+ /* After removing the item, set the selected item to be the first children. */
+ priv->current_button = GTK_RADIO_BUTTON (get_item_at_index (self, 0));
+ gtk_stack_set_visible_child_name (priv->stack, "0");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->current_button), TRUE);
}
for (i = 0; i < added; i++) {
diff --git a/panels/user-accounts/um-user-panel.c b/panels/user-accounts/um-user-panel.c
index b00672b..fd11d00 100644
--- a/panels/user-accounts/um-user-panel.c
+++ b/panels/user-accounts/um-user-panel.c
@@ -210,7 +210,20 @@ user_added (ActUserManager *um, ActUser *user, CcUserPanelPrivate *d)
static void
user_removed (ActUserManager *um, ActUser *user, CcUserPanelPrivate *d)
{
- g_print ("user removed\n");
+ ActUser *u;
+ int i;
+
+ g_debug ("user removed: %d %s\n", act_user_get_uid (user), get_real_or_user_name (user));
+
+ for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (d->users_list)); i++) {
+ u = g_list_model_get_item (G_LIST_MODEL (d->users_list), i);
+ if (u == user) {
+ g_list_store_remove (d->users_list, i);
+ break;
+ }
+ }
+
+ g_object_unref (u);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]