formatting

SVN revision: 72692
This commit is contained in:
Mike Blumenkrantz 2012-06-22 07:30:50 +00:00
parent 21d37fcbbc
commit 118d57ac9d
5 changed files with 278 additions and 263 deletions

View File

@ -3,51 +3,51 @@
typedef struct _E_Config_Data typedef struct _E_Config_Data
{ {
const char *title, *icon, *dialog, *filename; const char *title, *icon, *dialog, *filename;
Eina_Bool show_autostart; Eina_Bool show_autostart;
} E_Config_Data; } E_Config_Data;
typedef struct _E_Config_App_List typedef struct _E_Config_App_List
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
Evas_Object *o_list, *o_add, *o_del, *o_desc; Evas_Object *o_list, *o_add, *o_del, *o_desc;
Eina_List *desks; Eina_List *desks;
} E_Config_App_List; } E_Config_App_List;
struct _E_Config_Dialog_Data struct _E_Config_Dialog_Data
{ {
E_Config_Data *data; E_Config_Data *data;
Evas_Object *o_list, *o_up, *o_down, *o_del; Evas_Object *o_list, *o_up, *o_down, *o_del;
Eina_List *apps; Eina_List *apps;
Ecore_Timer *fill_delay; Ecore_Timer *fill_delay;
E_Config_App_List apps_user; E_Config_App_List apps_user;
E_Config_App_List apps_xdg; /* xdg autostart apps */ E_Config_App_List apps_xdg; /* xdg autostart apps */
}; };
/* local function prototypes */ /* local function prototypes */
static E_Config_Dialog *_create_dialog(E_Container *con, E_Config_Data *data); static E_Config_Dialog *_create_dialog(E_Container *con, E_Config_Data *data);
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata); static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
static Eina_List *_load_menu(const char *path); static Eina_List *_load_menu(const char *path);
static Eina_List *_load_order(const char *path); static Eina_List *_load_order(const char *path);
static int _save_menu(E_Config_Dialog_Data *cfdata); static int _save_menu(E_Config_Dialog_Data *cfdata);
static int _save_order(E_Config_Dialog_Data *cfdata); static int _save_order(E_Config_Dialog_Data *cfdata);
static void _fill_apps_list(E_Config_App_List *apps); static void _fill_apps_list(E_Config_App_List *apps);
static void _fill_xdg_list(E_Config_App_List *apps); static void _fill_xdg_list(E_Config_App_List *apps);
static void _fill_order_list(E_Config_Dialog_Data *cfdata); static void _fill_order_list(E_Config_Dialog_Data *cfdata);
static void _cb_apps_list_selected(void *data); static void _cb_apps_list_selected(void *data);
static void _cb_order_list_selected(void *data); static void _cb_order_list_selected(void *data);
static int _cb_desks_sort(const void *data1, const void *data2); static int _cb_desks_sort(const void *data1, const void *data2);
static int _cb_desks_name(const void *data1, const void *data2); static int _cb_desks_name(const void *data1, const void *data2);
static int _cb_desks_sort(const void *data1, const void *data2); static int _cb_desks_sort(const void *data1, const void *data2);
static void _cb_add(void *data, void *data2 __UNUSED__); static void _cb_add(void *data, void *data2 __UNUSED__);
static void _cb_del(void *data, void *data2 __UNUSED__); static void _cb_del(void *data, void *data2 __UNUSED__);
static void _cb_up(void *data, void *data2 __UNUSED__); static void _cb_up(void *data, void *data2 __UNUSED__);
static void _cb_down(void *data, void *data2 __UNUSED__); static void _cb_down(void *data, void *data2 __UNUSED__);
static void _cb_order_del(void *data, void *data2 __UNUSED__); static void _cb_order_del(void *data, void *data2 __UNUSED__);
static Eina_Bool _cb_fill_delay(void *data); static Eina_Bool _cb_fill_delay(void *data);
static void _list_items_state_set(E_Config_App_List *apps); static void _list_items_state_set(E_Config_App_List *apps);
E_Config_Dialog * E_Config_Dialog *
e_int_config_apps_add(E_Container *con, const char *params __UNUSED__) e_int_config_apps_add(E_Container *con, const char *params __UNUSED__)
@ -157,7 +157,7 @@ _create_dialog(E_Container *con, E_Config_Data *data)
v->basic.apply_cfdata = _basic_apply; v->basic.apply_cfdata = _basic_apply;
cfd = e_config_dialog_new(con, data->title, "E", data->dialog, cfd = e_config_dialog_new(con, data->title, "E", data->dialog,
data->icon, 0, v, data); data->icon, 0, v, data);
return cfd; return cfd;
} }
@ -219,30 +219,30 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
if (cfdata->data->show_autostart) if (cfdata->data->show_autostart)
{ {
/* XDG autostart page */ /* XDG autostart page */
ot = e_widget_table_add(evas, EINA_FALSE); ot = e_widget_table_add(evas, EINA_FALSE);
cfdata->apps_xdg.o_list = e_widget_ilist_add(evas, 24, 24, NULL); cfdata->apps_xdg.o_list = e_widget_ilist_add(evas, 24, 24, NULL);
e_widget_ilist_multi_select_set(cfdata->apps_xdg.o_list, EINA_TRUE); e_widget_ilist_multi_select_set(cfdata->apps_xdg.o_list, EINA_TRUE);
e_widget_size_min_get(cfdata->apps_xdg.o_list, &mw, NULL); e_widget_size_min_get(cfdata->apps_xdg.o_list, &mw, NULL);
if (mw < (200 * e_scale)) mw = (200 * e_scale); if (mw < (200 * e_scale)) mw = (200 * e_scale);
e_widget_size_min_set(cfdata->apps_xdg.o_list, mw, (75 * e_scale)); e_widget_size_min_set(cfdata->apps_xdg.o_list, mw, (75 * e_scale));
e_widget_table_object_append(ot, cfdata->apps_xdg.o_list, 0, 0, 2, 1, 1, 1, 1, 1); e_widget_table_object_append(ot, cfdata->apps_xdg.o_list, 0, 0, 2, 1, 1, 1, 1, 1);
cfdata->apps_xdg.o_desc = e_widget_textblock_add(evas); cfdata->apps_xdg.o_desc = e_widget_textblock_add(evas);
e_widget_size_min_set(cfdata->apps_xdg.o_desc, 100, (45 * e_scale)); e_widget_size_min_set(cfdata->apps_xdg.o_desc, 100, (45 * e_scale));
e_widget_table_object_append(ot, cfdata->apps_xdg.o_desc, 0, 1, 2, 1, 1, 1, 0, 0); e_widget_table_object_append(ot, cfdata->apps_xdg.o_desc, 0, 1, 2, 1, 1, 1, 0, 0);
cfdata->apps_xdg.o_add = e_widget_button_add(evas, _("Add"), "list-add", cfdata->apps_xdg.o_add = e_widget_button_add(evas, _("Add"), "list-add",
_cb_add, &cfdata->apps_xdg, NULL); _cb_add, &cfdata->apps_xdg, NULL);
e_widget_disabled_set(cfdata->apps_xdg.o_add, EINA_TRUE); e_widget_disabled_set(cfdata->apps_xdg.o_add, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->apps_xdg.o_add, 0, 2, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->apps_xdg.o_add, 0, 2, 1, 1, 1, 1, 1, 0);
cfdata->apps_xdg.o_del = e_widget_button_add(evas, _("Remove"), "list-remove", cfdata->apps_xdg.o_del = e_widget_button_add(evas, _("Remove"), "list-remove",
_cb_del, &cfdata->apps_xdg, NULL); _cb_del, &cfdata->apps_xdg, NULL);
e_widget_disabled_set(cfdata->apps_xdg.o_del, EINA_TRUE); e_widget_disabled_set(cfdata->apps_xdg.o_del, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->apps_xdg.o_del, 1, 2, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->apps_xdg.o_del, 1, 2, 1, 1, 1, 1, 1, 0);
e_widget_toolbook_page_append(otb, NULL, _("System"), ot, e_widget_toolbook_page_append(otb, NULL, _("System"), ot,
1, 1, 1, 1, 0.5, 0.0); 1, 1, 1, 1, 0.5, 0.0);
} }
/* Selection page */ /* Selection page */
@ -254,11 +254,11 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
e_widget_size_min_set(cfdata->apps_user.o_list, mw, (75 * e_scale)); e_widget_size_min_set(cfdata->apps_user.o_list, mw, (75 * e_scale));
e_widget_table_object_append(ot, cfdata->apps_user.o_list, 0, 0, 2, 1, 1, 1, 1, 1); e_widget_table_object_append(ot, cfdata->apps_user.o_list, 0, 0, 2, 1, 1, 1, 1, 1);
cfdata->apps_user.o_add = e_widget_button_add(evas, _("Add"), "list-add", cfdata->apps_user.o_add = e_widget_button_add(evas, _("Add"), "list-add",
_cb_add, &cfdata->apps_user, NULL); _cb_add, &cfdata->apps_user, NULL);
e_widget_disabled_set(cfdata->apps_user.o_add, EINA_TRUE); e_widget_disabled_set(cfdata->apps_user.o_add, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->apps_user.o_add, 0, 1, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->apps_user.o_add, 0, 1, 1, 1, 1, 1, 1, 0);
cfdata->apps_user.o_del = e_widget_button_add(evas, _("Remove"), "list-remove", cfdata->apps_user.o_del = e_widget_button_add(evas, _("Remove"), "list-remove",
_cb_del, &cfdata->apps_user, NULL); _cb_del, &cfdata->apps_user, NULL);
e_widget_disabled_set(cfdata->apps_user.o_del, EINA_TRUE); e_widget_disabled_set(cfdata->apps_user.o_del, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->apps_user.o_del, 1, 1, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->apps_user.o_del, 1, 1, 1, 1, 1, 1, 1, 0);
e_widget_toolbook_page_append(otb, NULL, _("Applications"), ot, e_widget_toolbook_page_append(otb, NULL, _("Applications"), ot,
@ -278,7 +278,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
e_widget_disabled_set(cfdata->o_down, EINA_TRUE); e_widget_disabled_set(cfdata->o_down, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->o_down, 1, 1, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->o_down, 1, 1, 1, 1, 1, 1, 1, 0);
cfdata->o_del = e_widget_button_add(evas, _("Remove"), "list-remove", cfdata->o_del = e_widget_button_add(evas, _("Remove"), "list-remove",
_cb_order_del, cfdata, NULL); _cb_order_del, cfdata, NULL);
e_widget_disabled_set(cfdata->o_del, EINA_TRUE); e_widget_disabled_set(cfdata->o_del, EINA_TRUE);
e_widget_table_object_append(ot, cfdata->o_del, 2, 1, 1, 1, 1, 1, 1, 0); e_widget_table_object_append(ot, cfdata->o_del, 2, 1, 1, 1, 1, 1, 1, 0);
e_widget_toolbook_page_append(otb, NULL, _("Order"), ot, e_widget_toolbook_page_append(otb, NULL, _("Order"), ot,
@ -409,7 +409,7 @@ _list_items_state_set(E_Config_App_List *apps)
end = NULL; end = NULL;
} }
if (!end) break; if (!end) break;
if (eina_list_search_unsorted(apps->cfdata->apps, _cb_desks_sort, desk)) if (eina_list_search_unsorted(apps->cfdata->apps, _cb_desks_sort, desk))
{ {
@ -417,7 +417,7 @@ _list_items_state_set(E_Config_App_List *apps)
} }
else else
{ {
edje_object_signal_emit(end, "e,state,unchecked", "e"); edje_object_signal_emit(end, "e,state,unchecked", "e");
} }
icon = e_util_desktop_icon_add(desk, 24, evas); icon = e_util_desktop_icon_add(desk, 24, evas);
@ -486,19 +486,19 @@ _fill_xdg_list(E_Config_App_List *apps)
files = ecore_file_ls(path); files = ecore_file_ls(path);
EINA_LIST_FREE(files, file) EINA_LIST_FREE(files, file)
{ {
Eina_List *ll; Eina_List *ll;
if ((file[0] == '.') || !(ext = strrchr(file, '.')) || (strcmp(ext, ".desktop"))) if ((file[0] == '.') || !(ext = strrchr(file, '.')) || (strcmp(ext, ".desktop")))
{ {
free(file); free(file);
continue; continue;
} }
snprintf(buf, sizeof(buf), "%s/%s", path, file); snprintf(buf, sizeof(buf), "%s/%s", path, file);
free(file); free(file);
desk = efreet_desktop_new(buf); desk = efreet_desktop_new(buf);
if (!desk) if (!desk)
continue; continue;
ll = eina_list_search_unsorted_list(apps->desks, _cb_desks_sort, desk); ll = eina_list_search_unsorted_list(apps->desks, _cb_desks_sort, desk);
if (ll) if (ll)
@ -576,13 +576,13 @@ _cb_apps_list_selected(void *data)
if (apps->o_desc) if (apps->o_desc)
{ {
Efreet_Desktop *desk; Efreet_Desktop *desk;
int sel; int sel;
sel = e_widget_ilist_selected_get(apps->o_list); sel = e_widget_ilist_selected_get(apps->o_list);
desk = eina_list_nth(apps->desks, sel); desk = eina_list_nth(apps->desks, sel);
if (desk) if (desk)
e_widget_textblock_markup_set(apps->o_desc, desk->comment); e_widget_textblock_markup_set(apps->o_desc, desk->comment);
} }
e_widget_disabled_set(apps->o_add, !disabled); e_widget_disabled_set(apps->o_add, !disabled);
@ -697,15 +697,15 @@ _cb_order_del(void *data, void *data2 __UNUSED__)
if (!(cfdata = data)) return; if (!(cfdata = data)) return;
EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->o_list), l, it) EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->o_list), l, it)
{ {
Efreet_Desktop *desk; Efreet_Desktop *desk;
if ((!it->selected) || (it->header)) continue; if ((!it->selected) || (it->header)) continue;
if ((desk = eina_list_search_unsorted(cfdata->apps, _cb_desks_name, it->label))) if ((desk = eina_list_search_unsorted(cfdata->apps, _cb_desks_name, it->label)))
{ {
cfdata->apps = eina_list_remove(cfdata->apps, desk); cfdata->apps = eina_list_remove(cfdata->apps, desk);
efreet_desktop_unref(desk); efreet_desktop_unref(desk);
} }
} }
_list_items_state_set(&(cfdata->apps_xdg)); _list_items_state_set(&(cfdata->apps_xdg));
@ -824,12 +824,13 @@ _cb_fill_delay(void *data)
if (cfdata->data->show_autostart) if (cfdata->data->show_autostart)
{ {
_fill_xdg_list(&cfdata->apps_xdg); _fill_xdg_list(&cfdata->apps_xdg);
e_widget_size_min_get(cfdata->apps_xdg.o_list, &mw, NULL); e_widget_size_min_get(cfdata->apps_xdg.o_list, &mw, NULL);
if (mw < (200 * e_scale)) mw = (200 * e_scale); if (mw < (200 * e_scale)) mw = (200 * e_scale);
e_widget_size_min_set(cfdata->apps_xdg.o_list, mw, (175 * e_scale)); e_widget_size_min_set(cfdata->apps_xdg.o_list, mw, (175 * e_scale));
} }
cfdata->fill_delay = NULL; cfdata->fill_delay = NULL;
return ECORE_CALLBACK_CANCEL; return ECORE_CALLBACK_CANCEL;
} }

