Enlightenment CVS committal Author : onefang Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_config_apps.c Log Message: Fix the FIXMEs. This is probably finished for now, the TODO requires more support elsewhere to be written first. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_apps.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- e_int_config_apps.c 12 Sep 2006 10:02:49 -0000 1.23 +++ e_int_config_apps.c 12 Sep 2006 12:47:18 -0000 1.24 @@ -7,7 +7,7 @@ #define MOD_ENABLED 1 /* TODO: - * Filtering/sorting of left side to make managing thousands of apps easy. + * More filtering/sorting of left side to make managing thousands of apps easy. * * These things require support from e_fm - * DND from left side to righ side, and to ibar etc. @@ -27,8 +27,8 @@ { E_Config_Dialog *cfd; E_Fm2_Icon_Info *info; + char *selected; char path_all[4096], path_everything[4096], path[4096], *homedir; - int state; int sorted; struct { Evas_Object *o_fm_all; @@ -70,7 +70,6 @@ if (func) { - /* FIXME: figure out some way of freeing this once we have finished with it. */ once = E_NEW(struct _E_Config_Once, 1); if (once) { @@ -119,10 +118,11 @@ static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { + if (cfdata->selected) free(cfdata->selected); + if (cfdata->cfd->data) free(cfdata->cfd->data); free(cfdata); } - static void _cb_button_up(void *data1, void *data2) { @@ -170,6 +170,8 @@ e_widget_disabled_set(cfdata->gui.o_move_down_button, 1); if (cfdata->gui.o_frame) e_widget_scrollframe_child_pos_set(cfdata->gui.o_frame, 0, 0); + if (cfdata->selected) free(cfdata->selected); + cfdata->selected = NULL; } static void @@ -194,22 +196,30 @@ } static void -_cb_files_sel_changed(void *data, Evas_Object *obj, void *event_info) +_cb_files_selection_change(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; + Evas_List *selected; + E_Fm2_Icon_Info *ici = NULL; const char *realpath; char buf[4096]; cfdata = data; if (!cfdata->gui.o_fm) return; + selected = e_fm2_selected_list_get(cfdata->gui.o_fm); + if (selected) ici = selected->data; realpath = e_fm2_real_path_get(cfdata->gui.o_fm); snprintf(buf, sizeof(buf), "%s/.order", realpath); + if (cfdata->selected) free(cfdata->selected); + cfdata->selected = NULL; if (ecore_file_exists(buf)) { if (cfdata->gui.o_move_up_button) - e_widget_disabled_set(cfdata->gui.o_move_up_button, 0); + e_widget_disabled_set(cfdata->gui.o_move_up_button, 0); if (cfdata->gui.o_move_down_button) - e_widget_disabled_set(cfdata->gui.o_move_down_button, 0); + e_widget_disabled_set(cfdata->gui.o_move_down_button, 0); + if ((ici) && (ici->file)) + cfdata->selected = strdup(ici->file); } else { @@ -227,10 +237,21 @@ cfdata = data; if (!cfdata->gui.o_fm) return; - if (cfdata->gui.o_move_up_button) - e_widget_disabled_set(cfdata->gui.o_move_up_button, 1); - if (cfdata->gui.o_move_down_button) - e_widget_disabled_set(cfdata->gui.o_move_down_button, 1); + if (cfdata->selected) + { + if (cfdata->gui.o_move_up_button) + e_widget_disabled_set(cfdata->gui.o_move_up_button, 0); + if (cfdata->gui.o_move_down_button) + e_widget_disabled_set(cfdata->gui.o_move_down_button, 0); + e_fm2_select_set(cfdata->gui.o_fm, cfdata->selected, 1); + } + else + { + if (cfdata->gui.o_move_up_button) + e_widget_disabled_set(cfdata->gui.o_move_up_button, 1); + if (cfdata->gui.o_move_down_button) + e_widget_disabled_set(cfdata->gui.o_move_down_button, 1); + } } static void @@ -261,7 +282,7 @@ } static void -_cb_files_selected(void *data, Evas_Object *obj, void *event_info) +_cb_files_selected_all(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; Evas_List *selected; @@ -293,7 +314,7 @@ } static void -_cb_files_selection_change(void *data, Evas_Object *obj, void *event_info) +_cb_files_selection_change_all(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; @@ -302,7 +323,7 @@ } static void -_cb_files_files_changed(void *data, Evas_Object *obj, void *event_info) +_cb_files_changed_all(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; @@ -432,8 +453,6 @@ evas_list_free(selected); _move_file_up_in_order(realpath, ici->file); e_fm2_refresh(cfdata->gui.o_fm); - /* FIXME: This doesn't seem to work, maybe I need to call it in a callback after the refresh is done? */ - e_fm2_select_set(cfdata->gui.o_fm, ici->file, 1); } static void @@ -454,8 +473,6 @@ evas_list_free(selected); _move_file_down_in_order(realpath, ici->file); e_fm2_refresh(cfdata->gui.o_fm); - /* FIXME: This doesn't seem to work, maybe I need to call it in a callback after the refresh is done? */ - e_fm2_select_set(cfdata->gui.o_fm, ici->file, 1); } static void @@ -516,11 +533,11 @@ evas_object_smart_callback_add(mt, "dir_changed", _cb_files_dir_changed_all, cfdata); evas_object_smart_callback_add(mt, "selected", - _cb_files_selected, cfdata); + _cb_files_selected_all, cfdata); evas_object_smart_callback_add(mt, "selection_change", - _cb_files_selection_change, cfdata); + _cb_files_selection_change_all, cfdata); evas_object_smart_callback_add(mt, "changed", - _cb_files_files_changed, cfdata); + _cb_files_changed_all, cfdata); e_fm2_icon_menu_start_extend_callback_set(mt, _cb_files_add_edited, cfdata); e_fm2_path_set(cfdata->gui.o_fm_all, cfdata->path_all, "/"); @@ -603,7 +620,7 @@ evas_object_smart_callback_add(mt, "dir_changed", _cb_files_dir_changed, cfdata); evas_object_smart_callback_add(mt, "selection_change", - _cb_files_sel_changed, cfdata); + _cb_files_selection_change, cfdata); evas_object_smart_callback_add(mt, "changed", _cb_files_changed, cfdata); e_fm2_path_set(cfdata->gui.o_fm, cfdata->path, "/"); ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs