|
Lines 86-91
struct _CcDateTimePanelPrivate
Link Here
|
| 86 |
GCancellable *cancellable; |
86 |
GCancellable *cancellable; |
| 87 |
|
87 |
|
| 88 |
GPermission *permission; |
88 |
GPermission *permission; |
|
|
89 |
GPermission *permission_tz; |
| 89 |
}; |
90 |
}; |
| 90 |
|
91 |
|
| 91 |
static void update_time (CcDateTimePanel *self); |
92 |
static void update_time (CcDateTimePanel *self); |
|
Lines 164-169
cc_date_time_panel_dispose (GObject *object)
Link Here
|
| 164 |
priv->permission = NULL; |
165 |
priv->permission = NULL; |
| 165 |
} |
166 |
} |
| 166 |
|
167 |
|
|
|
168 |
if (priv->permission_tz) |
| 169 |
{ |
| 170 |
g_object_unref (priv->permission_tz); |
| 171 |
priv->permission_tz = NULL; |
| 172 |
} |
| 173 |
|
| 167 |
G_OBJECT_CLASS (cc_date_time_panel_parent_class)->dispose (object); |
174 |
G_OBJECT_CLASS (cc_date_time_panel_parent_class)->dispose (object); |
| 168 |
} |
175 |
} |
| 169 |
|
176 |
|
|
Lines 806-824
on_permission_changed (GPermission *permission,
Link Here
|
| 806 |
gpointer data) |
813 |
gpointer data) |
| 807 |
{ |
814 |
{ |
| 808 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
815 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
| 809 |
gboolean allowed, using_ntp; |
816 |
gboolean allowed, allowed_tz, using_ntp; |
| 810 |
|
817 |
|
| 811 |
allowed = g_permission_get_allowed (permission); |
818 |
allowed = g_permission_get_allowed (permission); |
|
|
819 |
allowed_tz = priv->permission_tz && g_permission_get_allowed (priv->permission_tz); |
| 812 |
using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch"))); |
820 |
using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch"))); |
| 813 |
|
821 |
|
| 814 |
/* All the widgets but the lock button and the 24h setting */ |
822 |
/* All the widgets but the lock button and the 24h setting */ |
| 815 |
gtk_widget_set_sensitive (W("map-vbox"), allowed); |
823 |
gtk_widget_set_sensitive (W("map-vbox"), allowed || allowed_tz); |
| 816 |
gtk_widget_set_sensitive (W("hbox2"), allowed); |
824 |
gtk_widget_set_sensitive (W("hbox2"), allowed); |
| 817 |
gtk_widget_set_sensitive (W("alignment2"), allowed); |
825 |
gtk_widget_set_sensitive (W("alignment2"), allowed); |
| 818 |
update_widget_state_for_ntp (data, using_ntp); |
826 |
update_widget_state_for_ntp (data, using_ntp); |
| 819 |
} |
827 |
} |
| 820 |
|
828 |
|
| 821 |
static void |
829 |
static void |
|
|
830 |
on_permission_tz_changed (GPermission *permission, |
| 831 |
GParamSpec *pspec, |
| 832 |
gpointer data) |
| 833 |
{ |
| 834 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
| 835 |
gboolean allowed; |
| 836 |
|
| 837 |
allowed = g_permission_get_allowed (permission) || g_permission_get_allowed (priv->permission); |
| 838 |
|
| 839 |
gtk_widget_set_sensitive (W("map-vbox"), allowed); |
| 840 |
} |
| 841 |
|
| 842 |
static void |
| 822 |
update_ntp_switch_from_system (CcDateTimePanel *self) |
843 |
update_ntp_switch_from_system (CcDateTimePanel *self) |
| 823 |
{ |
844 |
{ |
| 824 |
CcDateTimePanelPrivate *priv = self->priv; |
845 |
CcDateTimePanelPrivate *priv = self->priv; |
|
Lines 1103-1108
cc_date_time_panel_init (CcDateTimePanel *self)
Link Here
|
| 1103 |
g_signal_connect (priv->permission, "notify", |
1124 |
g_signal_connect (priv->permission, "notify", |
| 1104 |
G_CALLBACK (on_permission_changed), self); |
1125 |
G_CALLBACK (on_permission_changed), self); |
| 1105 |
on_permission_changed (priv->permission, NULL, self); |
1126 |
on_permission_changed (priv->permission, NULL, self); |
|
|
1127 |
|
| 1128 |
priv->permission_tz = polkit_permission_new_sync ("org.freedesktop.timedate1.set-timezone", NULL, NULL, NULL); |
| 1129 |
if (priv->permission_tz == NULL) |
| 1130 |
{ |
| 1131 |
g_warning ("Your system does not have the '%s' PolicyKit files installed. Please check your installation", |
| 1132 |
"org.freedesktop.timedate1.set-timezone"); |
| 1133 |
return; |
| 1134 |
} |
| 1135 |
|
| 1136 |
g_signal_connect (priv->permission_tz, "notify", |
| 1137 |
G_CALLBACK (on_permission_tz_changed), self); |
| 1138 |
on_permission_tz_changed (priv->permission_tz, NULL, self); |
| 1106 |
} |
1139 |
} |
| 1107 |
|
1140 |
|
| 1108 |
void |
1141 |
void |
| 1109 |
- |
|
|