diff --git a/src/modules/connman/TODO b/src/modules/connman/TODO index bbf620062..73743c7b5 100644 --- a/src/modules/connman/TODO +++ b/src/modules/connman/TODO @@ -14,9 +14,3 @@ - Search for entries with the same type when we receive an 'Informational' field so we can use it in an useful manner - - - Add "config" button in popup that will call the external binary for - advanced configuration - - - Add configuration entry to set the external binary - econnman-bin is - the default diff --git a/src/modules/connman/e_mod_main.c b/src/modules/connman/e_mod_main.c index 83d0ae426..0b5b7860e 100644 --- a/src/modules/connman/e_mod_main.c +++ b/src/modules/connman/e_mod_main.c @@ -212,9 +212,34 @@ static void _econnman_popup_input_window_create(E_Connman_Instance *inst) } static void -_econnman_configure_cb(void *data __UNUSED__, void *data2 __UNUSED__) +_econnman_app_launch(E_Connman_Instance *inst) { - /* FIXME call econnman-bin or other set on modules settings */ + Efreet_Desktop *desktop = efreet_util_desktop_name_find("EConnMan"); + E_Zone *zone; + + if (!desktop) + { + e_util_dialog_internal + (_("Missing Application"), + _("This module wants to execute an external application " + "EConnMan that does not exist.
" + "Please install EConnMan application.")); + return; + } + + zone = e_gadcon_client_zone_get(inst->gcc); + if (!zone) + zone = e_util_zone_current_get(e_manager_current_get()); + + e_exec(zone, desktop, NULL, NULL, "econnman/app"); + efreet_desktop_free(desktop); +} + +static void +_econnman_configure_cb(void *data, void *data2 __UNUSED__) +{ + E_Connman_Instance *inst = data; + _econnman_app_launch(inst); } static void _econnman_popup_new(E_Connman_Instance *inst) @@ -240,7 +265,7 @@ static void _econnman_popup_new(E_Connman_Instance *inst) _econnman_popup_update(ctxt->cm, inst); bt = e_widget_button_add(evas, "Configure", NULL, - _econnman_configure_cb, NULL, NULL); + _econnman_configure_cb, inst, NULL); e_widget_list_object_append(list, bt, 1, 0, 0.5); e_widget_size_min_get(list, &mw, &mh); @@ -359,7 +384,8 @@ void econnman_mod_manager_inout(struct Connman_Manager *cm) static void _econnman_menu_cb_configure(void *data, E_Menu *menu, E_Menu_Item *mi) { - /* TODO */ + E_Connman_Instance *inst = data; + _econnman_app_launch(inst); } static void _econnman_menu_new(E_Connman_Instance *inst,