[accounts-dialog] Prevent self-destruction
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [accounts-dialog] Prevent self-destruction
- Date: Thu, 21 Jan 2010 05:40:37 +0000 (UTC)
commit 7f531f46b6f08e19c2c55fb6e2e163a53721b528
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Jan 21 00:38:44 2010 -0500
Prevent self-destruction
src/main.c | 45 +++++++++++++++++++++++++++++++--------------
1 files changed, 31 insertions(+), 14 deletions(-)
---
diff --git a/src/main.c b/src/main.c
index 668b508..4983f4c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -614,9 +614,21 @@ update_add_button (GObject *source,
!gtk_widget_is_sensitive (get_widget (d, "delete-user-button"))) {
gtk_widget_hide (get_widget (d, "add-delete-buttonbox"));
}
- else {
- gtk_widget_show (get_widget (d, "add-delete-buttonbox"));
- }
+ else {
+ gtk_widget_show (get_widget (d, "add-delete-buttonbox"));
+ }
+}
+
+static void
+prevent_selfdestruction (UserAccountDialog *d)
+{
+ UmUser *user;
+
+ user = get_selected_user (d);
+
+ if (user && um_user_get_uid (user) == getuid ()) {
+ gtk_widget_set_sensitive (get_widget (d, "delete-user-button"), FALSE);
+ }
}
static void
@@ -654,9 +666,13 @@ update_delete_button (GObject *source,
!gtk_widget_is_sensitive (get_widget (d, "delete-user-button"))) {
gtk_widget_hide (get_widget (d, "add-delete-buttonbox"));
}
- else {
- gtk_widget_show (get_widget (d, "add-delete-buttonbox"));
- }
+ else {
+ gtk_widget_show (get_widget (d, "add-delete-buttonbox"));
+ }
+
+ if (is_authorized) {
+ prevent_selfdestruction (d);
+ }
}
static void
@@ -688,16 +704,16 @@ update_create_buttons (UserAccountDialog *d)
static void
authorizations_changed (PolkitAuthority *authority,
- gpointer data)
+ gpointer data)
{
- UserAccountDialog *d = data;
+ UserAccountDialog *d = data;
UmUser *user;
- update_create_buttons (d);
+ update_create_buttons (d);
user = get_selected_user (d);
- if (user) {
- update_change_buttons (d, user);
- }
+ if (user) {
+ update_change_buttons (d, user);
+ }
}
static void
@@ -714,6 +730,7 @@ selected_user_changed (GtkTreeSelection *selection, UserAccountDialog *d)
widget = get_widget (d, "login-options-button");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+ update_create_buttons (d);
update_change_buttons (d, user);
g_object_unref (user);
@@ -1145,8 +1162,8 @@ main (int argc, char *argv[])
}
d->authority = polkit_authority_get ();
- g_signal_connect (d->authority, "changed",
- G_CALLBACK (authorizations_changed), d);
+ g_signal_connect (d->authority, "changed",
+ G_CALLBACK (authorizations_changed), d);
setup_main_window (d);
d->login_options = um_login_options_new (d->builder);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]