diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-04-15 03:01:57 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-04-15 10:28:38 +0100 |
commit | d979ee01b51c5e53cd38228659ff67c780f7efe4 (patch) | |
tree | 29cd8d1f9a2e36ae3ead9b786188f1ea58797a1a /meta/recipes-connectivity/connman/connman-gnome/3g.patch | |
parent | 9ff001cba1196b91be16ff9290919de820a2d44c (diff) | |
download | poky-d979ee01b51c5e53cd38228659ff67c780f7efe4.tar.gz |
connman-gnome: connman 0.79 API fixes
Fix connman-gnome to work with connman 0.79, which made a number of
fairly serious DBus API changes. Also switch over to the newly
repopulated git repo on kernel.org in which the two previous patches
have been merged.
Fixes [YOCTO #2202].
(From OE-Core rev: 82744f56f8bfbdcc303034dee3d6e188cf8180b1)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-connectivity/connman/connman-gnome/3g.patch')
-rw-r--r-- | meta/recipes-connectivity/connman/connman-gnome/3g.patch | 507 |
1 files changed, 0 insertions, 507 deletions
diff --git a/meta/recipes-connectivity/connman/connman-gnome/3g.patch b/meta/recipes-connectivity/connman/connman-gnome/3g.patch deleted file mode 100644 index 58fa5e6783..0000000000 --- a/meta/recipes-connectivity/connman/connman-gnome/3g.patch +++ /dev/null | |||
@@ -1,507 +0,0 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | commit 15852e826b0b47f577718ada4b68b63515387f4d | ||
4 | Author: dongxiao <dongxiao@dongxiao-osel.(none)> | ||
5 | Date: Wed Jun 1 14:56:16 2011 +0800 | ||
6 | |||
7 | connman-gnome: Add cellular network config option. | ||
8 | |||
9 | Add cellular network config option in connman-gnome. | ||
10 | |||
11 | Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> | ||
12 | |||
13 | diff --git a/common/connman-client.c b/common/connman-client.c | ||
14 | index e907cc2..d6be363 100644 | ||
15 | --- a/common/connman-client.c | ||
16 | +++ b/common/connman-client.c | ||
17 | @@ -112,9 +112,10 @@ static void connman_client_init(ConnmanClient *client) | ||
18 | G_TYPE_STRING, /* address */ | ||
19 | G_TYPE_STRING, /* netmask */ | ||
20 | G_TYPE_STRING, /* gateway */ | ||
21 | - G_TYPE_BOOLEAN, /* gateway */ | ||
22 | - G_TYPE_BOOLEAN, /* gateway */ | ||
23 | - G_TYPE_BOOLEAN);/* gateway */ | ||
24 | + G_TYPE_BOOLEAN, /* ethernet enabled */ | ||
25 | + G_TYPE_BOOLEAN, /* wifi enabled */ | ||
26 | + G_TYPE_BOOLEAN, /* cellular enabled */ | ||
27 | + G_TYPE_BOOLEAN);/* offline */ | ||
28 | |||
29 | g_object_set_data(G_OBJECT(priv->store), | ||
30 | "State", g_strdup("unavailable")); | ||
31 | @@ -218,6 +219,7 @@ static gboolean device_filter(GtkTreeModel *model, | ||
32 | switch (type) { | ||
33 | case CONNMAN_TYPE_LABEL_ETHERNET: | ||
34 | case CONNMAN_TYPE_LABEL_WIFI: | ||
35 | + case CONNMAN_TYPE_LABEL_CELLULAR: | ||
36 | case CONNMAN_TYPE_SYSCONFIG: | ||
37 | return TRUE; | ||
38 | } | ||
39 | diff --git a/common/connman-client.h b/common/connman-client.h | ||
40 | index 37e86d0..15fa098 100644 | ||
41 | --- a/common/connman-client.h | ||
42 | +++ b/common/connman-client.h | ||
43 | @@ -117,6 +117,7 @@ enum { | ||
44 | |||
45 | CONNMAN_COLUMN_ETHERNET_ENABLED,/* G_TYPE_STRING */ | ||
46 | CONNMAN_COLUMN_WIFI_ENABLED, /* G_TYPE_STRING */ | ||
47 | + CONNMAN_COLUMN_CELLULAR_ENABLED,/* G_TYPE_STRING */ | ||
48 | CONNMAN_COLUMN_OFFLINEMODE, /* G_TYPE_STRING */ | ||
49 | |||
50 | _CONNMAN_NUM_COLUMNS | ||
51 | @@ -132,6 +133,7 @@ enum { | ||
52 | |||
53 | CONNMAN_TYPE_LABEL_ETHERNET, | ||
54 | CONNMAN_TYPE_LABEL_WIFI, | ||
55 | + CONNMAN_TYPE_LABEL_CELLULAR, | ||
56 | CONNMAN_TYPE_SYSCONFIG, | ||
57 | |||
58 | _CONNMAN_NUM_TYPE, | ||
59 | diff --git a/common/connman-dbus.c b/common/connman-dbus.c | ||
60 | index b5a635c..0f4e1db 100644 | ||
61 | --- a/common/connman-dbus.c | ||
62 | +++ b/common/connman-dbus.c | ||
63 | @@ -208,6 +208,8 @@ static const gchar *type2icon(guint type) | ||
64 | case CONNMAN_TYPE_WIFI: | ||
65 | case CONNMAN_TYPE_WIMAX: | ||
66 | return "network-wireless"; | ||
67 | + case CONNMAN_TYPE_CELLULAR: | ||
68 | + return "network-cellular"; | ||
69 | case CONNMAN_TYPE_BLUETOOTH: | ||
70 | return "bluetooth"; | ||
71 | } | ||
72 | @@ -220,6 +222,7 @@ static void enabled_technologies_changed(GtkTreeStore *store, GValue *value) | ||
73 | GtkTreeIter iter; | ||
74 | gboolean ethernet_enabled_prev, ethernet_enabled = FALSE; | ||
75 | gboolean wifi_enabled_prev, wifi_enabled = FALSE; | ||
76 | + gboolean cellular_enabled_prev, cellular_enabled = FALSE; | ||
77 | gchar **tech = g_value_get_boxed (value); | ||
78 | guint i; | ||
79 | |||
80 | @@ -227,10 +230,13 @@ static void enabled_technologies_changed(GtkTreeStore *store, GValue *value) | ||
81 | return; | ||
82 | |||
83 | for (i = 0; i < g_strv_length(tech); i++) { | ||
84 | + DBG("technology: %s", *(tech+i)); | ||
85 | if (g_str_equal("ethernet", *(tech + i))) | ||
86 | ethernet_enabled = TRUE; | ||
87 | else if (g_str_equal ("wifi", *(tech + i))) | ||
88 | wifi_enabled = TRUE; | ||
89 | + else if (g_str_equal ("cellular", *(tech + i))) | ||
90 | + cellular_enabled = TRUE; | ||
91 | } | ||
92 | |||
93 | get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET); | ||
94 | @@ -246,6 +252,13 @@ static void enabled_technologies_changed(GtkTreeStore *store, GValue *value) | ||
95 | if (wifi_enabled_prev != wifi_enabled) | ||
96 | gtk_tree_store_set(store, &iter, | ||
97 | CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled, -1); | ||
98 | + | ||
99 | + get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_CELLULAR); | ||
100 | + gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, | ||
101 | + CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled_prev, -1); | ||
102 | + if (cellular_enabled_prev != cellular_enabled) | ||
103 | + gtk_tree_store_set(store, &iter, | ||
104 | + CONNMAN_COLUMN_CELLULAR_ENABLED, cellular_enabled, -1); | ||
105 | } | ||
106 | |||
107 | static void enabled_technologies_properties(GtkTreeStore *store, DBusGProxy *proxy, GValue *value) | ||
108 | @@ -253,14 +266,18 @@ static void enabled_technologies_properties(GtkTreeStore *store, DBusGProxy *pro | ||
109 | GtkTreeIter iter; | ||
110 | gboolean ethernet_enabled = FALSE; | ||
111 | gboolean wifi_enabled = FALSE; | ||
112 | + gboolean cellular_enabled = FALSE; | ||
113 | gchar **tech = g_value_get_boxed (value); | ||
114 | guint i; | ||
115 | |||
116 | for (i = 0; i < g_strv_length (tech); i++) { | ||
117 | + DBG("technology: %s", *(tech+i)); | ||
118 | if (g_str_equal("ethernet", *(tech + i))) | ||
119 | ethernet_enabled = TRUE; | ||
120 | else if (g_str_equal ("wifi", *(tech + i))) | ||
121 | wifi_enabled = TRUE; | ||
122 | + else if (g_str_equal ("cellular", *(tech + i))) | ||
123 | + cellular_enabled = TRUE; | ||
124 | } | ||
125 | |||
126 | if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET) == FALSE) | ||
127 | @@ -280,6 +297,15 @@ static void enabled_technologies_properties(GtkTreeStore *store, DBusGProxy *pro | ||
128 | CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled, | ||
129 | CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_WIFI, | ||
130 | -1); | ||
131 | + | ||
132 | + if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_CELLULAR) == FALSE) | ||
133 | + gtk_tree_store_append(store, &iter, NULL); | ||
134 | + | ||
135 | + gtk_tree_store_set(store, &iter, | ||
136 | + CONNMAN_COLUMN_PROXY, proxy, | ||
137 | + CONNMAN_COLUMN_CELLULAR_ENABLED, cellular_enabled, | ||
138 | + CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_CELLULAR, | ||
139 | + -1); | ||
140 | } | ||
141 | |||
142 | static void offline_mode_changed(GtkTreeStore *store, GValue *value) | ||
143 | @@ -497,6 +523,9 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, | ||
144 | case CONNMAN_TYPE_WIFI: | ||
145 | label_type = CONNMAN_TYPE_LABEL_WIFI; | ||
146 | break; | ||
147 | + case CONNMAN_TYPE_CELLULAR: | ||
148 | + label_type = CONNMAN_TYPE_LABEL_CELLULAR; | ||
149 | + break; | ||
150 | default: | ||
151 | label_type = CONNMAN_TYPE_UNKNOWN; | ||
152 | break; | ||
153 | diff --git a/icons/connman-type-cellular.png b/icons/connman-type-cellular.png | ||
154 | new file mode 100644 | ||
155 | index 0000000..386abd5 | ||
156 | Binary files /dev/null and b/icons/connman-type-cellular.png differ | ||
157 | diff --git a/properties/Makefile.am b/properties/Makefile.am | ||
158 | index fc1b8c6..30ae442 100644 | ||
159 | --- a/properties/Makefile.am | ||
160 | +++ b/properties/Makefile.am | ||
161 | @@ -1,7 +1,7 @@ | ||
162 | |||
163 | bin_PROGRAMS = connman-properties | ||
164 | |||
165 | -connman_properties_SOURCES = main.c advanced.h ethernet.c wifi.c | ||
166 | +connman_properties_SOURCES = main.c advanced.h ethernet.c wifi.c cellular.c | ||
167 | |||
168 | connman_properties_LDADD = $(top_builddir)/common/libcommon.a \ | ||
169 | @GTK_LIBS@ @DBUS_LIBS@ | ||
170 | diff --git a/properties/advanced.h b/properties/advanced.h | ||
171 | index 79a1c3c..d8f4117 100644 | ||
172 | --- a/properties/advanced.h | ||
173 | +++ b/properties/advanced.h | ||
174 | @@ -59,10 +59,18 @@ struct config_data { | ||
175 | GtkWidget *disconnect; | ||
176 | } wifi; | ||
177 | |||
178 | + struct { | ||
179 | + GtkWidget *name; | ||
180 | + GtkWidget *strength; | ||
181 | + GtkWidget *connect_info; | ||
182 | + GtkWidget *connect; | ||
183 | + GtkWidget *disconnect; | ||
184 | + } cellular; | ||
185 | + | ||
186 | GtkWidget *ethernet_button; | ||
187 | GtkWidget *wifi_button; | ||
188 | - | ||
189 | GtkWidget *scan_button; | ||
190 | + GtkWidget *cellular_button; | ||
191 | GtkWidget *offline_button; | ||
192 | }; | ||
193 | |||
194 | @@ -88,8 +96,11 @@ void update_ethernet_ipv4(struct config_data *data, guint policy); | ||
195 | void add_wifi_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data); | ||
196 | void update_wifi_policy(struct config_data *data, guint policy); | ||
197 | |||
198 | +void add_cellular_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data); | ||
199 | void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, | ||
200 | struct config_data *data); | ||
201 | |||
202 | void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, | ||
203 | struct config_data *data); | ||
204 | +void add_cellular_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, | ||
205 | + struct config_data *data); | ||
206 | diff --git a/properties/cellular.c b/properties/cellular.c | ||
207 | new file mode 100644 | ||
208 | index 0000000..7bbfb89 | ||
209 | --- /dev/null | ||
210 | +++ b/properties/cellular.c | ||
211 | @@ -0,0 +1,175 @@ | ||
212 | +/* | ||
213 | + * | ||
214 | + * Connection Manager | ||
215 | + * | ||
216 | + * Copyright (C) 2011 Intel Corporation. All rights reserved. | ||
217 | + * | ||
218 | + * This program is free software; you can redistribute it and/or modify | ||
219 | + * it under the terms of the GNU General Public License version 2 as | ||
220 | + * published by the Free Software Foundation. | ||
221 | + * | ||
222 | + * This program is distributed in the hope that it will be useful, | ||
223 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
224 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
225 | + * GNU General Public License for more details. | ||
226 | + * | ||
227 | + * You should have received a copy of the GNU General Public License | ||
228 | + * along with this program; if not, write to the Free Software | ||
229 | + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
230 | + * | ||
231 | + */ | ||
232 | + | ||
233 | +#ifdef HAVE_CONFIG_H | ||
234 | +#include <config.h> | ||
235 | +#endif | ||
236 | + | ||
237 | +#include <dbus/dbus-glib.h> | ||
238 | +#include <glib/gi18n.h> | ||
239 | +#include <gtk/gtk.h> | ||
240 | + | ||
241 | +#include "connman-client.h" | ||
242 | + | ||
243 | +#include "advanced.h" | ||
244 | + | ||
245 | +static void connect_reply_cb(DBusGProxy *proxy, GError *error, | ||
246 | + gpointer user_data) | ||
247 | +{ | ||
248 | + if (error) | ||
249 | + g_error_free(error); | ||
250 | +} | ||
251 | + | ||
252 | +static void connect_callback(GtkWidget *editable, gpointer user_data) | ||
253 | +{ | ||
254 | + struct config_data *data = user_data; | ||
255 | + | ||
256 | + connman_client_connect_async(data->client, data->device, connect_reply_cb, data); | ||
257 | +} | ||
258 | + | ||
259 | + | ||
260 | +static void disconnect_callback(GtkWidget *editable, gpointer user_data) | ||
261 | +{ | ||
262 | + struct config_data *data = user_data; | ||
263 | + | ||
264 | + connman_client_disconnect(data->client, data->device); | ||
265 | +} | ||
266 | + | ||
267 | +static void switch_callback(GtkWidget *editable, gpointer user_data) | ||
268 | +{ | ||
269 | + struct config_data *data = user_data; | ||
270 | + const gchar *label = gtk_button_get_label(GTK_BUTTON(data->cellular_button)); | ||
271 | + | ||
272 | + if (g_str_equal(label, "Disable")) | ||
273 | + connman_client_disable_technology(data->client, data->device, "cellular"); | ||
274 | + else | ||
275 | + connman_client_enable_technology(data->client, data->device, "cellular"); | ||
276 | +} | ||
277 | + | ||
278 | +void add_cellular_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, | ||
279 | + struct config_data *data) | ||
280 | +{ | ||
281 | + GtkWidget *vbox; | ||
282 | + GtkWidget *table; | ||
283 | + GtkWidget *label; | ||
284 | + GtkWidget *buttonbox; | ||
285 | + GtkWidget *button; | ||
286 | + gboolean cellular_enabled; | ||
287 | + | ||
288 | + gtk_tree_model_get(data->model, iter, | ||
289 | + CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled, | ||
290 | + -1); | ||
291 | + | ||
292 | + vbox = gtk_vbox_new(TRUE, 0); | ||
293 | + gtk_container_set_border_width(GTK_CONTAINER(vbox), 24); | ||
294 | + gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0); | ||
295 | + | ||
296 | + table = gtk_table_new(1, 1, TRUE); | ||
297 | + gtk_table_set_row_spacings(GTK_TABLE(table), 10); | ||
298 | + gtk_table_set_col_spacings(GTK_TABLE(table), 10); | ||
299 | + gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | ||
300 | + | ||
301 | + label = gtk_label_new(_("Configure Cellular Networks.")); | ||
302 | + gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | ||
303 | + | ||
304 | + buttonbox = gtk_hbutton_box_new(); | ||
305 | + gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_CENTER); | ||
306 | + gtk_box_pack_start(GTK_BOX(mainbox), buttonbox, FALSE, FALSE, 0); | ||
307 | + | ||
308 | + button = gtk_button_new(); | ||
309 | + data->cellular_button = button; | ||
310 | + | ||
311 | + if (cellular_enabled) | ||
312 | + gtk_button_set_label(GTK_BUTTON(button), _("Disable")); | ||
313 | + else | ||
314 | + gtk_button_set_label(GTK_BUTTON(button), _("Enable")); | ||
315 | + | ||
316 | + gtk_container_add(GTK_CONTAINER(buttonbox), button); | ||
317 | + g_signal_connect(G_OBJECT(button), "clicked", | ||
318 | + G_CALLBACK(switch_callback), data); | ||
319 | +} | ||
320 | + | ||
321 | +void add_cellular_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data) | ||
322 | +{ | ||
323 | + GtkWidget *vbox; | ||
324 | + GtkWidget *table; | ||
325 | + GtkWidget *label; | ||
326 | + GtkWidget *button; | ||
327 | + | ||
328 | + const char *name, *icon, *state; | ||
329 | + guint strength; | ||
330 | + | ||
331 | + gtk_tree_model_get(data->model, iter, | ||
332 | + CONNMAN_COLUMN_NAME, &name, | ||
333 | + CONNMAN_COLUMN_ICON, &icon, | ||
334 | + CONNMAN_COLUMN_STATE, &state, | ||
335 | + CONNMAN_COLUMN_STRENGTH, &strength, | ||
336 | + -1); | ||
337 | + | ||
338 | + if (g_str_equal(state, "failure") == TRUE) | ||
339 | + connman_client_remove(data->client, data->device); | ||
340 | + | ||
341 | + vbox = gtk_vbox_new(TRUE, 0); | ||
342 | + gtk_container_set_border_width(GTK_CONTAINER(vbox), 24); | ||
343 | + gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0); | ||
344 | + | ||
345 | + table = gtk_table_new(4, 8, TRUE); | ||
346 | + gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | ||
347 | + data->table = table; | ||
348 | + | ||
349 | + label = gtk_label_new(_("Access Point:")); | ||
350 | + gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, 0, 1); | ||
351 | + | ||
352 | + label = gtk_label_new(_(name)); | ||
353 | + gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 0, 1); | ||
354 | + gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | ||
355 | + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); | ||
356 | + data->cellular.name = label; | ||
357 | + | ||
358 | + label = gtk_label_new(_("")); | ||
359 | + gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 5, 2, 3); | ||
360 | + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); | ||
361 | + gtk_widget_hide(label); | ||
362 | + data->cellular.connect_info = label; | ||
363 | + | ||
364 | + button = gtk_button_new_with_label(_("Connect")); | ||
365 | + gtk_table_attach_defaults(GTK_TABLE(table), button, 3, 5, 3, 4); | ||
366 | + g_signal_connect(G_OBJECT(button), "clicked", | ||
367 | + G_CALLBACK(connect_callback), data); | ||
368 | + gtk_widget_set_no_show_all(button, TRUE); | ||
369 | + data->cellular.connect = button; | ||
370 | + | ||
371 | + button = gtk_button_new_with_label(_("Disconnect")); | ||
372 | + gtk_table_attach_defaults(GTK_TABLE(table), button, 3, 5, 3, 4); | ||
373 | + g_signal_connect(G_OBJECT(button), "clicked", | ||
374 | + G_CALLBACK(disconnect_callback), data); | ||
375 | + data->cellular.disconnect = button; | ||
376 | + gtk_widget_set_no_show_all(button, TRUE); | ||
377 | + | ||
378 | + if (g_str_equal(state, "failure") == TRUE | ||
379 | + || g_str_equal(state, "idle") == TRUE) { | ||
380 | + gtk_widget_show(data->cellular.connect); | ||
381 | + gtk_widget_hide(data->cellular.disconnect); | ||
382 | + } else { | ||
383 | + gtk_widget_hide(data->cellular.connect); | ||
384 | + gtk_widget_show(data->cellular.disconnect); | ||
385 | + } | ||
386 | +} | ||
387 | diff --git a/properties/main.c b/properties/main.c | ||
388 | index a09c721..ec36aef 100644 | ||
389 | --- a/properties/main.c | ||
390 | +++ b/properties/main.c | ||
391 | @@ -42,6 +42,7 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, | ||
392 | const char *name = NULL, *_name = NULL, *state = NULL; | ||
393 | gboolean ethernet_enabled; | ||
394 | gboolean wifi_enabled; | ||
395 | + gboolean cellular_enabled; | ||
396 | gboolean offline_mode; | ||
397 | |||
398 | gtk_tree_model_get(model, iter, | ||
399 | @@ -50,6 +51,7 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, | ||
400 | CONNMAN_COLUMN_TYPE, &type, | ||
401 | CONNMAN_COLUMN_ETHERNET_ENABLED, ðernet_enabled, | ||
402 | CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled, | ||
403 | + CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled, | ||
404 | CONNMAN_COLUMN_OFFLINEMODE, &offline_mode, | ||
405 | -1); | ||
406 | |||
407 | @@ -75,6 +77,29 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, | ||
408 | gtk_widget_hide(data->wifi.connect); | ||
409 | gtk_widget_show(data->wifi.disconnect); | ||
410 | } | ||
411 | + } else if (type == CONNMAN_TYPE_CELLULAR) { | ||
412 | + if (data->cellular.name) | ||
413 | + _name = gtk_label_get_text(GTK_LABEL(data->cellular.name)); | ||
414 | + | ||
415 | + if (!(name && _name && g_str_equal(name, _name))) | ||
416 | + return; | ||
417 | + | ||
418 | + if (g_str_equal(state, "failure") == TRUE) { | ||
419 | + gtk_label_set_text(GTK_LABEL(data->cellular.connect_info), | ||
420 | + _("connection failed")); | ||
421 | + gtk_widget_show(data->cellular.connect_info); | ||
422 | + gtk_widget_show(data->cellular.connect); | ||
423 | + gtk_widget_hide(data->cellular.disconnect); | ||
424 | + } else if (g_str_equal(state, "idle") == TRUE) { | ||
425 | + gtk_widget_hide(data->cellular.connect_info); | ||
426 | + gtk_widget_show(data->cellular.connect); | ||
427 | + gtk_widget_hide(data->cellular.disconnect); | ||
428 | + } else { | ||
429 | + gtk_widget_hide(data->cellular.connect_info); | ||
430 | + gtk_widget_hide(data->cellular.connect); | ||
431 | + gtk_widget_show(data->cellular.disconnect); | ||
432 | + } | ||
433 | + | ||
434 | } else if (type == CONNMAN_TYPE_LABEL_ETHERNET) { | ||
435 | if (!data->ethernet_button) | ||
436 | return; | ||
437 | @@ -92,6 +117,13 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, | ||
438 | gtk_button_set_label(GTK_BUTTON(data->wifi_button), _("Enable")); | ||
439 | gtk_widget_set_sensitive(data->scan_button, 0); | ||
440 | } | ||
441 | + } else if (type == CONNMAN_TYPE_LABEL_CELLULAR) { | ||
442 | + if (!data->cellular_button) | ||
443 | + return; | ||
444 | + if (cellular_enabled) | ||
445 | + gtk_button_set_label(GTK_BUTTON(data->cellular_button), _("Disable")); | ||
446 | + else | ||
447 | + gtk_button_set_label(GTK_BUTTON(data->cellular_button), _("Enable")); | ||
448 | } else if (type == CONNMAN_TYPE_SYSCONFIG) { | ||
449 | if (!data->offline_button) | ||
450 | return; | ||
451 | @@ -100,7 +132,6 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, | ||
452 | else | ||
453 | gtk_button_set_label(GTK_BUTTON(data->offline_button), _("OfflineMode")); | ||
454 | } | ||
455 | - | ||
456 | } | ||
457 | |||
458 | static void set_offline_callback(GtkWidget *button, gpointer user_data) | ||
459 | @@ -207,12 +238,18 @@ static struct config_data *create_config(GtkTreeModel *model, | ||
460 | case CONNMAN_TYPE_WIFI: | ||
461 | add_wifi_service(mainbox, iter, data); | ||
462 | break; | ||
463 | + case CONNMAN_TYPE_CELLULAR: | ||
464 | + add_cellular_service(mainbox, iter, data); | ||
465 | + break; | ||
466 | case CONNMAN_TYPE_LABEL_ETHERNET: | ||
467 | add_ethernet_switch_button(mainbox, iter, data); | ||
468 | break; | ||
469 | case CONNMAN_TYPE_LABEL_WIFI: | ||
470 | add_wifi_switch_button(mainbox, iter, data); | ||
471 | break; | ||
472 | + case CONNMAN_TYPE_LABEL_CELLULAR: | ||
473 | + add_cellular_switch_button(mainbox, iter, data); | ||
474 | + break; | ||
475 | case CONNMAN_TYPE_SYSCONFIG: | ||
476 | add_system_config(mainbox, iter, data); | ||
477 | break; | ||
478 | @@ -295,6 +332,7 @@ static void device_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell, | ||
479 | markup = g_strdup_printf(" %s\n", title); | ||
480 | break; | ||
481 | case CONNMAN_TYPE_WIFI: | ||
482 | + case CONNMAN_TYPE_CELLULAR: | ||
483 | /* Show the AP name */ | ||
484 | title = N_(name); | ||
485 | if (g_str_equal(state, "association") == TRUE) | ||
486 | @@ -324,6 +362,10 @@ static void device_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell, | ||
487 | title = N_("Wireless Networks"); | ||
488 | markup = g_strdup_printf("<b>\n%s\n</b>", title); | ||
489 | break; | ||
490 | + case CONNMAN_TYPE_LABEL_CELLULAR: | ||
491 | + title = N_("Cellular Networks"); | ||
492 | + markup = g_strdup_printf("<b>\n%s\n</b>", title); | ||
493 | + break; | ||
494 | case CONNMAN_TYPE_SYSCONFIG: | ||
495 | title = N_("System Configuration"); | ||
496 | markup = g_strdup_printf("<b>\n%s\n</b>", title); | ||
497 | @@ -362,6 +404,10 @@ static void type_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell, | ||
498 | g_object_set(cell, "icon-name", "network-wireless", | ||
499 | "stock-size", 4, NULL); | ||
500 | break; | ||
501 | + case CONNMAN_TYPE_LABEL_CELLULAR: | ||
502 | + g_object_set(cell, "icon-name", "network-cellular", | ||
503 | + "stock-size", 4, NULL); | ||
504 | + break; | ||
505 | default: | ||
506 | g_object_set(cell, "icon-name", NULL, NULL); | ||
507 | break; | ||