View File

@ -11,48 +11,49 @@ struct _Config_Glob
struct _Config_Mime struct _Config_Mime
{ {
const char *mime; const char *mime;
Eina_List *globs; Eina_List *globs;
}; };
struct _E_Config_Dialog_Data struct _E_Config_Dialog_Data
{ {
struct { struct
{
Evas_Object *deflist, *mimelist, *entry; Evas_Object *deflist, *mimelist, *entry;
} obj; } obj;
Efreet_Ini *ini; Efreet_Ini *ini;
Eina_List *mimes; Eina_List *mimes;
Eina_List *desks; Eina_List *desks;
const char *selmime; const char *selmime;
const char *selapp; const char *selapp;
const char **seldest; const char **seldest;
char *browser_custom; char *browser_custom;
const char *browser_desktop; const char *browser_desktop;
const char *mailto_desktop; const char *mailto_desktop;
const char *file_desktop; const char *file_desktop;
const char *trash_desktop; const char *trash_desktop;
Ecore_Event_Handler *desk_change_handler; Ecore_Event_Handler *desk_change_handler;
int gen; int gen;
}; };
/* local function prototypes */ /* local function prototypes */
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata); static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
static Eina_Bool _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__); static Eina_Bool _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__);
static void _load_mimes(E_Config_Dialog_Data *cfdata, char *file); static void _load_mimes(E_Config_Dialog_Data *cfdata, char *file);
static void _load_globs(E_Config_Dialog_Data *cfdata, char *file); static void _load_globs(E_Config_Dialog_Data *cfdata, char *file);
static int _sort_mimes(const void *data1, const void *data2); static int _sort_mimes(const void *data1, const void *data2);
static Config_Mime *_find_mime(E_Config_Dialog_Data *cfdata, char *mime); static Config_Mime *_find_mime(E_Config_Dialog_Data *cfdata, char *mime);
static Config_Glob *_find_glob(Config_Mime *mime, char *glob); static Config_Glob *_find_glob(Config_Mime *mime, char *glob);
static int _cb_desks_sort(const void *data1, const void *data2); static int _cb_desks_sort(const void *data1, const void *data2);
static void _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il, const char **desktop, int general); static void _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il, const char **desktop, int general);
E_Config_Dialog * E_Config_Dialog *
e_int_config_defapps(E_Container *con, const char *params __UNUSED__) e_int_config_defapps(E_Container *con, const char *params __UNUSED__)
@ -61,7 +62,7 @@ e_int_config_defapps(E_Container *con, const char *params __UNUSED__)
E_Config_Dialog_View *v; E_Config_Dialog_View *v;
if (e_config_dialog_find("E", "applications/default_applications")) if (e_config_dialog_find("E", "applications/default_applications"))
return NULL; return NULL;
v = E_NEW(E_Config_Dialog_View, 1); v = E_NEW(E_Config_Dialog_View, 1);
v->create_cfdata = _create_data; v->create_cfdata = _create_data;
@ -71,7 +72,7 @@ e_int_config_defapps(E_Container *con, const char *params __UNUSED__)
cfd = e_config_dialog_new(con, _("Default Applications"), cfd = e_config_dialog_new(con, _("Default Applications"),
"E", "applications/default_applications", "E", "applications/default_applications",
"preferences-applications-default", 0, v, NULL); "preferences-applications-default", 0, v, NULL);
return cfd; return cfd;
} }
@ -90,7 +91,7 @@ _create_data(E_Config_Dialog *cfd __UNUSED__)
if (!cfdata) return NULL; if (!cfdata) return NULL;
cfdata->desk_change_handler = ecore_event_handler_add cfdata->desk_change_handler = ecore_event_handler_add
(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _desks_update, cfdata); (EFREET_EVENT_DESKTOP_CACHE_UPDATE, _desks_update, cfdata);
snprintf(buf, sizeof(buf), "%s/applications/defaults.list", snprintf(buf, sizeof(buf), "%s/applications/defaults.list",
efreet_data_home_get()); efreet_data_home_get());
@ -140,7 +141,7 @@ _create_data(E_Config_Dialog *cfd __UNUSED__)
if (!strcmp(evr->var, "BROWSER")) if (!strcmp(evr->var, "BROWSER"))
{ {
if ((evr->val) && (!evr->unset)) if ((evr->val) && (!evr->unset))
cfdata->browser_custom = strdup(evr->val); cfdata->browser_custom = strdup(evr->val);
break; break;
} }
} }
@ -197,9 +198,9 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
} }
if (cfdata->ini) efreet_ini_free(cfdata->ini); if (cfdata->ini) efreet_ini_free(cfdata->ini);
EINA_LIST_FREE(cfdata->desks, desk) EINA_LIST_FREE(cfdata->desks, desk)
efreet_desktop_free(desk); efreet_desktop_free(desk);
if (cfdata->desk_change_handler) if (cfdata->desk_change_handler)
ecore_event_handler_del(cfdata->desk_change_handler); ecore_event_handler_del(cfdata->desk_change_handler);
E_FREE(cfdata); E_FREE(cfdata);
} }
@ -209,11 +210,11 @@ _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__)
E_Config_Dialog_Data *cfdata = data; E_Config_Dialog_Data *cfdata = data;
Efreet_Desktop *desk; Efreet_Desktop *desk;
EINA_LIST_FREE(cfdata->desks, desk) EINA_LIST_FREE(cfdata->desks, desk)
efreet_desktop_free(desk); efreet_desktop_free(desk);
if (cfdata->gen) if (cfdata->gen)
_fill_apps_list(cfdata, cfdata->obj.deflist, &(cfdata->selapp), 1); _fill_apps_list(cfdata, cfdata->obj.deflist, &(cfdata->selapp), 1);
else else
_fill_apps_list(cfdata, cfdata->obj.deflist, cfdata->seldest, 0); _fill_apps_list(cfdata, cfdata->obj.deflist, cfdata->seldest, 0);
return ECORE_CALLBACK_PASS_ON; return ECORE_CALLBACK_PASS_ON;
} }
@ -323,7 +324,7 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
e_widget_ilist_freeze(il); e_widget_ilist_freeze(il);
e_widget_ilist_selector_set(il, 1); e_widget_ilist_selector_set(il, 1);
EINA_LIST_FOREACH(cfdata->mimes, l, m) EINA_LIST_FOREACH(cfdata->mimes, l, m)
e_widget_ilist_append(il, NULL, m->mime, _sel_mime_cb, cfdata, m->mime); e_widget_ilist_append(il, NULL, m->mime, _sel_mime_cb, cfdata, m->mime);
e_widget_ilist_go(il); e_widget_ilist_go(il);
e_widget_ilist_thaw(il); e_widget_ilist_thaw(il);
edje_thaw(); edje_thaw();
@ -367,14 +368,14 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
cfdata->browser_desktop); cfdata->browser_desktop);
} }
if ((cfdata->mailto_desktop) && (cfdata->mailto_desktop[0])) if ((cfdata->mailto_desktop) && (cfdata->mailto_desktop[0]))
efreet_ini_string_set(cfdata->ini, "x-scheme-handler/mailto", efreet_ini_string_set(cfdata->ini, "x-scheme-handler/mailto",
cfdata->mailto_desktop); cfdata->mailto_desktop);
if ((cfdata->file_desktop) && (cfdata->file_desktop[0])) if ((cfdata->file_desktop) && (cfdata->file_desktop[0]))
efreet_ini_string_set(cfdata->ini, "x-scheme-handler/file", efreet_ini_string_set(cfdata->ini, "x-scheme-handler/file",
cfdata->file_desktop); cfdata->file_desktop);
if ((cfdata->trash_desktop) && (cfdata->trash_desktop[0])) if ((cfdata->trash_desktop) && (cfdata->trash_desktop[0]))
efreet_ini_string_set(cfdata->ini, "x-scheme-handler/trash", efreet_ini_string_set(cfdata->ini, "x-scheme-handler/trash",
cfdata->trash_desktop); cfdata->trash_desktop);
snprintf(buf, sizeof(buf), "%s/applications/defaults.list", snprintf(buf, sizeof(buf), "%s/applications/defaults.list",
efreet_data_home_get()); efreet_data_home_get());
efreet_ini_save(cfdata->ini, buf); efreet_ini_save(cfdata->ini, buf);
@ -388,7 +389,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
} }
if (evr) if (evr)
{ {
evr->unset =0; evr->unset = 0;
if (evr->val) eina_stringshare_del(evr->val); if (evr->val) eina_stringshare_del(evr->val);
} }
else else
@ -442,20 +443,24 @@ _load_mimes(E_Config_Dialog_Data *cfdata, char *file)
while (fgets(buf, sizeof(buf), f)) while (fgets(buf, sizeof(buf), f))
{ {
p = buf; p = buf;
while (isblank(*p) && (*p != 0) && (*p != '\n')) p++; while (isblank(*p) && (*p != 0) && (*p != '\n'))
p++;
if (*p == '#') continue; if (*p == '#') continue;
if ((*p == '\n') || (*p == 0)) continue; if ((*p == '\n') || (*p == 0)) continue;
pp = p; pp = p;
while (!isblank(*p) && (*p != 0) && (*p != '\n')) p++; while (!isblank(*p) && (*p != 0) && (*p != '\n'))
p++;
if ((*p == '\n') || (*p == 0)) continue; if ((*p == '\n') || (*p == 0)) continue;
strncpy(mimetype, pp, (p - pp)); strncpy(mimetype, pp, (p - pp));
mimetype[p - pp] = 0; mimetype[p - pp] = 0;
do do
{ {
while (isblank(*p) && (*p != 0) && (*p != '\n')) p++; while (isblank(*p) && (*p != 0) && (*p != '\n'))
p++;
if ((*p == '\n') || (*p == 0)) continue; if ((*p == '\n') || (*p == 0)) continue;
pp = p; pp = p;
while (!isblank(*p) && (*p != 0) && (*p != '\n')) p++; while (!isblank(*p) && (*p != 0) && (*p != '\n'))
p++;
strncpy(ext, pp, (p - pp)); strncpy(ext, pp, (p - pp));
ext[p - pp] = 0; ext[p - pp] = 0;
config_mime = _find_mime(cfdata, mimetype); config_mime = _find_mime(cfdata, mimetype);
@ -466,7 +471,7 @@ _load_mimes(E_Config_Dialog_Data *cfdata, char *file)
{ {
config_mime->mime = eina_stringshare_add(mimetype); config_mime->mime = eina_stringshare_add(mimetype);
if (!config_mime->mime) if (!config_mime->mime)
free(config_mime); free(config_mime);
else else
{ {
config_glob = E_NEW(Config_Glob, 1); config_glob = E_NEW(Config_Glob, 1);
@ -508,11 +513,13 @@ _load_globs(E_Config_Dialog_Data *cfdata, char *file)
while (fgets(buf, sizeof(buf), f)) while (fgets(buf, sizeof(buf), f))
{ {
p = buf; p = buf;
while (isblank(*p) && (*p != 0) && (*p != '\n')) p++; while (isblank(*p) && (*p != 0) && (*p != '\n'))
p++;
if (*p == '#') continue; if (*p == '#') continue;
if ((*p == '\n') || (*p == 0)) continue; if ((*p == '\n') || (*p == 0)) continue;
pp = p; pp = p;
while ((*p != ':') && (*p != 0) && (*p != '\n')) p++; while ((*p != ':') && (*p != 0) && (*p != '\n'))
p++;
if ((*p == '\n') || (*p == 0)) continue; if ((*p == '\n') || (*p == 0)) continue;
strncpy(mimetype, pp, (p - pp)); strncpy(mimetype, pp, (p - pp));
mimetype[p - pp] = 0; mimetype[p - pp] = 0;
@ -533,7 +540,7 @@ _load_globs(E_Config_Dialog_Data *cfdata, char *file)
{ {
config_mime->mime = eina_stringshare_add(mimetype); config_mime->mime = eina_stringshare_add(mimetype);
if (!config_mime->mime) if (!config_mime->mime)
free(config_mime); free(config_mime);
else else
{ {
config_glob = E_NEW(Config_Glob, 1); config_glob = E_NEW(Config_Glob, 1);
@ -563,7 +570,7 @@ _sort_mimes(const void *data1, const void *data2)
const Config_Mime *m1 = data1, *m2 = data2; const Config_Mime *m1 = data1, *m2 = data2;
if (!m1) return 1; if (!m1) return 1;
if (!m2) return -1; if (!m2) return -1;
return (strcmp(m1->mime, m2->mime)); return strcmp(m1->mime, m2->mime);
} }
static Config_Mime * static Config_Mime *
@ -617,7 +624,7 @@ _sel_desk_gen_cb(void *data)
if ((s) && (cfdata->selmime)) if ((s) && (cfdata->selmime))
{ {
if (cfdata->ini) if (cfdata->ini)
efreet_ini_string_set(cfdata->ini, cfdata->selmime, s); efreet_ini_string_set(cfdata->ini, cfdata->selmime, s);
} }
} }
@ -711,10 +718,10 @@ _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il, const char **desk
eina_list_data_set(ll, desk); eina_list_data_set(ll, desk);
} }
else else
efreet_desktop_free(desk); efreet_desktop_free(desk);
} }
else else
cfdata->desks = eina_list_append(cfdata->desks, desk); cfdata->desks = eina_list_append(cfdata->desks, desk);
} }
cfdata->desks = eina_list_sort(cfdata->desks, -1, _cb_desks_sort); cfdata->desks = eina_list_sort(cfdata->desks, -1, _cb_desks_sort);
} }
@ -735,18 +742,18 @@ _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il, const char **desk
{ {
if ((!strcmp(desk->orig_path, *desktop)) || if ((!strcmp(desk->orig_path, *desktop)) ||
(!strcmp(ecore_file_file_get(desk->orig_path), *desktop))) (!strcmp(ecore_file_file_get(desk->orig_path), *desktop)))
sel = i; sel = i;
} }
icon = e_util_desktop_icon_add(desk, 24, evas); icon = e_util_desktop_icon_add(desk, 24, evas);
if (general) if (general)
e_widget_ilist_append(il, icon, desk->name, e_widget_ilist_append(il, icon, desk->name,
_sel_desk_gen_cb, cfdata, _sel_desk_gen_cb, cfdata,
ecore_file_file_get(desk->orig_path)); ecore_file_file_get(desk->orig_path));
else else
e_widget_ilist_append(il, icon, desk->name, e_widget_ilist_append(il, icon, desk->name,
_sel_desk_cb, cfdata, _sel_desk_cb, cfdata,
ecore_file_file_get(desk->orig_path)); ecore_file_file_get(desk->orig_path));
i++; i++;
} }
@ -760,3 +767,4 @@ _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il, const char **desk
e_widget_ilist_nth_show(il, sel, 0); e_widget_ilist_nth_show(il, sel, 0);
} }
} }

