deleting multiple gadgets in advanced gadget config will now actually delete multiple gadgets

SVN revision: 76525
This commit is contained in:
Mike Blumenkrantz 2012-09-12 13:12:43 +00:00
parent 0a66fa4671
commit 2747cba221
1 changed files with 44 additions and 36 deletions

View File

@ -159,7 +159,7 @@ _cb_list_selected(void *data)
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
const E_Ilist_Item *it; const E_Ilist_Item *it;
Eina_List *l; const Eina_List *l;
unsigned int loaded = 0; unsigned int loaded = 0;
if (!(cfdata = data)) return; if (!(cfdata = data)) return;
@ -179,7 +179,7 @@ static void
_list_item_del_advanced(E_Config_Dialog_Data *cfdata, E_Gadcon_Client *gcc) _list_item_del_advanced(E_Config_Dialog_Data *cfdata, E_Gadcon_Client *gcc)
{ {
E_Ilist_Item *ili; E_Ilist_Item *ili;
Eina_List *l; const Eina_List *l;
int x = 0; int x = 0;
if (!gcc->cf) if (!gcc->cf)
@ -206,7 +206,7 @@ static void
_list_item_del(E_Config_Dialog_Data *cfdata __UNUSED__, Evas_Object *list, const E_Gadcon_Client_Class *cc) _list_item_del(E_Config_Dialog_Data *cfdata __UNUSED__, Evas_Object *list, const E_Gadcon_Client_Class *cc)
{ {
E_Ilist_Item *ili; E_Ilist_Item *ili;
Eina_List *l; const Eina_List *l;
int x = 0; int x = 0;
EINA_LIST_FOREACH(e_widget_ilist_items_get(list), l, ili) EINA_LIST_FOREACH(e_widget_ilist_items_get(list), l, ili)
@ -239,7 +239,7 @@ _list_item_add_advanced(E_Config_Dialog_Data *cfdata, E_Gadcon_Client *gcc, E_Co
} }
else else
{ {
Eina_List *l; const Eina_List *l;
E_Ilist_Item *ili; E_Ilist_Item *ili;
EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->advanced.o_list), l, ili) EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->advanced.o_list), l, ili)
@ -441,7 +441,7 @@ _cb_add(void *data, void *data2 __UNUSED__)
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
const E_Ilist_Item *it; const E_Ilist_Item *it;
Eina_List *l; const Eina_List *l;
int update = 0; int update = 0;
if (!(cfdata = data)) return; if (!(cfdata = data)) return;
@ -486,12 +486,19 @@ _cb_del_advanced(void *data, void *data2 __UNUSED__)
{ {
E_Config_Dialog_Data *cfdata = data; E_Config_Dialog_Data *cfdata = data;
E_Config_Gadcon_Client *cf_gcc; E_Config_Gadcon_Client *cf_gcc;
Eina_List *l; const Eina_List *l, *sel, *ll, *lll, *llll;
E_Ilist_Item *ili;
int x = 0; int x = 0;
EINA_LIST_FOREACH(cfdata->gc->cf->clients, l, cf_gcc) sel = e_widget_ilist_items_get(cfdata->advanced.o_list);
EINA_LIST_FOREACH_SAFE(sel, ll, lll, ili)
{ {
if (cf_gcc->id == cfdata->sel) if (!ili) continue;
if (!ili->selected) continue;
x = 0;
EINA_LIST_FOREACH_SAFE(cfdata->gc->cf->clients, l, llll, cf_gcc)
{
if (cf_gcc->id == e_widget_ilist_item_value_get(ili))
{ {
CFGadget *gad; CFGadget *gad;
E_Gadcon_Client *gcc; E_Gadcon_Client *gcc;
@ -518,19 +525,20 @@ _cb_del_advanced(void *data, void *data2 __UNUSED__)
} }
e_config_save_queue(); e_config_save_queue();
e_widget_ilist_remove_num(cfdata->advanced.o_list, x); e_widget_ilist_remove_num(cfdata->advanced.o_list, x);
e_widget_ilist_selected_set(cfdata->advanced.o_list, 0); x++;
break; break;
} }
x++;
} }
} }
e_widget_ilist_selected_set(cfdata->advanced.o_list, 0);
}
static void static void
_cb_del(void *data, void *data2 __UNUSED__) _cb_del(void *data, void *data2 __UNUSED__)
{ {
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
const E_Ilist_Item *it; const E_Ilist_Item *it;
Eina_List *l; const Eina_List *l;
int update = 0; int update = 0;
if (!(cfdata = data)) return; if (!(cfdata = data)) return;