From 3f88f455d632499b071863793a33f161c67dcbb6 Mon Sep 17 00:00:00 2001 From: Lucas Joia Date: Fri, 4 Jan 2013 16:12:37 +0000 Subject: [PATCH] e/bluez4: Show errors in dialogs Patch by: Lucas Joia SVN revision: 82193 --- src/modules/bluez4/e_mod_main.c | 23 +++++++++++++++++++++++ src/modules/bluez4/e_mod_main.h | 1 + src/modules/bluez4/ebluez4.c | 22 +++++++++++++++++----- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/modules/bluez4/e_mod_main.c b/src/modules/bluez4/e_mod_main.c index 8305261e9..2fae47e70 100644 --- a/src/modules/bluez4/e_mod_main.c +++ b/src/modules/bluez4/e_mod_main.c @@ -374,3 +374,26 @@ ebluez4_update_all_gadgets_visibility() _ebluez4_search_dialog_del(inst); } } + +void +ebluez4_show_error(const char *err_name, const char *err_msg) +{ + E_Container *con; + E_Dialog *dialog; + Evas *evas; + Evas_Object *box, *label; + int mw, mh; + + con = e_container_current_get(e_manager_current_get()); + dialog = e_dialog_new(con, "Error Dialog", "error"); + e_dialog_title_set(dialog, "An error has ocurred"); + snprintf(tmpbuf, sizeof(tmpbuf), "%s: %s.", err_name, err_msg); + evas = e_win_evas_get(dialog->win); + label = e_widget_label_add(evas, tmpbuf); + box = e_box_add(evas); + e_box_pack_start(box, label); + e_widget_size_min_get(label, &mw, &mh); + e_dialog_content_set(dialog, box, mw+30, mh+30); + e_dialog_show(dialog); + e_dialog_border_icon_set(dialog, "dialog-error"); +} diff --git a/src/modules/bluez4/e_mod_main.h b/src/modules/bluez4/e_mod_main.h index c068ba3e6..d252b7c76 100644 --- a/src/modules/bluez4/e_mod_main.h +++ b/src/modules/bluez4/e_mod_main.h @@ -22,5 +22,6 @@ void ebluez4_append_to_instances(void *data, int list_type); void ebluez4_update_inst(Evas_Object *dest, Eina_List *src, int list_type); void ebluez4_update_instances(Eina_List *src, int list_type); void ebluez4_update_all_gadgets_visibility(); +void ebluez4_show_error(const char *err_name, const char *err_msg); #endif diff --git a/src/modules/bluez4/ebluez4.c b/src/modules/bluez4/ebluez4.c index e6a366e72..3080ff43d 100644 --- a/src/modules/bluez4/ebluez4.c +++ b/src/modules/bluez4/ebluez4.c @@ -143,6 +143,7 @@ static void _on_prop_changed(void *context, const EDBus_Message *msg) { const char *key, *name; + char err_msg[4096]; Eina_Bool paired, connected; EDBus_Message_Iter *variant, *uuids; Device *dev = context; @@ -151,7 +152,10 @@ _on_prop_changed(void *context, const EDBus_Message *msg) if (!edbus_message_arguments_get(msg, "sv", &key, &variant)) { - ERR("Property of %s changed, but could not be read", dev->name); + snprintf(err_msg, sizeof(err_msg), + "Property of %s changed, but could not be read", dev->name); + ERR("%s", err_msg); + ebluez4_show_error("Bluez Error", err_msg); return; } @@ -206,6 +210,7 @@ _on_connected(void *data, const EDBus_Message *msg, EDBus_Pending *pending) if (edbus_message_error_get(msg, &err_name, &err_msg)) { ERR("%s: %s", err_name, err_msg); + ebluez4_show_error(err_name, err_msg); return; } } @@ -225,6 +230,7 @@ _on_paired(void *data, const EDBus_Message *msg, EDBus_Pending *pending) if (edbus_message_error_get(msg, &err_name, &err_msg)) { ERR("%s: %s", err_name, err_msg); + ebluez4_show_error(err_name, err_msg); return; } } @@ -333,11 +339,13 @@ _on_list(void *data, const EDBus_Message *msg, EDBus_Pending *pending) { EDBus_Message_Iter *array; const char *path; + const char *err_msg = "Error reading list of devices"; if (!edbus_message_arguments_get(msg, "ao", &array)) { - ERR("Error reading list of devices"); - return; + ERR("%s", err_msg); + ebluez4_show_error("Bluez Error", err_msg); + return; } while (edbus_message_iter_get_and_next(array, 'o', &path)) @@ -348,10 +356,12 @@ static void _set_adapter(const EDBus_Message *msg) { const char *adap_path; + const char *err_msg = "Error reading path of Default Adapter"; if (!edbus_message_arguments_get(msg, "o", &adap_path)) { - ERR("Error reading path of Default Adapter"); + ERR("%s", err_msg); + ebluez4_show_error("Bluez Error", err_msg); return; } @@ -401,10 +411,12 @@ static void _on_adapter_removed(void *context, const EDBus_Message *msg) { const char *adap_path; + const char *err_msg = "Error reading path of Removed Adapter"; if (!edbus_message_arguments_get(msg, "o", &adap_path)) { - ERR("Error reading path of Removed Adapter"); + ERR("%s", err_msg); + ebluez4_show_error("Bluez Error", err_msg); return; }