View File

@ -2,23 +2,24 @@
struct _E_Config_Dialog_Data struct _E_Config_Dialog_Data
{ {
Eina_List *desks; Eina_List *desks;
Ecore_Event_Handler *desk_change_handler; Ecore_Event_Handler *desk_change_handler;
struct { struct
{
Evas_Object *list, *del; Evas_Object *list, *del;
} obj; } obj;
}; };
/* local function prototypes */ /* local function prototypes */
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
static Eina_Bool _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__); static Eina_Bool _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__);
static int _cb_desks_sort(const void *data1, const void *data2); static int _cb_desks_sort(const void *data1, const void *data2);
static void _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il); static void _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il);
static void _btn_cb_del(void *data, void *data2); static void _btn_cb_del(void *data, void *data2);
static void _widget_list_selection_changed(void *data, Evas_Object *obj __UNUSED__); static void _widget_list_selection_changed(void *data, Evas_Object *obj __UNUSED__);
E_Config_Dialog * E_Config_Dialog *
e_int_config_delapps(E_Container *con, const char *params __UNUSED__) e_int_config_delapps(E_Container *con, const char *params __UNUSED__)
@ -27,7 +28,7 @@ e_int_config_delapps(E_Container *con, const char *params __UNUSED__)
E_Config_Dialog_View *v; E_Config_Dialog_View *v;
if (e_config_dialog_find("E", "applications/del_applications")) if (e_config_dialog_find("E", "applications/del_applications"))
return NULL; return NULL;
v = E_NEW(E_Config_Dialog_View, 1); v = E_NEW(E_Config_Dialog_View, 1);
v->create_cfdata = _create_data; v->create_cfdata = _create_data;
@ -48,7 +49,7 @@ _create_data(E_Config_Dialog *cfd __UNUSED__)
cfdata = E_NEW(E_Config_Dialog_Data, 1); cfdata = E_NEW(E_Config_Dialog_Data, 1);
cfdata->desk_change_handler = ecore_event_handler_add cfdata->desk_change_handler = ecore_event_handler_add
(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _desks_update, cfdata); (EFREET_EVENT_DESKTOP_CACHE_UPDATE, _desks_update, cfdata);
return cfdata; return cfdata;
} }
@ -58,9 +59,10 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{ {
Efreet_Desktop *desk; Efreet_Desktop *desk;
EINA_LIST_FREE(cfdata->desks, desk) efreet_desktop_free(desk); EINA_LIST_FREE(cfdata->desks, desk)
efreet_desktop_free(desk);
if (cfdata->desk_change_handler) if (cfdata->desk_change_handler)
ecore_event_handler_del(cfdata->desk_change_handler); ecore_event_handler_del(cfdata->desk_change_handler);
E_FREE(cfdata); E_FREE(cfdata);
} }
@ -101,7 +103,8 @@ _desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__)
E_Config_Dialog_Data *cfdata = data; E_Config_Dialog_Data *cfdata = data;
Efreet_Desktop *desk; Efreet_Desktop *desk;
EINA_LIST_FREE(cfdata->desks, desk) efreet_desktop_free(desk); EINA_LIST_FREE(cfdata->desks, desk)
efreet_desktop_free(desk);
_fill_apps_list(cfdata, cfdata->obj.list); _fill_apps_list(cfdata, cfdata->obj.list);
return ECORE_CALLBACK_PASS_ON; return ECORE_CALLBACK_PASS_ON;
} }
@ -142,9 +145,9 @@ _fill_apps_list(E_Config_Dialog_Data *cfdata, Evas_Object *il)
continue; continue;
} }
if (!strncmp(desk->orig_path, desktop_dir, n)) if (!strncmp(desk->orig_path, desktop_dir, n))
cfdata->desks = eina_list_append(cfdata->desks, desk); cfdata->desks = eina_list_append(cfdata->desks, desk);
else else
efreet_desktop_free(desk); efreet_desktop_free(desk);
} }
cfdata->desks = eina_list_sort(cfdata->desks, -1, _cb_desks_sort); cfdata->desks = eina_list_sort(cfdata->desks, -1, _cb_desks_sort);
} }
@ -203,3 +206,4 @@ _widget_list_selection_changed(void *data, Evas_Object *obj __UNUSED__)
if (selnum == 0) e_widget_disabled_set(cfdata->obj.del, 1); if (selnum == 0) e_widget_disabled_set(cfdata->obj.del, 1);
else e_widget_disabled_set(cfdata->obj.del, 0); else e_widget_disabled_set(cfdata->obj.del, 0);
} }

