Merge lp:~mterry/indicator-datetime/add-greeter-mode into lp:indicator-datetime/0.3

Proposed by Michael Terry
Status: Merged
Merged at revision: 119
Proposed branch: lp:~mterry/indicator-datetime/add-greeter-mode
Merge into: lp:indicator-datetime/0.3
Diff against target: 124 lines (+54/-39)
1 file modified
src/datetime-service.c (+54/-39)
To merge this branch: bzr merge lp:~mterry/indicator-datetime/add-greeter-mode
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+70342@code.launchpad.net

Description of the change

When in a greeter, use a simpler interface. See bug 811853 for more.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/datetime-service.c'
2--- src/datetime-service.c 2011-07-07 21:17:58 +0000
3+++ src/datetime-service.c 2011-08-03 18:16:46 +0000
4@@ -60,6 +60,7 @@
5 static void setup_timer (void);
6 static void geo_client_invalid (GeoclueMasterClient * client, gpointer user_data);
7 static void geo_address_change (GeoclueMasterClient * client, gchar * a, gchar * b, gchar * c, gchar * d, gpointer user_data);
8+static gboolean get_greeter_mode (void);
9
10 static IndicatorService * service = NULL;
11 static GMainLoop * mainloop = NULL;
12@@ -534,6 +535,10 @@
13 update_timezone_menu_items(gpointer user_data) {
14 g_debug("Updating timezone menu items");
15
16+ if (locations_separator == NULL || current_location == NULL) {
17+ return FALSE;
18+ }
19+
20 gchar ** locations = g_settings_get_strv(conf, SETTINGS_LOCATIONS_S);
21
22 if (locations == NULL) {
23@@ -1077,45 +1082,47 @@
24
25 g_idle_add(check_for_calendar, NULL);
26 }
27-
28- locations_separator = dbusmenu_menuitem_new();
29- dbusmenu_menuitem_property_set(locations_separator, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR);
30- dbusmenu_menuitem_property_set_bool (locations_separator, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
31- dbusmenu_menuitem_child_append(root, locations_separator);
32-
33- geo_location = dbusmenu_menuitem_new();
34- dbusmenu_menuitem_property_set (geo_location, DBUSMENU_MENUITEM_PROP_TYPE, TIMEZONE_MENUITEM_TYPE);
35- set_current_timezone_label (geo_location, "");
36- dbusmenu_menuitem_property_set_bool (geo_location, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
37- dbusmenu_menuitem_property_set_bool (geo_location, DBUSMENU_MENUITEM_PROP_VISIBLE, TRUE);
38- g_signal_connect(G_OBJECT(geo_location), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(quick_set_tz), NULL);
39- dbusmenu_menuitem_child_append(root, geo_location);
40-
41- current_location = dbusmenu_menuitem_new();
42- dbusmenu_menuitem_property_set (current_location, DBUSMENU_MENUITEM_PROP_TYPE, TIMEZONE_MENUITEM_TYPE);
43- set_current_timezone_label (current_location, "");
44- dbusmenu_menuitem_property_set_bool (current_location, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
45- dbusmenu_menuitem_property_set_bool (current_location, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
46- dbusmenu_menuitem_child_append(root, current_location);
47-
48- check_timezone_sync();
49-
50- g_signal_connect (conf, "changed::" SETTINGS_SHOW_LOCATIONS_S, G_CALLBACK (show_locations_changed), NULL);
51- g_signal_connect (conf, "changed::" SETTINGS_LOCATIONS_S, G_CALLBACK (show_locations_changed), NULL);
52- g_signal_connect (conf, "changed::" SETTINGS_SHOW_EVENTS_S, G_CALLBACK (show_events_changed), NULL);
53- g_signal_connect (conf, "changed::" SETTINGS_TIME_FORMAT_S, G_CALLBACK (time_format_changed), NULL);
54-
55- DbusmenuMenuitem * separator = dbusmenu_menuitem_new();
56- dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR);
57- dbusmenu_menuitem_child_append(root, separator);
58-
59- settings = dbusmenu_menuitem_new();
60- dbusmenu_menuitem_property_set (settings, DBUSMENU_MENUITEM_PROP_LABEL, _("Time & Date Settings..."));
61- /* insensitive until we check for available apps */
62- dbusmenu_menuitem_property_set_bool(settings, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
63- g_signal_connect(G_OBJECT(settings), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(activate_cb), "gnome-control-center indicator-datetime");
64- dbusmenu_menuitem_child_append(root, settings);
65- g_idle_add(check_for_timeadmin, NULL);
66+
67+ if (!get_greeter_mode ()) {
68+ locations_separator = dbusmenu_menuitem_new();
69+ dbusmenu_menuitem_property_set(locations_separator, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR);
70+ dbusmenu_menuitem_property_set_bool (locations_separator, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
71+ dbusmenu_menuitem_child_append(root, locations_separator);
72+
73+ geo_location = dbusmenu_menuitem_new();
74+ dbusmenu_menuitem_property_set (geo_location, DBUSMENU_MENUITEM_PROP_TYPE, TIMEZONE_MENUITEM_TYPE);
75+ set_current_timezone_label (geo_location, "");
76+ dbusmenu_menuitem_property_set_bool (geo_location, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
77+ dbusmenu_menuitem_property_set_bool (geo_location, DBUSMENU_MENUITEM_PROP_VISIBLE, TRUE);
78+ g_signal_connect(G_OBJECT(geo_location), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(quick_set_tz), NULL);
79+ dbusmenu_menuitem_child_append(root, geo_location);
80+
81+ current_location = dbusmenu_menuitem_new();
82+ dbusmenu_menuitem_property_set (current_location, DBUSMENU_MENUITEM_PROP_TYPE, TIMEZONE_MENUITEM_TYPE);
83+ set_current_timezone_label (current_location, "");
84+ dbusmenu_menuitem_property_set_bool (current_location, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
85+ dbusmenu_menuitem_property_set_bool (current_location, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
86+ dbusmenu_menuitem_child_append(root, current_location);
87+
88+ check_timezone_sync();
89+
90+ g_signal_connect (conf, "changed::" SETTINGS_SHOW_LOCATIONS_S, G_CALLBACK (show_locations_changed), NULL);
91+ g_signal_connect (conf, "changed::" SETTINGS_LOCATIONS_S, G_CALLBACK (show_locations_changed), NULL);
92+ g_signal_connect (conf, "changed::" SETTINGS_SHOW_EVENTS_S, G_CALLBACK (show_events_changed), NULL);
93+ g_signal_connect (conf, "changed::" SETTINGS_TIME_FORMAT_S, G_CALLBACK (time_format_changed), NULL);
94+
95+ DbusmenuMenuitem * separator = dbusmenu_menuitem_new();
96+ dbusmenu_menuitem_property_set(separator, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR);
97+ dbusmenu_menuitem_child_append(root, separator);
98+
99+ settings = dbusmenu_menuitem_new();
100+ dbusmenu_menuitem_property_set (settings, DBUSMENU_MENUITEM_PROP_LABEL, _("Time & Date Settings..."));
101+ /* insensitive until we check for available apps */
102+ dbusmenu_menuitem_property_set_bool(settings, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE);
103+ g_signal_connect(G_OBJECT(settings), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(activate_cb), "gnome-control-center indicator-datetime");
104+ dbusmenu_menuitem_child_append(root, settings);
105+ g_idle_add(check_for_timeadmin, NULL);
106+ }
107
108 return;
109 }
110@@ -1396,6 +1403,14 @@
111 return;
112 }
113
114+static gboolean
115+get_greeter_mode (void)
116+{
117+ const gchar *var;
118+ var = g_getenv("INDICATOR_GREETER_MODE");
119+ return (g_strcmp0(var, "1") == 0);
120+}
121+
122 /* Repsonds to the service object saying it's time to shutdown.
123 It stops the mainloop. */
124 static void

Subscribers

People subscribed via source and target branches