|
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 821-839
on_permission_changed (GPermission *permission,
Link Here
|
| 821 |
gpointer data) |
828 |
gpointer data) |
| 822 |
{ |
829 |
{ |
| 823 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
830 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
| 824 |
gboolean allowed, using_ntp; |
831 |
gboolean allowed, allowed_tz, using_ntp; |
| 825 |
|
832 |
|
| 826 |
allowed = g_permission_get_allowed (permission); |
833 |
allowed = g_permission_get_allowed (permission); |
|
|
834 |
allowed_tz = priv->permission_tz && g_permission_get_allowed (priv->permission_tz); |
| 827 |
using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch"))); |
835 |
using_ntp = gtk_switch_get_active (GTK_SWITCH (W("network_time_switch"))); |
| 828 |
|
836 |
|
| 829 |
/* All the widgets but the lock button and the 24h setting */ |
837 |
/* All the widgets but the lock button and the 24h setting */ |
| 830 |
gtk_widget_set_sensitive (W("map-vbox"), allowed); |
838 |
gtk_widget_set_sensitive (W("map-vbox"), allowed || allowed_tz); |
| 831 |
gtk_widget_set_sensitive (W("hbox2"), allowed); |
839 |
gtk_widget_set_sensitive (W("hbox2"), allowed); |
| 832 |
gtk_widget_set_sensitive (W("alignment2"), allowed); |
840 |
gtk_widget_set_sensitive (W("alignment2"), allowed); |
| 833 |
gtk_widget_set_sensitive (W("table1"), allowed && !using_ntp); |
841 |
gtk_widget_set_sensitive (W("table1"), allowed && !using_ntp); |
| 834 |
} |
842 |
} |
| 835 |
|
843 |
|
| 836 |
static void |
844 |
static void |
|
|
845 |
on_permission_tz_changed (GPermission *permission, |
| 846 |
GParamSpec *pspec, |
| 847 |
gpointer data) |
| 848 |
{ |
| 849 |
CcDateTimePanelPrivate *priv = CC_DATE_TIME_PANEL (data)->priv; |
| 850 |
gboolean allowed; |
| 851 |
|
| 852 |
allowed = g_permission_get_allowed (permission) || g_permission_get_allowed (priv->permission); |
| 853 |
|
| 854 |
gtk_widget_set_sensitive (W("map-vbox"), allowed); |
| 855 |
} |
| 856 |
|
| 857 |
static void |
| 837 |
reorder_date_widget (DateEndianess endianess, |
858 |
reorder_date_widget (DateEndianess endianess, |
| 838 |
CcDateTimePanelPrivate *priv) |
859 |
CcDateTimePanelPrivate *priv) |
| 839 |
{ |
860 |
{ |
|
Lines 1037-1042
cc_date_time_panel_init (CcDateTimePanel *self)
Link Here
|
| 1037 |
g_signal_connect (priv->permission, "notify", |
1058 |
g_signal_connect (priv->permission, "notify", |
| 1038 |
G_CALLBACK (on_permission_changed), self); |
1059 |
G_CALLBACK (on_permission_changed), self); |
| 1039 |
on_permission_changed (priv->permission, NULL, self); |
1060 |
on_permission_changed (priv->permission, NULL, self); |
|
|
1061 |
|
| 1062 |
priv->permission_tz = polkit_permission_new_sync ("org.freedesktop.timedate1.set-timezone", NULL, NULL, NULL); |
| 1063 |
if (priv->permission_tz == NULL) |
| 1064 |
{ |
| 1065 |
g_warning ("Your system does not have the '%s' PolicyKit files installed. Please check your installation", |
| 1066 |
"org.freedesktop.timedate1.set-timezone"); |
| 1067 |
return; |
| 1068 |
} |
| 1069 |
|
| 1070 |
g_signal_connect (priv->permission_tz, "notify", |
| 1071 |
G_CALLBACK (on_permission_tz_changed), self); |
| 1072 |
on_permission_tz_changed (priv->permission_tz, NULL, self); |
| 1040 |
} |
1073 |
} |
| 1041 |
|
1074 |
|
| 1042 |
void |
1075 |
void |
| 1043 |
- |
|
|