View File

@ -2,9 +2,9 @@
/* PROTOTYPES - same all the time */ /* PROTOTYPES - same all the time */
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
/* Actual config data we will be playing with whil the dialog is active */ /* Actual config data we will be playing with whil the dialog is active */
@ -28,7 +28,7 @@ e_int_config_deskenv(E_Container *con, const char *params __UNUSED__)
v = E_NEW(E_Config_Dialog_View, 1); v = E_NEW(E_Config_Dialog_View, 1);
/* methods */ /* methods */
v->create_cfdata = _create_data; v->create_cfdata = _create_data;
v->free_cfdata = _free_data; v->free_cfdata = _free_data;
v->basic.apply_cfdata = _basic_apply; v->basic.apply_cfdata = _basic_apply;
v->basic.create_widgets = _basic_create; v->basic.create_widgets = _basic_create;
@ -100,3 +100,4 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
e_widget_list_object_append(o, ob, 1, 0, 0.0); e_widget_list_object_append(o, ob, 1, 0, 0.0);
return o; return o;
} }

View File

@ -9,7 +9,7 @@ static E_Module *conf_module = NULL;
EAPI E_Module_Api e_modapi = EAPI E_Module_Api e_modapi =
{ {
E_MODULE_API_VERSION, E_MODULE_API_VERSION,
"Settings - Applications" "Settings - Applications"
}; };
EAPI void * EAPI void *
@ -87,3 +87,4 @@ e_modapi_save(E_Module *m __UNUSED__)
{ {
return 1; return 1;
} }