View | Details | Raw Unified | Return to bug 796055
Collapse All | Expand All

(-)a/panels/datetime/cc-datetime-panel.c (-3 / +35 lines)
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
- 

Return to bug 796055