[gnome-control-center] Listen for permission changes
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] Listen for permission changes
- Date: Mon, 15 Nov 2010 19:04:52 +0000 (UTC)
commit 1607beaea206d88c186455cfcea71d58ffe9d6ad
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Nov 15 14:02:27 2010 -0500
Listen for permission changes
Since the lockbutton doesn't have a changed signal, connecting to
it doesn't help... directly listen for changes of the permission
object instead.
panels/user-accounts/um-login-options.c | 11 +++++----
panels/user-accounts/um-user-panel.c | 35 ++++++++++++++++---------------
2 files changed, 24 insertions(+), 22 deletions(-)
---
diff --git a/panels/user-accounts/um-login-options.c b/panels/user-accounts/um-login-options.c
index fbe600e..21fca28 100644
--- a/panels/user-accounts/um-login-options.c
+++ b/panels/user-accounts/um-login-options.c
@@ -311,8 +311,9 @@ update_autologin (GtkWidget *widget,
}
static void
-lockbutton_changed (UmLockButton *button,
- gpointer data)
+on_permission_changed (GPermission *permission,
+ GParamSpec *spec,
+ gpointer data)
{
UmLoginOptions *d = data;
gboolean authorized;
@@ -395,9 +396,9 @@ um_login_options_new (GtkBuilder *builder)
gtk_widget_show (widget);
box = (GtkWidget *)gtk_builder_get_object (builder, "lockbutton-alignment");
gtk_container_add (GTK_CONTAINER (box), widget);
- g_signal_connect (widget, "changed",
- G_CALLBACK (lockbutton_changed), um);
- lockbutton_changed (UM_LOCK_BUTTON (widget), um);
+ g_signal_connect (um->permission, "notify",
+ G_CALLBACK (on_permission_changed), um);
+ on_permission_changed (um->permission, NULL, um);
um->lock_button = widget;
}
diff --git a/panels/user-accounts/um-user-panel.c b/panels/user-accounts/um-user-panel.c
index 93c7a7e..84cd5bb 100644
--- a/panels/user-accounts/um-user-panel.c
+++ b/panels/user-accounts/um-user-panel.c
@@ -69,7 +69,7 @@ struct _UmUserPanelPrivate {
GtkWidget *notebook;
GtkWidget *lock_button;
- PolkitPermission *permission;
+ GPermission *permission;
GtkWidget *language_chooser;
UmAccountDialog *account_dialog;
@@ -546,7 +546,7 @@ show_user (UmUser *user, UmUserPanelPrivate *d)
}
}
-static void lockbutton_changed (UmLockButton *button, gpointer data);
+static void on_permission_changed (GPermission *permission, GParamSpec *pspec, gpointer data);
static void
selected_user_changed (GtkTreeSelection *selection, UmUserPanelPrivate *d)
@@ -559,7 +559,7 @@ selected_user_changed (GtkTreeSelection *selection, UmUserPanelPrivate *d)
gtk_tree_model_get (model, &iter, USER_COL, &user, -1);
show_user (user, d);
if (d->lock_button != NULL) {
- lockbutton_changed (UM_LOCK_BUTTON (d->lock_button), d);
+ on_permission_changed (d->permission, NULL, d);
}
g_object_unref (user);
}
@@ -842,13 +842,13 @@ users_loaded (UmUserManager *manager,
static void
add_unlock_tooltip (GtkWidget *button)
{
- const gchar *names[3];
+ gchar *names[3];
GIcon *icon;
names[0] = "changes-prevent-symbolic";
names[1] = "changes-prevent";
names[2] = NULL;
- icon = g_themed_icon_new_from_names (names, -1);
+ icon = (GIcon *)g_themed_icon_new_from_names (names, -1);
setup_tooltip_with_embedded_icon (button,
_("To make changes,\nclick the * icon first"),
"*",
@@ -867,8 +867,9 @@ remove_unlock_tooltip (GtkWidget *button)
}
static void
-lockbutton_changed (UmLockButton *button,
- gpointer data)
+on_permission_changed (GPermission *permission,
+ GParamSpec *pspec,
+ gpointer data)
{
UmUserPanelPrivate *d = data;
gboolean is_authorized;
@@ -890,13 +891,13 @@ lockbutton_changed (UmLockButton *button,
setup_tooltip_with_embedded_icon (widget, _("Create a user"), NULL, NULL);
}
else {
- const gchar *names[3];
+ gchar *names[3];
GIcon *icon;
names[0] = "changes-prevent-symbolic";
names[1] = "changes-prevent";
names[2] = NULL;
- icon = g_themed_icon_new_from_names (names, -1);
+ icon = (GIcon *)g_themed_icon_new_from_names (names, -1);
setup_tooltip_with_embedded_icon (widget,
_("To create a user,\nclick the * icon first"),
"*",
@@ -910,13 +911,13 @@ lockbutton_changed (UmLockButton *button,
setup_tooltip_with_embedded_icon (widget, _("Delete the selected user"), NULL, NULL);
}
else {
- const gchar *names[3];
+ gchar *names[3];
GIcon *icon;
names[0] = "changes-prevent-symbolic";
names[1] = "changes-prevent";
names[2] = NULL;
- icon = g_themed_icon_new_from_names (names, -1);
+ icon = (GIcon *)g_themed_icon_new_from_names (names, -1);
setup_tooltip_with_embedded_icon (widget,
_("To delete the selected user,\nclick the * icon first"),
@@ -1059,7 +1060,7 @@ setup_main_window (UmUserPanelPrivate *d)
GtkWidget *box;
gchar *title;
GIcon *icon;
- const gchar *names[3];
+ gchar *names[3];
userlist = get_widget (d, "list-treeview");
store = gtk_list_store_new (NUM_USER_LIST_COLS,
@@ -1154,7 +1155,7 @@ setup_main_window (UmUserPanelPrivate *d)
g_signal_connect (button, "clicked",
G_CALLBACK (change_fingerprint), d);
- d->permission = polkit_permission_new_sync ("org.freedesktop.accounts.user-administration", NULL, NULL, NULL);
+ d->permission = (GPermission *)polkit_permission_new_sync ("org.freedesktop.accounts.user-administration", NULL, NULL, NULL);
if (d->permission != NULL) {
/* accounts service not available? */
button = um_lock_button_new (d->permission);
@@ -1162,9 +1163,9 @@ setup_main_window (UmUserPanelPrivate *d)
gtk_widget_show (button);
box = get_widget (d, "userlist-vbox");
gtk_box_pack_end (GTK_BOX (box), button, FALSE, FALSE, 0);
- g_signal_connect (button, "changed",
- G_CALLBACK (lockbutton_changed), d);
- lockbutton_changed (UM_LOCK_BUTTON (button), d);
+ g_signal_connect (d->permission, "notify",
+ G_CALLBACK (on_permission_changed), d);
+ on_permission_changed (d->permission, NULL, d);
d->lock_button = button;
}
@@ -1172,7 +1173,7 @@ setup_main_window (UmUserPanelPrivate *d)
names[0] = "changes-prevent-symbolic";
names[1] = "changes-prevent";
names[2] = NULL;
- icon = g_themed_icon_new_from_names (names, -1);
+ icon = (GIcon *)g_themed_icon_new_from_names (names, -1);
setup_tooltip_with_embedded_icon (button,
_("To create a user,\nclick the * icon first"),
"*",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]