* e_widget_ilist_add now expect a stringshare.

SVN revision: 39447
This commit is contained in:
Cedric BAIL 2009-03-11 15:13:42 +00:00
parent 3c9f7d712c
commit c979b3f9d5
27 changed files with 578 additions and 656 deletions

View File

@ -28,7 +28,7 @@ struct _E_Config_Dialog_Data
int basic_size;
/* ADVANCED */
char *style;
const char *style;
int orient;
int fit_along;
int fit_size;
@ -116,9 +116,9 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->mode = MODE_TOP_DESKTOP;
if (cfdata->escfg->style)
cfdata->style = strdup(cfdata->escfg->style);
cfdata->style = eina_stringshare_ref(cfdata->escfg->style);
else
cfdata->style = strdup("");
cfdata->style = eina_stringshare_add("");
cfdata->orient = cfdata->escfg->orient;
cfdata->fit_along = cfdata->escfg->fit_along;
cfdata->fit_size = cfdata->escfg->fit_size;
@ -215,7 +215,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
/* Free the cfdata */
cfdata->es->config_dialog = NULL;
if (cfdata->style) free(cfdata->style);
eina_stringshare_del(cfdata->style);
free(cfdata);
}
@ -305,14 +305,14 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
/* Only change style is we need to */
if (!cfdata->escfg->style)
{
cfdata->escfg->style = eina_stringshare_add(cfdata->style);
cfdata->escfg->style = eina_stringshare_ref(cfdata->style);
e_shelf_style_set(cfdata->es, cfdata->style);
}
else if ((cfdata->escfg->style) &&
(strcmp(cfdata->escfg->style, cfdata->style)))
{
if (cfdata->escfg->style) eina_stringshare_del(cfdata->escfg->style);
cfdata->escfg->style = eina_stringshare_add(cfdata->style);
cfdata->escfg->style = eina_stringshare_ref(cfdata->style);
e_shelf_style_set(cfdata->es, cfdata->style);
}

View File

@ -152,7 +152,7 @@ _queue_timer(void *data)
{
if ((wd->value) && *(wd->value))
{
free(*(wd->value));
eina_stringshare_del(*(wd->value));
*(wd->value) = NULL;
}
e_ilist_unselect(wd->o_ilist);
@ -160,13 +160,16 @@ _queue_timer(void *data)
else if (qi->command == 6)
{
E_Widget_Callback *wcb;
Eina_List *item;
e_ilist_remove_num(wd->o_ilist, qi->item);
if ((wcb = eina_list_nth(wd->callbacks, qi->item)))
{
if (wcb->value) free(wcb->value);
item = eina_list_nth_list(wd->callbacks, qi->item);
if (item)
{
wcb = eina_list_data_get(item);
if (wcb && wcb->value) free(wcb->value);
free(wcb);
wd->callbacks = eina_list_remove(wd->callbacks, wcb);
wd->callbacks = eina_list_remove_list(wd->callbacks, item);
}
}
else if (qi->command == 7)
@ -260,7 +263,7 @@ _queue_clear(Evas_Object *obj)
/* externally accessible functions */
EAPI Evas_Object *
e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, char **value)
e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, const char **value)
{
Evas_Object *obj, *o;
E_Widget_Data *wd;
@ -808,9 +811,9 @@ _e_wid_cb_item_sel(void *data, void *data2)
{
if (wd->value)
{
if (*(wd->value)) free(*(wd->value));
if (*(wd->value)) eina_stringshare_del(*(wd->value));
if (wcb->value)
*(wd->value) = strdup(wcb->value);
*(wd->value) = (char*) eina_stringshare_add(wcb->value);
else
*(wd->value) = NULL;
}

View File

@ -6,7 +6,7 @@
#ifndef E_WIDGET_ILIST_H
#define E_WIDGET_ILIST_H
EAPI Evas_Object *e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, char **value);
EAPI Evas_Object *e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, const char **value);
EAPI void e_widget_ilist_freeze(Evas_Object *obj);
EAPI void e_widget_ilist_thaw(Evas_Object *obj);
EAPI void e_widget_ilist_append(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data), void *data, const char *val);

View File

@ -14,7 +14,7 @@ struct _E_Config_Dialog_Data
{
E_Border *border;
E_Container *container;
char *bordername;
const char *bordername;
int remember_border;
};
@ -97,10 +97,10 @@ _fill_data(E_Config_Dialog_Data *cfdata)
{
cfdata->remember_border = 1;
}
cfdata->bordername = strdup(cfdata->border->client.border.name);
cfdata->bordername = eina_stringshare_add(cfdata->border->client.border.name);
}
else
cfdata->bordername = strdup(e_config->theme_default_border_style);
cfdata->bordername = eina_stringshare_add(e_config->theme_default_border_style);
}
static void
@ -109,7 +109,7 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
if (cfdata->border)
cfdata->border->border_border_dialog = NULL;
E_FREE(cfdata->bordername);
eina_stringshare_del(cfdata->bordername);
E_FREE(cfdata);
}
@ -131,9 +131,8 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__,
_basic_apply_border(cfdata);
else if (cfdata->container)
{
if (e_config->theme_default_border_style)
eina_stringshare_del(e_config->theme_default_border_style);
e_config->theme_default_border_style = eina_stringshare_add(cfdata->bordername);
eina_stringshare_del(e_config->theme_default_border_style);
e_config->theme_default_border_style = eina_stringshare_ref(cfdata->bordername);
/* FIXME: Should this trigger an E Restart to reset all borders ? */
}
e_config_save_queue();
@ -145,8 +144,8 @@ _basic_apply_border(E_Config_Dialog_Data *cfdata)
{
if ((!cfdata->border->lock_border) && (!cfdata->border->shaded))
{
if (cfdata->border->bordername) eina_stringshare_del(cfdata->border->bordername);
cfdata->border->bordername = eina_stringshare_add(cfdata->bordername);
eina_stringshare_del(cfdata->border->bordername);
cfdata->border->bordername = eina_stringshare_ref(cfdata->bordername);
cfdata->border->client.border.changed = 1;
cfdata->border->changed = 1;
}

View File

@ -60,7 +60,8 @@ struct _E_Config_Dialog_Data
} binding;
struct
{
char *binding, *action, *params;
const char *binding, *action;
char *params;
const char *cur;
double delay;
int cur_act, add;
@ -113,20 +114,19 @@ e_int_config_edgebindings(E_Container *con, const char *params)
static void
_fill_data(E_Config_Dialog_Data *cfdata)
{
Eina_List *l = NULL;
E_Config_Binding_Edge *bi, *bi2;
Eina_List *l;
cfdata->locals.action = strdup("");
cfdata->locals.params = strdup("");
cfdata->locals.binding = strdup("");
cfdata->locals.action = eina_stringshare_add("");
cfdata->locals.binding = eina_stringshare_add("");
cfdata->locals.cur = NULL;
cfdata->locals.dia = NULL;
cfdata->locals.delay = 0.3;
cfdata->binding.edge = NULL;
for (l = e_config->edge_bindings; l; l = l->next)
EINA_LIST_FOREACH(e_config->edge_bindings, l, bi)
{
bi = l->data;
if (!bi) continue;
bi2 = E_NEW(E_Config_Binding_Edge, 1);
@ -135,8 +135,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
bi2->modifiers = bi->modifiers;
bi2->any_mod = bi->any_mod;
bi2->delay = bi->delay;
bi2->action = bi->action == NULL ? NULL : eina_stringshare_add(bi->action);
bi2->params = bi->params == NULL ? NULL : eina_stringshare_add(bi->params);
bi2->action = eina_stringshare_ref(bi->action);
bi2->params = eina_stringshare_ref(bi->params);
cfdata->binding.edge = eina_list_append(cfdata->binding.edge, bi2);
}
@ -161,20 +161,19 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Config_Binding_Edge *bi;
while (cfdata->binding.edge)
EINA_LIST_FREE(cfdata->binding.edge, bi)
{
bi = cfdata->binding.edge->data;
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.edge = eina_list_remove_list(cfdata->binding.edge, cfdata->binding.edge);
}
if (cfdata->locals.cur) eina_stringshare_del(cfdata->locals.cur);
if (cfdata->locals.binding) free(cfdata->locals.binding);
if (cfdata->locals.action) free(cfdata->locals.action);
eina_stringshare_del(cfdata->locals.cur);
eina_stringshare_del(cfdata->params);
eina_stringshare_del(cfdata->locals.binding);
eina_stringshare_del(cfdata->locals.action);
if (cfdata->locals.params) free(cfdata->locals.params);
if (cfdata->params) eina_stringshare_del(cfdata->params);
E_FREE(cfdata);
}
@ -186,23 +185,17 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
_auto_apply_changes(cfdata);
while (e_config->edge_bindings)
EINA_LIST_FREE(e_config->edge_bindings, bi)
{
bi = e_config->edge_bindings->data;
e_bindings_edge_del(bi->context, bi->edge, bi->modifiers, bi->any_mod,
bi->action, bi->params, bi->delay);
e_config->edge_bindings =
eina_list_remove_list(e_config->edge_bindings, e_config->edge_bindings);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
}
for (l = cfdata->binding.edge; l; l = l->next)
EINA_LIST_FOREACH(cfdata->binding.edge, l, bi2)
{
bi2 = l->data;
if (bi2->edge < 0) continue;
bi = E_NEW(E_Config_Binding_Edge, 1);
@ -382,7 +375,7 @@ _binding_change_cb(void *data)
if ((!cfdata->locals.binding) || (!cfdata->locals.binding[0])) return;
cfdata->locals.cur = eina_stringshare_add(cfdata->locals.binding);
cfdata->locals.cur = eina_stringshare_ref(cfdata->locals.binding);
_update_buttons(cfdata);
_update_action_list(cfdata);
@ -405,17 +398,14 @@ _delete_all_edge_binding_cb(void *data, void *data2)
cfdata = data;
while (cfdata->binding.edge)
EINA_LIST_FREE(cfdata->binding.edge, bi)
{
bi = cfdata->binding.edge->data;
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.edge = eina_list_remove_list(cfdata->binding.edge, cfdata->binding.edge);
}
if (cfdata->locals.cur) eina_stringshare_del(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_clear(cfdata->gui.o_binding_list);
@ -447,10 +437,11 @@ _delete_edge_binding_cb(void *data, void *data2)
if (l)
{
bi = l->data;
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
bi = eina_list_data_get(l);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.edge = eina_list_remove_list(cfdata->binding.edge, l);
}
}
@ -460,12 +451,12 @@ _delete_edge_binding_cb(void *data, void *data2)
if (sel >= e_widget_ilist_count(cfdata->gui.o_binding_list))
sel = e_widget_ilist_count(cfdata->gui.o_binding_list) - 1;
if (cfdata->locals.cur) eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, sel);
if (sel < 0)
{
{
e_widget_ilist_unselect(cfdata->gui.o_action_list);
e_widget_entry_clear(cfdata->gui.o_params);
e_widget_disabled_set(cfdata->gui.o_params, 1);
@ -480,13 +471,11 @@ _restore_edge_binding_defaults_cb(void *data, void *data2)
cfdata = data;
while (cfdata->binding.edge)
EINA_LIST_FREE(cfdata->binding.edge, bi)
{
bi = cfdata->binding.edge->data;
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.edge = eina_list_remove_list(cfdata->binding.edge, cfdata->binding.edge);
}
#define CFG_EDGEBIND_DFLT(_context, _edge, _modifiers, _anymod, _action, _params, _delay) \
@ -496,8 +485,8 @@ _restore_edge_binding_defaults_cb(void *data, void *data2)
bi->modifiers = _modifiers; \
bi->any_mod = _anymod; \
bi->delay = _delay; \
bi->action = _action == NULL ? NULL : eina_stringshare_add(_action); \
bi->params = _params == NULL ? NULL : eina_stringshare_add(_params); \
bi->action = eina_stringshare_add(_action); \
bi->params = eina_stringshare_add(_params); \
cfdata->binding.edge = eina_list_append(cfdata->binding.edge, bi)
CFG_EDGEBIND_DFLT(E_BINDING_CONTEXT_ZONE, E_ZONE_EDGE_LEFT,
@ -508,8 +497,8 @@ _restore_edge_binding_defaults_cb(void *data, void *data2)
0, 0, "desk_flip_in_direction", NULL, 0.3);
CFG_EDGEBIND_DFLT(E_BINDING_CONTEXT_ZONE, E_ZONE_EDGE_BOTTOM,
0, 0, "desk_flip_in_direction", NULL, 0.3);
if (cfdata->locals.cur) eina_stringshare_del(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
_update_edge_binding_list(cfdata);
@ -570,8 +559,8 @@ _update_action_list(E_Config_Dialog_Data *cfdata)
else
{
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
e_widget_entry_clear(cfdata->gui.o_params);
}
@ -994,35 +983,34 @@ _edge_grab_wnd_selection_apply(E_Config_Dialog_Data *cfdata)
Eina_List *l;
char *label;
int found = 0, n = -1;
if (cfdata->locals.add)
{
found = 0;
for (l = cfdata->binding.edge; l && !found; l = l->next)
{
bi = l->data;
if ((bi->modifiers == cfdata->locals.modifiers) &&
(bi->edge == cfdata->locals.edge) &&
((bi->delay * 1000) == (cfdata->locals.delay * 1000)))
EINA_LIST_FOREACH(cfdata->binding.edge, l, bi)
if ((bi->modifiers == cfdata->locals.modifiers) &&
(bi->edge == cfdata->locals.edge) &&
((bi->delay * 1000) == (cfdata->locals.delay * 1000)))
{
found = 1;
}
break;
}
}
else
{
if (cfdata->locals.cur && cfdata->locals.cur[0] &&
(sscanf(cfdata->locals.cur, "e%d", &n) == 1))
{
found = 0;
{
bi = eina_list_nth(cfdata->binding.edge, n);
for (l = cfdata->binding.edge; l && !found; l = l->next)
EINA_LIST_FOREACH(cfdata->binding.edge, l, bi2)
{
bi2 = l->data;
if (bi == bi2) continue;
if ((bi->modifiers == cfdata->locals.modifiers) &&
(bi->edge == cfdata->locals.edge) &&
((bi->delay * 1000) == (cfdata->locals.delay * 1000)))
found = 1;
{
found = 1;
break;
}
}
}
}
@ -1054,18 +1042,21 @@ _edge_grab_wnd_selection_apply(E_Config_Dialog_Data *cfdata)
}
}
if (cfdata->locals.add)
if (cfdata->locals.add)
{
_update_edge_binding_list(cfdata);
E_Config_Binding_Edge *tmp;
for (l = cfdata->binding.edge, n = 0; l; l = l->next, n++)
n = 0;
_update_edge_binding_list(cfdata);
EINA_LIST_FOREACH(cfdata->binding.edge, l, tmp)
{
if (l->data == bi) break;
if (tmp == bi) break;
n++;
}
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, n);
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
if ((cfdata->params) && (cfdata->params[0]))
{
int j, g = -1;
@ -1143,12 +1134,12 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
actd = eina_list_nth(actg->acts, a);
if (!actd) return;
if (bi->action) eina_stringshare_del(bi->action);
eina_stringshare_del(bi->action);
bi->action = NULL;
if (actd->act_cmd) bi->action = eina_stringshare_add(actd->act_cmd);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->params);
bi->params = NULL;
if (actd->act_params)
@ -1160,7 +1151,7 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
{
if (!strcmp(cfdata->locals.params, TEXT_NO_PARAMS))
ok = 0;
if ((actd->param_example) && (!strcmp(cfdata->locals.params, actd->param_example)))
ok = 0;
}
@ -1265,31 +1256,38 @@ _edge_binding_text_get(E_Zone_Edge edge, float delay, int mod)
if (b[0]) strcat(b, " + ");
strcat(b, _("WIN"));
}
if (edge)
{
char *l;
if (b[0]) strcat(b, " + ");
if (edge == E_ZONE_EDGE_LEFT)
l = strdup("Left Edge");
else if (edge == E_ZONE_EDGE_TOP)
l = strdup("Top Edge");
else if (edge == E_ZONE_EDGE_RIGHT)
l = strdup("Right Edge");
else if (edge == E_ZONE_EDGE_BOTTOM)
l = strdup("Bottom Edge");
else if (edge == E_ZONE_EDGE_TOP_LEFT)
l = strdup("Top Left Edge");
else if (edge == E_ZONE_EDGE_TOP_RIGHT)
l = strdup("Top Right Edge");
else if (edge == E_ZONE_EDGE_BOTTOM_RIGHT)
l = strdup("Bottom Right Edge");
else if (edge == E_ZONE_EDGE_BOTTOM_LEFT)
l = strdup("Bottom Left Edge");
strcat(b, l);
free(l);
switch (edge)
{
case E_ZONE_EDGE_LEFT:
strcat(b, "Left Edge");
break;
case E_ZONE_EDGE_TOP:
strcat(b, "Top Edge");
break;
case E_ZONE_EDGE_RIGHT:
strcat(b, "Right Edge");
break;
case E_ZONE_EDGE_BOTTOM:
strcat(b, "Bottom Edge");
break;
case E_ZONE_EDGE_TOP_LEFT:
strcat(b, "Top Left Edge");
break;
case E_ZONE_EDGE_TOP_RIGHT:
strcat(b, "Top Right Edge");
break;
case E_ZONE_EDGE_BOTTOM_RIGHT:
strcat(b, "Bottom Right Edge");
break;
case E_ZONE_EDGE_BOTTOM_LEFT:
strcat(b, "Bottom Left Edge");
break;
}
}
if (delay)

View File

@ -122,8 +122,8 @@ struct _E_Config_Dialog_Data
Eina_List *font_scale_list;
/* Current data */
char *cur_font;
char *cur_style;
const char *cur_font;
const char *cur_style;
double cur_size;
int cur_enabled;
int cur_index;
@ -313,51 +313,41 @@ _create_data(E_Config_Dialog *cfd)
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Font_Size_Data *size_data;
CFText_Class *tc;
Eina_List *l;
e_font_available_hash_free(cfdata->font_hash);
while (cfdata->font_list)
cfdata->font_list = eina_list_remove_list(cfdata->font_list, cfdata->font_list);
cfdata->font_list =eina_list_free(cfdata->font_list);
while ((l = cfdata->text_classes))
EINA_LIST_FREE(cfdata->text_classes, tc)
{
CFText_Class *tc;
tc = l->data;
cfdata->text_classes = eina_list_remove_list(cfdata->text_classes, l);
if (tc->font) eina_stringshare_del(tc->font);
if (tc->style) eina_stringshare_del(tc->style);
eina_stringshare_del(tc->font);
eina_stringshare_del(tc->style);
E_FREE(tc);
}
while ((l = cfdata->font_scale_list))
EINA_LIST_FREE(cfdata->font_scale_list, size_data)
{
E_Font_Size_Data *size_data;
size_data = l->data;
cfdata->font_scale_list = eina_list_remove_list(cfdata->font_scale_list, l);
if (size_data->size_str) eina_stringshare_del(size_data->size_str);
eina_stringshare_del(size_data->size_str);
E_FREE(size_data);
}
while ((l = cfdata->font_px_list))
EINA_LIST_FREE(cfdata->font_px_list, size_data)
{
E_Font_Size_Data *size_data;
size_data = l->data;
cfdata->font_px_list = eina_list_remove_list(cfdata->font_scale_list, l);
if (size_data->size_str) eina_stringshare_del(size_data->size_str);
eina_stringshare_del(size_data->size_str);
E_FREE(size_data);
}
E_FREE(cfdata->cur_font);
E_FREE(cfdata->cur_style);
eina_stringshare_del(cfdata->cur_font);
eina_stringshare_del(cfdata->cur_style);
E_FREE(cfdata);
}
static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
CFText_Class *tc;
Eina_List *next;
int i;
@ -395,24 +385,15 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config_save_queue();
/* Apply to advanced */
for (next = cfdata->text_classes; next; next = next->next)
EINA_LIST_FOREACH(cfdata->text_classes, next, tc)
{
CFText_Class *tc;
tc = next->data;
tc->size = cfdata->cur_size;
if (tc->font) eina_stringshare_del(tc->font);
if (cfdata->cur_font)
tc->font = eina_stringshare_add(cfdata->cur_font);
else
tc->font = NULL;
eina_stringshare_del(tc->font);
tc->font = eina_stringshare_ref(cfdata->cur_font);
if (tc->style) eina_stringshare_del(tc->style);
if (cfdata->cur_style)
tc->style = eina_stringshare_add(cfdata->cur_style);
else
tc->style = NULL;
eina_stringshare_del(tc->style);
tc->style = eina_stringshare_ref(cfdata->cur_style);
tc->enabled = cfdata->cur_enabled;
}
@ -563,14 +544,13 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
tc->enabled = cfdata->cur_enabled;
tc->size = cfdata->cur_size;
if (cfdata->cur_font)
tc->font = eina_stringshare_add(cfdata->cur_font);
tc->font = eina_stringshare_ref(cfdata->cur_font);
if (cfdata->cur_style)
tc->style = eina_stringshare_add(cfdata->cur_style);
tc->style = eina_stringshare_ref(cfdata->cur_style);
}
for (next = cfdata->text_classes; next; next = next->next)
EINA_LIST_FOREACH(cfdata->text_classes, next, tc)
{
tc = next->data;
if (!tc->class_name) continue;
if (tc->enabled && tc->font)
{
@ -768,16 +748,13 @@ _adv_class_cb_change(void *data, Evas_Object *obj)
tc = eina_list_nth(cfdata->text_classes, cfdata->cur_index);
tc->enabled = cfdata->cur_enabled;
tc->size = cfdata->cur_size;
if (tc->font) eina_stringshare_del(tc->font);
if (cfdata->cur_font)
tc->font = eina_stringshare_add(cfdata->cur_font);
else
tc->font = NULL;
if (tc->style) eina_stringshare_del(tc->style);
if (cfdata->cur_style)
tc->style = eina_stringshare_add(cfdata->cur_style);
else
tc->style = NULL;
eina_stringshare_del(tc->font);
tc->font = eina_stringshare_ref(cfdata->cur_font);
eina_stringshare_del(tc->style);
tc->style = eina_stringshare_ref(cfdata->cur_style);
if (cfdata->gui.style_list)
e_widget_ilist_unselect(cfdata->gui.style_list);
if (cfdata->gui.size_list)
@ -847,10 +824,10 @@ _adv_enabled_font_cb_change(void *data, Evas_Object *obj)
tc = eina_list_nth(cfdata->text_classes, n);
tc->enabled = cfdata->cur_enabled;
tc->size = cfdata->cur_size;
if (tc->font) eina_stringshare_del(tc->font);
eina_stringshare_del(tc->font);
if (cfdata->cur_font)
tc->font = eina_stringshare_add(cfdata->cur_font);
if (cfdata->cur_enabled)
tc->font = eina_stringshare_ref(cfdata->cur_font);
if (cfdata->cur_enabled)
{
icon = edje_object_add(cfdata->evas);
e_util_edje_icon_set(icon, "enlightenment/e");
@ -911,7 +888,7 @@ _adv_font_cb_change(void *data, Evas_Object *obj)
tc = eina_list_nth(cfdata->text_classes, n);
if (tc->font) eina_stringshare_del(tc->font);
if (cfdata->cur_font)
tc->font = eina_stringshare_add(cfdata->cur_font);
tc->font = eina_stringshare_ref(cfdata->cur_font);
}
/* Load the style list */
@ -1103,11 +1080,8 @@ _adv_style_cb_change(void *data, Evas_Object *obj)
if (!i->selected) continue;
tc = eina_list_nth(cfdata->text_classes, n);
if (tc->style) eina_stringshare_del(tc->style);
if (cfdata->cur_style)
tc->style = eina_stringshare_add(cfdata->cur_style);
else
tc->style = NULL;
eina_stringshare_del(tc->style);
tc->style = eina_stringshare_ref(cfdata->cur_style);
}
_font_preview_update(cfdata);

View File

@ -15,7 +15,7 @@ struct _E_Config_Dialog_Data
{
E_Config_Dialog *cfd;
Eina_List *icon_themes;
char *themename;
const char *themename;
int overrides;
struct {
Evas_Object *list;
@ -64,10 +64,7 @@ _create_data(E_Config_Dialog *cfd)
cfdata = E_NEW(E_Config_Dialog_Data, 1);
cfdata->cfd = cfd;
if (e_config->icon_theme)
cfdata->themename = strdup(e_config->icon_theme);
else
cfdata->themename = NULL;
cfdata->themename = eina_stringshare_add(e_config->icon_theme);
cfdata->overrides = e_config->icon_theme_overrides;
@ -81,7 +78,7 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
free(ecore_idler_del(cfdata->fill_icon_themes_delayed));
eina_list_free(cfdata->icon_themes);
E_FREE(cfdata->themename);
eina_stringshare_del(cfdata->themename);
E_FREE(cfdata);
}
@ -104,14 +101,12 @@ static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Event_Config_Icon_Theme *ev;
const char *s;
if (!_basic_check_changed(cfd, cfdata))
return 1;
s = eina_stringshare_add(cfdata->themename);
eina_stringshare_del(e_config->icon_theme);
e_config->icon_theme = s;
e_config->icon_theme = eina_stringshare_ref(cfdata->themename);
e_config->icon_theme_overrides = !!cfdata->overrides;

View File

@ -50,7 +50,7 @@ struct _E_Config_Dialog_Data
Evas_Object *o_fm; /* File manager */
Evas_Object *o_frame; /* scrollpane for file manager*/
char *imc_current;
const char *imc_current;
Eina_Hash *imc_basic_map;
int imc_disable; /* 0=enable, 1=disable */
@ -116,7 +116,7 @@ static void
_fill_data(E_Config_Dialog_Data *cfdata)
{
if (e_config->input_method)
cfdata->imc_current = strdup(e_config->input_method);
cfdata->imc_current = eina_stringshare_add(e_config->input_method);
if (cfdata->imc_current)
{
@ -157,7 +157,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
if (cfdata->win_import)
e_int_config_imc_import_del(cfdata->win_import);
E_FREE(cfdata->imc_current);
eina_stringshare_del(cfdata->imc_current);
if (cfdata->imc_basic_map)
{
@ -194,7 +194,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
}
if (!cfdata->imc_disable)
e_config->input_method = eina_stringshare_add(cfdata->imc_current);
e_config->input_method = eina_stringshare_ref(cfdata->imc_current);
e_intl_input_method_set(e_config->input_method);
}
@ -357,7 +357,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
}
e_widget_ilist_append(cfdata->gui.imc_basic_list, icon, imc->e_im_name, NULL, NULL, imc_path);
if (cfdata->imc_current && !strncmp(imc_path, cfdata->imc_current, strlen(cfdata->imc_current)))
if (cfdata->imc_current && !strncmp(imc_path, cfdata->imc_current, eina_stringshare_strlen(cfdata->imc_current)))
e_widget_ilist_selected_set(cfdata->gui.imc_basic_list, i);
i++;
@ -565,7 +565,7 @@ _cb_files_selection_change(void *data, Evas_Object *obj, void *event_info)
if (cfdata->imc_current)
{
_e_imc_change_enqueue(cfdata);
free(cfdata->imc_current);
eina_stringshare_del(cfdata->imc_current);
cfdata->imc_current = NULL;
}
@ -577,7 +577,7 @@ _cb_files_selection_change(void *data, Evas_Object *obj, void *event_info)
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file);
eina_list_free(selected);
if (ecore_file_is_dir(buf)) return;
cfdata->imc_current = strdup(buf);
cfdata->imc_current = eina_stringshare_add(buf);
_e_imc_form_fill(cfdata);
if (cfdata->o_frame)
e_widget_change(cfdata->o_frame);
@ -794,8 +794,8 @@ e_int_config_imc_update(E_Config_Dialog *dia, const char *file)
cfdata = dia->cfdata;
cfdata->fmdir = 1;
E_FREE(cfdata->imc_current);
cfdata->imc_current = strdup(file);
eina_stringshare_del(cfdata->imc_current);
cfdata->imc_current = eina_stringshare_add(file);
e_widget_radio_toggle_set(cfdata->o_personal, 1);
if (cfdata->o_fm)

View File

@ -72,12 +72,12 @@ struct _E_Config_Dialog_Data
/* Current data */
char *cur_language;
char *cur_blang;
const char *cur_blang;
char *cur_lang;
char *cur_reg;
char *cur_cs;
char *cur_mod;
const char *cur_lang;
const char *cur_reg;
const char *cur_cs;
const char *cur_mod;
int lang_dirty;
@ -797,11 +797,12 @@ static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_FREE(cfdata->cur_language);
E_FREE(cfdata->cur_blang);
E_FREE(cfdata->cur_lang);
E_FREE(cfdata->cur_reg);
E_FREE(cfdata->cur_cs);
E_FREE(cfdata->cur_mod);
eina_stringshare_del(cfdata->cur_blang);
eina_stringshare_del(cfdata->cur_lang);
eina_stringshare_del(cfdata->cur_reg);
eina_stringshare_del(cfdata->cur_cs);
eina_stringshare_del(cfdata->cur_mod);
eina_hash_foreach(cfdata->locale_hash, _language_hash_free_cb, NULL);
eina_hash_free(cfdata->locale_hash);
@ -1038,22 +1039,17 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
/* all these cur_* values are not guaranteed to be const so we need to
* copy them.
*/
lang = NULL;
reg = NULL;
cs = NULL;
mod = NULL;
if (cfdata->cur_lang) lang = eina_stringshare_add(cfdata->cur_lang);
if (cfdata->cur_reg) reg = eina_stringshare_add(cfdata->cur_reg);
if (cfdata->cur_cs) cs = eina_stringshare_add(cfdata->cur_cs);
if (cfdata->cur_mod) mod = eina_stringshare_add(cfdata->cur_mod);
lang = eina_stringshare_ref(cfdata->cur_lang);
reg = eina_stringshare_ref(cfdata->cur_reg);
cs = eina_stringshare_ref(cfdata->cur_cs);
mod = eina_stringshare_ref(cfdata->cur_mod);
_cfdata_language_go(lang, reg, cs, mod, cfdata);
if (lang) eina_stringshare_del(lang);
if (reg) eina_stringshare_del(reg);
if (cs) eina_stringshare_del(cs);
if (mod) eina_stringshare_del(mod);
eina_stringshare_del(lang);
eina_stringshare_del(reg);
eina_stringshare_del(cs);
eina_stringshare_del(mod);
e_widget_on_change_hook_set(cfdata->gui.lang_list, _ilist_language_cb_change, cfdata);
e_widget_on_change_hook_set(cfdata->gui.reg_list, _ilist_region_cb_change, cfdata);
@ -1084,8 +1080,8 @@ _ilist_language_cb_change(void *data, Evas_Object *obj)
_cfdata_language_go(cfdata->cur_lang, NULL, NULL, NULL, cfdata);
e_widget_entry_text_set(cfdata->gui.locale_entry, cfdata->cur_lang);
E_FREE(cfdata->cur_cs);
E_FREE(cfdata->cur_mod);
eina_stringshare_del(cfdata->cur_cs);
eina_stringshare_del(cfdata->cur_mod);
}
static void
@ -1100,8 +1096,8 @@ _ilist_region_cb_change(void *data, Evas_Object *obj)
sprintf(locale, "%s_%s", cfdata->cur_lang, cfdata->cur_reg);
e_widget_entry_text_set(cfdata->gui.locale_entry, locale);
E_FREE(cfdata->cur_cs);
E_FREE(cfdata->cur_mod);
eina_stringshare_del(cfdata->cur_cs);
eina_stringshare_del(cfdata->cur_mod);
}
static void
@ -1270,10 +1266,10 @@ _region_hash_cb(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, vo
void
_intl_current_locale_setup(E_Config_Dialog_Data *cfdata)
{
E_FREE(cfdata->cur_lang);
E_FREE(cfdata->cur_reg);
E_FREE(cfdata->cur_cs);
E_FREE(cfdata->cur_mod);
eina_stringshare_del(cfdata->cur_lang);
eina_stringshare_del(cfdata->cur_reg);
eina_stringshare_del(cfdata->cur_cs);
eina_stringshare_del(cfdata->cur_mod);
cfdata->cur_lang = NULL;
cfdata->cur_reg = NULL;
@ -1286,23 +1282,20 @@ _intl_current_locale_setup(E_Config_Dialog_Data *cfdata)
locale_parts = e_intl_locale_parts_get(cfdata->cur_language);
if (locale_parts)
{
if (locale_parts->lang)
cfdata->cur_lang = strdup(locale_parts->lang);
if (locale_parts->region)
cfdata->cur_reg = strdup(locale_parts->region);
{
cfdata->cur_lang = eina_stringshare_add(locale_parts->lang);
cfdata->cur_reg = eina_stringshare_add(locale_parts->region);
if (locale_parts->codeset)
{
const char *cs_trans;
cs_trans = _intl_charset_upper_get(locale_parts->codeset);
if (cs_trans == NULL)
cfdata->cur_cs = strdup(locale_parts->codeset);
else
cfdata->cur_cs = strdup(cs_trans);
cfdata->cur_cs = eina_stringshare_add(locale_parts->codeset);
else
cfdata->cur_cs = eina_stringshare_add(cs_trans);
}
if (locale_parts->modifier)
cfdata->cur_mod = strdup(locale_parts->modifier);
cfdata->cur_mod = eina_stringshare_add(locale_parts->modifier);
}
e_intl_locale_parts_free(locale_parts);
}

View File

@ -55,7 +55,8 @@ struct _E_Config_Dialog_Data
} binding;
struct
{
char *binding, *action, *params, *cur;
const char *binding, *action, *cur;
char *params;
int cur_act, add;
E_Dialog *dia;
@ -106,8 +107,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
Eina_List *l = NULL;
E_Config_Binding_Key *bi, *bi2;
cfdata->locals.binding = strdup("");
cfdata->locals.action = strdup("");
cfdata->locals.binding = eina_stringshare_add("");
cfdata->locals.action = eina_stringshare_add("");
cfdata->locals.params = strdup("");
cfdata->locals.cur = NULL;
cfdata->binding.key = NULL;
@ -115,18 +116,17 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->locals.handlers = NULL;
cfdata->locals.dia = NULL;
for (l = e_config->key_bindings; l; l = l->next)
EINA_LIST_FOREACH(e_config->key_bindings, l, bi)
{
bi = l->data;
if (!bi) continue;
bi2 = E_NEW(E_Config_Binding_Key, 1);
bi2->context = bi->context;
bi2->key = bi->key == NULL ? NULL : eina_stringshare_add(bi->key);
bi2->key = eina_stringshare_add(bi->key);
bi2->modifiers = bi->modifiers;
bi2->any_mod = bi->any_mod;
bi2->action = bi->action == NULL ? NULL : eina_stringshare_add(bi->action);
bi2->params = bi->params == NULL ? NULL : eina_stringshare_add(bi->params);
bi2->action = eina_stringshare_ref(bi->action);
bi2->params = eina_stringshare_ref(bi->params);
cfdata->binding.key = eina_list_append(cfdata->binding.key, bi2);
}
@ -149,19 +149,18 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
E_Config_Binding_Key *bi;
while (cfdata->binding.key)
EINA_LIST_FREE(cfdata->binding.key, bi)
{
bi = cfdata->binding.key->data;
if (bi->key) eina_stringshare_del(bi->key);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->key);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.key = eina_list_remove_list(cfdata->binding.key, cfdata->binding.key);
}
if (cfdata->locals.cur) free(cfdata->locals.cur);
if (cfdata->locals.binding) free(cfdata->locals.binding);
if (cfdata->locals.action) free(cfdata->locals.action);
eina_stringshare_del(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.binding);
eina_stringshare_del(cfdata->locals.action);
if (cfdata->locals.params) free(cfdata->locals.params);
if (cfdata->params) free(cfdata->params);
E_FREE(cfdata);
@ -184,13 +183,13 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->key_bindings =
eina_list_remove_list(e_config->key_bindings, e_config->key_bindings);
if (bi->key) eina_stringshare_del(bi->key);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->key);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
}
for (l = cfdata->binding.key; l; l = l->next)
EINA_LIST_FOREACH(cfdata->binding.key, l, bi2)
{
bi2 = l->data;
@ -202,9 +201,9 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
bi->modifiers = bi2->modifiers;
bi->any_mod = bi2->any_mod;
bi->action =
((!bi2->action) || (!bi2->action[0])) ? NULL : eina_stringshare_add(bi2->action);
((!bi2->action) || (!bi2->action[0])) ? NULL : eina_stringshare_ref(bi2->action);
bi->params =
((!bi2->params) || (!bi2->params[0])) ? NULL : eina_stringshare_add(bi2->params);
((!bi2->params) || (!bi2->params[0])) ? NULL : eina_stringshare_ref(bi2->params);
e_config->key_bindings = eina_list_append(e_config->key_bindings, bi);
e_bindings_key_add(bi->context, bi->key, bi->modifiers, bi->any_mod,
@ -344,12 +343,12 @@ _binding_change_cb(void *data)
cfdata = data;
_auto_apply_changes(cfdata);
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
if ((!cfdata->locals.binding) || (!cfdata->locals.binding[0])) return;
cfdata->locals.cur = strdup(cfdata->locals.binding);
cfdata->locals.cur = eina_stringshare_add(cfdata->locals.binding);
_update_buttons(cfdata);
_update_action_list(cfdata);
@ -373,19 +372,15 @@ _delete_all_key_binding_cb(void *data, void *data2)
cfdata = data;
/* FIXME: need confirmation dialog */
while (cfdata->binding.key)
EINA_LIST_FREE(cfdata->binding.key, bi)
{
bi = cfdata->binding.key->data;
if (bi->key) eina_stringshare_del(bi->key);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->key);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.key = eina_list_remove_list(cfdata->binding.key, cfdata->binding.key);
}
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_clear(cfdata->gui.o_binding_list);
@ -401,7 +396,7 @@ static void
_delete_key_binding_cb(void *data, void *data2)
{
Eina_List *l = NULL;
char *n;
const char *n;
int sel;
E_Config_Dialog_Data *cfdata;
E_Config_Binding_Key *bi;
@ -417,11 +412,12 @@ _delete_key_binding_cb(void *data, void *data2)
/* FIXME: need confirmation dialog */
if (l)
{
bi = l->data;
if (bi->key) eina_stringshare_del(bi->key);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
bi = eina_list_data_get(data);
eina_stringshare_del(bi->key);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.key = eina_list_remove_list(cfdata->binding.key, l);
}
}
@ -431,7 +427,7 @@ _delete_key_binding_cb(void *data, void *data2)
if (sel >= e_widget_ilist_count(cfdata->gui.o_binding_list))
sel = e_widget_ilist_count(cfdata->gui.o_binding_list) - 1;
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, sel);
@ -451,14 +447,12 @@ _restore_key_binding_defaults_cb(void *data, void *data2)
cfdata = data;
while (cfdata->binding.key)
EINA_LIST_FREE(cfdata->binding.key, bi)
{
bi = cfdata->binding.key->data;
if (bi->key) eina_stringshare_del(bi->key);
if (bi->action) eina_stringshare_del(bi->action);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->key);
eina_stringshare_del(bi->action);
eina_stringshare_del(bi->params);
E_FREE(bi);
cfdata->binding.key = eina_list_remove_list(cfdata->binding.key, cfdata->binding.key);
}
#define CFG_KEYBIND_DFLT(_context, _key, _modifiers, _anymod, _action, _params) \
@ -467,8 +461,8 @@ _restore_key_binding_defaults_cb(void *data, void *data2)
bi->key = eina_stringshare_add(_key); \
bi->modifiers = _modifiers; \
bi->any_mod = _anymod; \
bi->action = _action == NULL ? NULL : eina_stringshare_add(_action); \
bi->params = _params == NULL ? NULL : eina_stringshare_add(_params); \
bi->action = eina_stringshare_add(_action); \
bi->params = eina_stringshare_add(_params); \
cfdata->binding.key = eina_list_append(cfdata->binding.key, bi)
CFG_KEYBIND_DFLT(E_BINDING_CONTEXT_ANY, "Left",
@ -616,7 +610,7 @@ _restore_key_binding_defaults_cb(void *data, void *data2)
E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_SHIFT, 0,
"screen_send_to", "3");
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
_update_key_binding_list(cfdata);
@ -675,8 +669,8 @@ _update_action_list(E_Config_Dialog_Data *cfdata)
else
{
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
e_widget_entry_clear(cfdata->gui.o_params);
}
@ -1091,8 +1085,8 @@ _grab_key_down_cb(void *data, int type, void *event)
}
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, n);
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
if ((cfdata->params) && (cfdata->params[0]))
{
int j, g = -1;
@ -1179,12 +1173,12 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
actd = eina_list_nth(actg->acts, a);
if (!actd) return;
if (bi->action) eina_stringshare_del(bi->action);
eina_stringshare_del(bi->action);
bi->action = NULL;
if (actd->act_cmd) bi->action = eina_stringshare_add(actd->act_cmd);
if (bi->params) eina_stringshare_del(bi->params);
eina_stringshare_del(bi->params);
bi->params = NULL;
if (actd->act_params)

View File

@ -24,8 +24,8 @@ struct _Config_Type
struct _E_Config_Dialog_Data
{
Eina_List *mimes;
char *cur_type;
struct
const char *cur_type;
struct
{
Evas_Object *tlist, *list;
} gui;
@ -111,10 +111,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
if (ecore_file_exists(buf))
_load_globs(cfdata, buf);
if (cfdata->mimes)
cfdata->mimes = eina_list_sort(cfdata->mimes,
eina_list_count(cfdata->mimes), _sort_mimes);
cfdata->mimes = eina_list_sort(cfdata->mimes, 0, _sort_mimes);
_fill_types(cfdata);
}
@ -132,50 +130,42 @@ _create_data(E_Config_Dialog *cfd)
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
Config_Type *t;
Config_Mime *m;
if (cfdata->edit_dlg)
{
e_object_del(E_OBJECT(cfdata->edit_dlg));
cfdata->edit_dlg = NULL;
}
while (types)
EINA_LIST_FREE(types, t)
{
Config_Type *t;
t = types->data;
if (!t) continue;
if (t->name)
eina_stringshare_del(t->name);
if (t->type)
eina_stringshare_del(t->type);
types = eina_list_remove_list(types, types);
eina_stringshare_del(t->name);
eina_stringshare_del(t->type);
E_FREE(t);
}
while (cfdata->mimes)
EINA_LIST_FREE(cfdata->mimes, m)
{
Config_Mime *m;
m = cfdata->mimes->data;
Config_Glob *g;
if (!m) continue;
while (m->globs)
EINA_LIST_FREE(m->globs, g)
{
Config_Glob *g;
g = m->globs->data;
if (!g) continue;
if (g->name)
eina_stringshare_del(g->name);
m->globs = eina_list_remove_list(m->globs, m->globs);
eina_stringshare_del(g->name);
E_FREE(g);
}
if (m->mime)
eina_stringshare_del(m->mime);
cfdata->mimes = eina_list_remove_list(cfdata->mimes, cfdata->mimes);
eina_stringshare_del(m->mime);
E_FREE(m);
}
E_FREE(cfdata);
}
@ -211,6 +201,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
static void
_fill_list(E_Config_Dialog_Data *cfdata, const char *mtype)
{
Config_Mime *m;
Eina_List *l;
Evas_Coord w, h;
Evas *evas;
@ -221,15 +212,13 @@ _fill_list(E_Config_Dialog_Data *cfdata, const char *mtype)
e_widget_ilist_freeze(cfdata->gui.list);
e_widget_ilist_clear(cfdata->gui.list);
for (l = cfdata->mimes; l; l = l->next)
EINA_LIST_FOREACH(cfdata->mimes, l, m)
{
Config_Mime *m;
Evas_Object *icon = NULL;
const char *tmp;
char buf[4096];
int edj = 0, img = 0;
m = l->data;
if (!m) return;
if (!strstr(m->mime, mtype)) continue;
tmp = e_fm_mime_icon_get(m->mime);
@ -276,6 +265,7 @@ _fill_list(E_Config_Dialog_Data *cfdata, const char *mtype)
static void
_fill_tlist(E_Config_Dialog_Data *cfdata)
{
Config_Type *tmp;
Eina_List *l;
Evas_Coord w, h;
@ -283,14 +273,12 @@ _fill_tlist(E_Config_Dialog_Data *cfdata)
edje_freeze();
e_widget_ilist_freeze(cfdata->gui.tlist);
e_widget_ilist_clear(cfdata->gui.tlist);
for (l = types; l; l = l->next)
EINA_LIST_FOREACH(types, l, tmp)
{
Config_Type *tmp;
Evas_Object *icon;
char buf[4096];
char *t;
tmp = l->data;
if (!tmp) continue;
t = strdup(tmp->name);
t[0] = tolower(t[0]);
@ -433,37 +421,38 @@ _load_globs(E_Config_Dialog_Data *cfdata, char *file)
static void
_fill_types(E_Config_Dialog_Data *cfdata)
{
Eina_List *l, *ll;
Config_Mime *m;
Eina_List *l;
for (l = cfdata->mimes; l; l = l->next)
EINA_LIST_FOREACH(cfdata->mimes, l, m)
{
Config_Type *tmp;
Config_Mime *m;
Config_Type *tmp;
Eina_List *ll;
char *tok;
int found = 0;
m = l->data;
if (!m) continue;
tok = strtok(strdup(m->mime), "/");
if (!tok) continue;
for (ll = types; ll; ll = ll->next)
EINA_LIST_FOREACH(types, ll, tmp)
{
tmp = ll->data;
if (!tmp) continue;
if (strcmp(tmp->type, tok) >= 0)
if (strcmp(tmp->type, tok) >= 0)
{
found = 1;
break;
}
}
if (!found)
if (!found)
{
tmp = E_NEW(Config_Type, 1);
tmp->type = eina_stringshare_add(tok);
tok[0] = toupper(tok[0]);
tmp->name = eina_stringshare_add(tok);
types = eina_list_append(types, tmp);
}
}
@ -473,17 +462,17 @@ static void
_tlist_cb_change(void *data)
{
E_Config_Dialog_Data *cfdata;
Config_Type *t;
Eina_List *l;
cfdata = data;
if (!cfdata) return;
for (l = types; l; l = l->next)
EINA_LIST_FOREACH(types, l, t)
{
Config_Type *t;
t = l->data;
if (!t) continue;
if (strcasecmp(t->name, cfdata->cur_type)) continue;
if (t->name != cfdata->cur_type /* Both string are stringshare. */
&& strcasecmp(t->name, cfdata->cur_type)) continue;
_fill_list(cfdata, t->type);
break;
}
@ -506,32 +495,49 @@ _sort_mimes(const void *data1, const void *data2)
static Config_Mime *
_find_mime(E_Config_Dialog_Data *cfdata, char *mime)
{
Config_Mime *cm;
const char *tmp;
Eina_List *l;
if (!cfdata) return NULL;
for (l = cfdata->mimes; l; l = l->next)
if (eina_list_count(cfdata->mimes) > 10)
{
Config_Mime *cm;
cm = l->data;
if (!cm) continue;
if (strcmp(cm->mime, mime)) continue;
return cm;
tmp = eina_stringshare_add(mime);
EINA_LIST_FOREACH(cfdata->mimes, l, cm)
{
if (!cm) continue;
if (cm->mime != mime) continue;
eina_stringshare_del(tmp);
return cm;
}
eina_stringshare_del(tmp);
}
else
{
EINA_LIST_FOREACH(cfdata->mimes, l, cm)
{
if (!cm) continue;
if (strcmp(cm->mime, mime)) continue;
return cm;
}
}
return NULL;
}
static Config_Glob *
_find_glob(Config_Mime *mime, char *glob)
{
Config_Glob *g;
Eina_List *l;
if (!mime) return NULL;
for (l = mime->globs; l; l = l->next)
EINA_LIST_FOREACH(mime->globs, l, g)
{
Config_Glob *g;
g = l->data;
if (!g) continue;
if (strcmp(g->name, glob)) continue;
return g;
@ -547,26 +553,25 @@ _cb_config(void *data, void *data2)
E_Config_Mime_Icon *mi = NULL;
const char *m;
int found = 0;
cfdata = data;
if (!cfdata) return;
m = e_widget_ilist_selected_label_get(cfdata->gui.list);
if (!m) return;
for (l = e_config->mime_icons; l; l = l->next)
EINA_LIST_FOREACH(e_config->mime_icons, l, mi)
{
mi = l->data;
if (!mi) continue;
if (!mi->mime) continue;
if (strcmp(mi->mime, m)) continue;
found = 1;
break;
}
if (!found)
if (!found)
{
mi = E_NEW(E_Config_Mime_Icon, 1);
mi->mime = eina_stringshare_add(m);
}
cfdata->edit_dlg = e_int_config_mime_edit(mi, cfdata);
}

View File

@ -65,12 +65,12 @@ struct _E_Config_Dialog_Data
struct
{
char *binding;
char *action;
const char *binding;
const char *action;
char *params;
int context;
char *cur;
const char *cur;
int add; /*just to distinguesh among two buttons add/modify */
E_Dialog *dia;
@ -122,8 +122,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
E_Config_Binding_Mouse *eb, *eb2;
E_Config_Binding_Wheel *bw, *bw2;
cfdata->locals.binding = strdup("");
cfdata->locals.action = strdup("");
cfdata->locals.binding = eina_stringshare_add("");
cfdata->locals.action = eina_stringshare_add("");
cfdata->locals.params = strdup("");
cfdata->locals.context = E_BINDING_CONTEXT_ANY;
cfdata->binding.mouse = NULL;
@ -132,10 +132,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->locals.handlers = NULL;
cfdata->locals.dia = NULL;
for (l = e_config->mouse_bindings; l; l = l->next)
EINA_LIST_FOREACH(e_config->mouse_bindings, l, eb)
{
eb = l->data;
eb2 = E_NEW(E_Config_Binding_Mouse, 1);
eb2->context = eb->context;
eb2->button = eb->button;
@ -147,10 +145,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->binding.mouse = eina_list_append(cfdata->binding.mouse, eb2);
}
for (l = e_config->wheel_bindings; l; l = l->next)
EINA_LIST_FOREACH(e_config->wheel_bindings, l, bw)
{
bw = l->data;
bw2 = E_NEW(E_Config_Binding_Wheel, 1);
bw2->context = bw->context;
bw2->direction = bw->direction;
@ -182,30 +178,25 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
E_Config_Binding_Mouse *eb;
E_Config_Binding_Wheel *bw;
while (cfdata->binding.mouse)
EINA_LIST_FREE(cfdata->binding.mouse, eb)
{
eb = cfdata->binding.mouse->data;
if (eb->action) eina_stringshare_del(eb->action);
if (eb->params) eina_stringshare_del(eb->params);
eina_stringshare_del(eb->action);
eina_stringshare_del(eb->params);
E_FREE(eb);
cfdata->binding.mouse =
eina_list_remove_list(cfdata->binding.mouse, cfdata->binding.mouse);
}
while (cfdata->binding.wheel)
EINA_LIST_FREE(cfdata->binding.wheel, bw)
{
bw = cfdata->binding.wheel->data;
if (bw->action) eina_stringshare_del(bw->action);
if (bw->params) eina_stringshare_del(bw->params);
eina_stringshare_del(bw->action);
eina_stringshare_del(bw->params);
E_FREE(bw);
cfdata->binding.wheel =
eina_list_remove_list(cfdata->binding.wheel, cfdata->binding.wheel);
}
if (cfdata->locals.binding) free(cfdata->locals.binding);
if (cfdata->locals.action) free(cfdata->locals.action);
eina_stringshare_del(cfdata->locals.binding);
eina_stringshare_del(cfdata->locals.action);
eina_stringshare_del(cfdata->locals.cur);
if (cfdata->locals.params) free(cfdata->locals.params);
if (cfdata->locals.cur) free(cfdata->locals.cur);
E_FREE(cfdata);
}
@ -219,22 +210,17 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
_auto_apply_changes(cfdata);
e_border_button_bindings_ungrab_all();
while (e_config->mouse_bindings)
EINA_LIST_FREE(e_config->mouse_bindings, eb)
{
eb = e_config->mouse_bindings->data;
e_bindings_mouse_del(eb->context, eb->button, eb->modifiers, eb->any_mod,
eb->action, eb->params);
if (eb->action) eina_stringshare_del(eb->action);
if (eb->params) eina_stringshare_del(eb->params);
eina_stringshare_del(eb->action);
eina_stringshare_del(eb->params);
E_FREE(eb);
e_config->mouse_bindings =
eina_list_remove_list(e_config->mouse_bindings, e_config->mouse_bindings);
}
for (l = cfdata->binding.mouse; l; l = l->next)
EINA_LIST_FOREACH(cfdata->binding.mouse, l, eb)
{
eb = l->data;
eb2 = E_NEW(E_Config_Binding_Mouse, 1);
eb2->context = eb->context;
eb2->button = eb->button;
@ -248,23 +234,17 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
eb2->action, eb2->params);
}
while (e_config->wheel_bindings)
EINA_LIST_FREE(e_config->wheel_bindings, bw)
{
bw = e_config->wheel_bindings->data;
e_bindings_wheel_del(bw->context, bw->direction, bw->z, bw->modifiers, bw->any_mod,
bw->action, bw->params);
if (bw->action) eina_stringshare_del(bw->action);
if (bw->params) eina_stringshare_del(bw->params);
eina_stringshare_del(bw->action);
eina_stringshare_del(bw->params);
E_FREE(bw);
e_config->wheel_bindings =
eina_list_remove_list(e_config->wheel_bindings, e_config->wheel_bindings);
}
for (l = cfdata->binding.wheel; l; l = l->next)
EINA_LIST_FOREACH(cfdata->binding.wheel, l, bw)
{
bw = l->data;
bw2 = E_NEW(E_Config_Binding_Wheel, 1);
bw2->context = bw->context;
bw2->direction = bw->direction;
@ -460,11 +440,11 @@ _binding_change_cb(void *data)
_auto_apply_changes(cfdata);
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
if (cfdata->locals.binding[0])
cfdata->locals.cur = strdup(cfdata->locals.binding);
cfdata->locals.cur = eina_stringshare_ref(cfdata->locals.binding);
_update_buttons(cfdata);
_update_action_list(cfdata);
@ -481,28 +461,21 @@ _delete_all_mouse_binding_cb(void *data, void *data2)
cfdata = data;
/* FIXME: need confirmation dialog */
while (cfdata->binding.mouse)
EINA_LIST_FREE(cfdata->binding.mouse, eb)
{
eb = cfdata->binding.mouse->data;
if (eb->action) eina_stringshare_del(eb->action);
if (eb->params) eina_stringshare_del(eb->params);
eina_stringshare_del(eb->action);
eina_stringshare_del(eb->params);
E_FREE(eb);
cfdata->binding.mouse =
eina_list_remove_list(cfdata->binding.mouse, cfdata->binding.mouse);
}
while (cfdata->binding.wheel)
EINA_LIST_FREE(cfdata->binding.wheel, bw)
{
bw = cfdata->binding.wheel->data;
if (bw->action) eina_stringshare_del(bw->action);
if (bw->params) eina_stringshare_del(bw->params);
eina_stringshare_del(bw->action);
eina_stringshare_del(bw->params);
E_FREE(bw);
cfdata->binding.wheel =
eina_list_remove_list(cfdata->binding.wheel, cfdata->binding.wheel);
}
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_clear(cfdata->gui.o_binding_list);
@ -533,10 +506,11 @@ _delete_mouse_binding_cb(void *data, void *data2)
l = eina_list_nth_list(cfdata->binding.mouse, n);
if (l)
{
eb = l->data;
if (eb->action) eina_stringshare_del(eb->action);
if (eb->params) eina_stringshare_del(eb->params);
eb = eina_list_data_get(l);
eina_stringshare_del(eb->action);
eina_stringshare_del(eb->params);
E_FREE(eb);
cfdata->binding.mouse = eina_list_remove_list(cfdata->binding.mouse, l);
}
}
@ -546,10 +520,11 @@ _delete_mouse_binding_cb(void *data, void *data2)
l = eina_list_nth_list(cfdata->binding.wheel, n);
if (l)
{
bw = l->data;
if (bw->action) eina_stringshare_del(bw->action);
if (bw->params) eina_stringshare_del(bw->params);
bw = eina_list_data_get(l);
eina_stringshare_del(bw->action);
eina_stringshare_del(bw->params);
E_FREE(bw);
cfdata->binding.wheel = eina_list_remove_list(cfdata->binding.wheel, l);
}
}
@ -561,11 +536,11 @@ _delete_mouse_binding_cb(void *data, void *data2)
sel = e_widget_ilist_count(cfdata->gui.o_binding_list) - 1;
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
if (!e_widget_ilist_count(cfdata->gui.o_binding_list))
{
{
_update_binding_context(cfdata);
_update_buttons(cfdata);
@ -589,24 +564,18 @@ _restore_mouse_binding_defaults_cb(void *data, void *data2)
cfdata = data;
while (cfdata->binding.mouse)
EINA_LIST_FREE(cfdata->binding.mouse, eb)
{
eb = cfdata->binding.mouse->data;
if (eb->action) eina_stringshare_del(eb->action);
if (eb->params) eina_stringshare_del(eb->params);
eina_stringshare_del(eb->action);
eina_stringshare_del(eb->params);
E_FREE(eb);
cfdata->binding.mouse =
eina_list_remove_list(cfdata->binding.mouse, cfdata->binding.mouse);
}
while (cfdata->binding.wheel)
EINA_LIST_FREE(cfdata->binding.wheel, bw)
{
bw = cfdata->binding.wheel->data;
if (bw->action) eina_stringshare_del(bw->action);
if (bw->params) eina_stringshare_del(bw->params);
E_FREE(bw);
cfdata->binding.wheel =
eina_list_remove_list(cfdata->binding.wheel, cfdata->binding.wheel);
}
#define CFG_MOUSEBIND_DFLT(_context, _button, _modifiers, _anymod, _action, _params) \
eb = E_NEW(E_Config_Binding_Mouse, 1); \
@ -653,7 +622,7 @@ _restore_mouse_binding_defaults_cb(void *data, void *data2)
CFG_WHEELBIND_DFLT(E_BINDING_CONTEXT_BORDER, 1, 1, E_BINDING_MODIFIER_ALT, 0,
"desk_linear_flip_by", "1");
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
_update_mouse_binding_list(cfdata);
@ -727,8 +696,8 @@ _update_action_list(E_Config_Dialog_Data *cfdata)
else
{
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
e_widget_entry_clear(cfdata->gui.o_params);
}
}
@ -738,7 +707,7 @@ _update_mouse_binding_list(E_Config_Dialog_Data *cfdata)
{
char *icon = NULL, *button, *mods;
char label[1024], val[10];
int i;
int i = 0;
Eina_List *l;
E_Config_Binding_Mouse *eb;
E_Config_Binding_Wheel *bw;
@ -757,10 +726,9 @@ _update_mouse_binding_list(E_Config_Dialog_Data *cfdata)
e_widget_ilist_header_append(cfdata->gui.o_binding_list, NULL, "Mouse Buttons");
}
for (l = cfdata->binding.mouse, i = 0; l; l = l->next, i++)
EINA_LIST_FOREACH(cfdata->binding.mouse, l, eb)
{
Evas_Object *ic;
eb = l->data;
button = _helper_button_name_get(eb);
mods = _helper_modifier_name_get(eb->modifiers);
@ -793,6 +761,8 @@ _update_mouse_binding_list(E_Config_Dialog_Data *cfdata)
e_util_icon_theme_set(ic, icon);
e_widget_ilist_append(cfdata->gui.o_binding_list, ic, label, _binding_change_cb,
cfdata, val);
i++;
}
if (cfdata->binding.wheel)
@ -803,10 +773,10 @@ _update_mouse_binding_list(E_Config_Dialog_Data *cfdata)
e_widget_ilist_header_append(cfdata->gui.o_binding_list, NULL, "Mouse Wheels");
}
for (l = cfdata->binding.wheel, i = 0; l; l = l->next, i++)
i = 0;
EINA_LIST_FOREACH(cfdata->binding.wheel, l, bw)
{
Evas_Object *ic;
bw = l->data;
button = _helper_wheel_name_get(bw);
mods = _helper_modifier_name_get(bw->modifiers);
@ -824,6 +794,8 @@ _update_mouse_binding_list(E_Config_Dialog_Data *cfdata)
e_util_icon_theme_set(ic, "preferences-desktop-mouse-wheel");
e_widget_ilist_append(cfdata->gui.o_binding_list, ic, label, _binding_change_cb,
cfdata, val);
i++;
}
e_widget_ilist_go(cfdata->gui.o_binding_list);
@ -1056,8 +1028,8 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
params = &(bw->params);
}
if (*action) eina_stringshare_del(*action);
if (*params) eina_stringshare_del(*params);
eina_stringshare_del(*action);
eina_stringshare_del(*params);
*action = NULL;
*params = NULL;
@ -1087,7 +1059,7 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
ok = 0;
if (ok)
*params = eina_stringshare_add(cfdata->locals.params);
*params = eina_stringshare_ref(cfdata->locals.params);
}
}
@ -1395,7 +1367,7 @@ _grab_mouse_down_cb(void *data, int type, void *event)
{
sscanf(cfdata->locals.cur, "w%d", &n);
l = eina_list_nth_list(cfdata->binding.wheel, n);
bw = l->data;
bw = eina_list_data_get(l);
eb = E_NEW(E_Config_Binding_Mouse, 1);
eb->context = bw->context;
@ -1422,8 +1394,8 @@ _grab_mouse_down_cb(void *data, int type, void *event)
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, n + 1);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
e_widget_ilist_unselect(cfdata->gui.o_action_list);
e_widget_entry_clear(cfdata->gui.o_params);
e_widget_disabled_set(cfdata->gui.o_params, 1);
@ -1433,7 +1405,7 @@ _grab_mouse_down_cb(void *data, int type, void *event)
for (l = cfdata->binding.mouse, n = 0; l; l = l->next, n++)
if (l->data == eb) break;
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, n + 1);
@ -1488,7 +1460,7 @@ _grab_mouse_wheel_cb(void *data, int type, void *event)
{
sscanf(cfdata->locals.cur, "m%d", &n);
l = eina_list_nth_list(cfdata->binding.mouse, n);
eb = l->data;
eb = eina_list_data_get(l);
bw = E_NEW(E_Config_Binding_Wheel, 1);
bw->context = eb->context;
@ -1532,8 +1504,8 @@ _grab_mouse_wheel_cb(void *data, int type, void *event)
e_widget_ilist_selected_set(cfdata->gui.o_binding_list, n + 1);
e_widget_ilist_unselect(cfdata->gui.o_action_list);
if (cfdata->locals.action) free(cfdata->locals.action);
cfdata->locals.action = strdup("");
eina_stringshare_del(cfdata->locals.action);
cfdata->locals.action = eina_stringshare_add("");
e_widget_entry_clear(cfdata->gui.o_params);
e_widget_disabled_set(cfdata->gui.o_params, 1);
}
@ -1542,7 +1514,7 @@ _grab_mouse_wheel_cb(void *data, int type, void *event)
for (l = cfdata->binding.wheel, n = 0; l; l = l->next, n++)
if (l->data == bw) break;
if (cfdata->locals.cur) free(cfdata->locals.cur);
eina_stringshare_del(cfdata->locals.cur);
cfdata->locals.cur = NULL;
if (eina_list_count(cfdata->binding.mouse))

View File

@ -26,7 +26,7 @@ struct _E_Config_Dialog_Data
Evas_Object *o_delete;
Evas_Object *o_reset;
Evas_Object *o_text;
char *sel_profile;
const char *sel_profile;
E_Dialog *dia_new_profile;
char *new_profile;

View File

@ -17,7 +17,7 @@ struct _E_Config_Dialog_Data
Evas_Object *o_delete;
Evas_Object *o_config;
char *cur_shelf;
const char *cur_shelf;
};
typedef struct _Shelf_Del_Confirm_Data Shelf_Del_Confirm_Data;

View File

@ -72,9 +72,9 @@ struct _Instance
struct {
int ifmode;
int ifmode_tmp;
char *ifpath;
char *ifpath_tmp;
char *bssid;
const char *ifpath;
const char *ifpath_tmp;
const char *bssid;
char *sec;
Conf_Network *cfnet, *cfnet_new;
Conf_Interface *cfif;
@ -269,11 +269,8 @@ if_get(Instance *inst)
iface = iface_find(inst->config.ifpath);
else
{
for (l = ifaces; l; l = l->next)
{
iface = l->data;
if (inst_if_matches(inst, iface)) return iface;
}
EINA_LIST_FOREACH(ifaces, l, iface)
if (inst_if_matches(inst, iface)) return iface;
}
return iface;
}
@ -329,7 +326,7 @@ net_join(Instance *inst, Interface *iface, Conf_Network *cfnet)
#define STR_SHARE(x) \
do { char *___s; ___s = (x); \
if (___s) { (x) = eina_stringshare_add(___s); free(___s); } \
if (___s) { (x) = (char *)eina_stringshare_add(___s); free(___s); } \
} while (0);
#define STR_UNSHARE(x) \
@ -561,7 +558,8 @@ netlist_dialog_show(Instance *inst)
net_dialog_hide(inst);
manual_dialog_hide(inst);
if_dialog_hide(inst);
E_FREE(inst->config.ifpath);
eina_stringshare_del(inst->config.ifpath);
inst->config.ifpath = NULL;
}
static void
@ -586,7 +584,7 @@ if_dialog_cb_ok(void *data, E_Dialog *dialog)
inst = data;
if_dialog_hide(inst);
E_FREE(inst->config.ifpath);
eina_stringshare_del(inst->config.ifpath);
inst->config.ifmode = inst->config.ifmode_tmp;
inst->config.ifpath = inst->config.ifpath_tmp;
inst->config.ifpath_tmp = NULL;
@ -598,8 +596,7 @@ if_dialog_cb_ok(void *data, E_Dialog *dialog)
eina_stringshare_del(inst->config.cfif->ifpath);
inst->config.cfif->ifpath = NULL;
}
if (inst->config.ifpath)
inst->config.cfif->ifpath = eina_stringshare_add(inst->config.ifpath);
inst->config.cfif->ifpath = eina_stringshare_ref(inst->config.ifpath);
inst->config.cfif->ifmode = inst->config.ifmode;
}
popup_ifnet_nets_refresh(inst);
@ -613,7 +610,8 @@ if_dialog_cb_cancel(void *data, E_Dialog *dialog)
inst = data;
if_dialog_hide(inst);
E_FREE(inst->config.ifpath_tmp);
eina_stringshare_del(inst->config.ifpath_tmp);
inst->config.ifpath_tmp = NULL;
}
static void
@ -625,7 +623,8 @@ if_dialog_cb_del(E_Win *win)
dialog = win->data;
inst = dialog->data;
if_dialog_hide(inst);
E_FREE(inst->config.ifpath_tmp);
eina_stringshare_del(inst->config.ifpath_tmp);
inst->config.ifpath_tmp = NULL;
}
static void
@ -637,7 +636,8 @@ if_radio_cb_generic(void *data, Evas_Object *obj, void *event_info)
if (inst->config.ifmode != 2)
{
e_widget_ilist_unselect(inst->if_ilist_obj);
E_FREE(inst->config.ifpath);
eina_stringshare_del(inst->config.ifpath);
inst->config.ifpath = NULL;
}
}
@ -748,10 +748,7 @@ if_dialog_show(Instance *inst)
inst->if_radio_device = o;
e_widget_framelist_object_append(flist, o);
if (inst->config.ifpath)
inst->config.ifpath_tmp = strdup(inst->config.ifpath);
else
inst->config.ifpath_tmp = NULL;
inst->config.ifpath_tmp = eina_stringshare_ref(inst->config.ifpath);
ilist = e_widget_ilist_add(evas, 48, 48, &(inst->config.ifpath_tmp));
inst->if_ilist_obj = ilist;

View File

@ -53,7 +53,7 @@ struct _E_Fwin_Apps_Dialog
{
E_Dialog *dia;
E_Fwin *fwin;
char *app1, *app2;
const char *app1, *app2;
Evas_Object *o_specific, *o_all;
Evas_Object *o_entry;
char *exec_cmd;
@ -864,7 +864,7 @@ _e_fwin_cb_all_change(void *data, Evas_Object *obj)
Efreet_Desktop *desktop = NULL;
fad = data;
E_FREE(fad->app1);
eina_stringshare_del(fad->app1);
if (fad->o_specific) e_widget_ilist_unselect(fad->o_specific);
desktop = efreet_util_desktop_file_id_find(fad->app2);
if ((desktop) && (desktop->exec))
@ -878,7 +878,7 @@ _e_fwin_cb_specific_change(void *data, Evas_Object *obj)
Efreet_Desktop *desktop = NULL;
fad = data;
E_FREE(fad->app2);
eina_stringshare_del(fad->app2);
if (fad->o_all) e_widget_ilist_unselect(fad->o_all);
desktop = efreet_util_desktop_file_id_find(fad->app1);
if ((desktop) && (desktop->exec))
@ -902,8 +902,8 @@ _e_fwin_cb_exec_cmd_changed(void *data, void *data2)
if (!desktop) return;
if (!strcmp(desktop->exec, fad->exec_cmd)) return;
E_FREE(fad->app1);
E_FREE(fad->app2);
eina_stringshare_del(fad->app1);
eina_stringshare_del(fad->app2);
if (fad->o_specific) e_widget_ilist_unselect(fad->o_specific);
if (fad->o_all) e_widget_ilist_unselect(fad->o_all);
}
@ -1031,8 +1031,8 @@ _e_fwin_cb_dialog_free(void *obj)
dia = (E_Dialog *)obj;
fad = dia->data;
E_FREE(fad->app1);
E_FREE(fad->app2);
eina_stringshare_del(fad->app1);
eina_stringshare_del(fad->app2);
E_FREE(fad->exec_cmd);
fad->fwin->fad = NULL;
E_FREE(fad);

View File

@ -7,7 +7,7 @@
struct _E_Config_Dialog_Data
{
char *dir;
const char *dir;
int show_label;
int eap_label;
@ -62,9 +62,9 @@ static void
_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
{
if (ci->dir)
cfdata->dir = strdup(ci->dir);
cfdata->dir = eina_stringshare_ref(ci->dir);
else
cfdata->dir = strdup("");
cfdata->dir = eina_stringshare_add("");
cfdata->show_label = ci->show_label;
cfdata->eap_label = ci->eap_label;
}
@ -84,7 +84,7 @@ _create_data(E_Config_Dialog *cfd)
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
if (cfdata->dir) free(cfdata->dir);
if (cfdata->dir) eina_stringshare_del(cfdata->dir);
if (cfdata->dialog_delete) e_object_del(E_OBJECT(cfdata->dialog_delete));
ibar_config->config_dialog = NULL;
E_FREE(cfdata);
@ -150,7 +150,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
ci = cfd->data;
if (ci->dir) eina_stringshare_del(ci->dir);
ci->dir = NULL;
if (cfdata->dir) ci->dir = eina_stringshare_add(cfdata->dir);
if (cfdata->dir) ci->dir = eina_stringshare_ref(cfdata->dir);
ci->show_label = cfdata->show_label;
ci->eap_label = cfdata->eap_label;
_ibar_config_update(ci);

View File

@ -5,8 +5,8 @@ extern const char _Name[];
typedef struct E_Mixer_App_Dialog_Data
{
E_Mixer_System *sys;
char *card;
char *channel_name;
const char *card;
const char *channel_name;
int lock_sliders;
Eina_List *cards;
Eina_List *channels_infos;
@ -54,7 +54,7 @@ typedef struct E_Mixer_App_Dialog_Data
struct channel_info
{
int has_capture;
char *name;
const char *name;
E_Mixer_Channel *id;
E_Mixer_App_Dialog_Data *app;
};
@ -151,14 +151,13 @@ _populate_channel_editor(E_Mixer_App_Dialog_Data *app)
{
struct e_mixer_app_ui_channel_editor *ui;
E_Mixer_Channel_State state;
char *card_name;
const char *card_name;
ui = &app->ui.channel_editor;
card_name = e_mixer_system_get_card_name(app->card);
e_widget_entry_text_set(ui->card, card_name);
if (card_name)
free(card_name);
eina_stringshare_del(card_name);
e_widget_entry_text_set(ui->channel, app->channel_name);
@ -224,16 +223,13 @@ _channels_info_new(E_Mixer_System *sys)
static void
_channels_info_free(Eina_List *list)
{
Eina_List *l;
struct channel_info *info;
for (l = list; l != NULL; l = l->next)
EINA_LIST_FREE(list, info)
{
struct channel_info *info = l->data;
free(info->name);
eina_stringshare_del(info->name);
free(info);
}
eina_list_free(list);
}
static int
@ -272,8 +268,7 @@ _populate_channels(E_Mixer_App_Dialog_Data *app)
app->sys = e_mixer_system_new(app->card);
e_mixer_system_callback_set(app->sys, _cb_system_update, app);
if (app->channel_name)
free(app->channel_name);
eina_stringshare_del(app->channel_name);
app->channel_name = e_mixer_system_get_default_channel_name(app->sys);
if (app->channels_infos)
@ -341,6 +336,7 @@ static void
_create_cards(E_Dialog *dialog, Evas *evas, E_Mixer_App_Dialog_Data *app)
{
struct e_mixer_app_ui_cards *ui;
const char *card;
Eina_List *l;
app->card = e_mixer_system_get_default_card();
@ -351,17 +347,16 @@ _create_cards(E_Dialog *dialog, Evas *evas, E_Mixer_App_Dialog_Data *app)
ui = &app->ui.cards;
ui->list = e_widget_ilist_add(evas, 32, 32, &app->card);
e_widget_ilist_go(ui->list);
for (l = app->cards; l != NULL; l = l->next)
EINA_LIST_FOREACH(app->cards, l, card)
{
char *card, *card_name;
const char *card_name;
card = l->data;
card_name = e_mixer_system_get_card_name(card);
e_widget_ilist_append(ui->list, NULL, card_name, _cb_card_selected,
app, card);
free(card_name);
eina_stringshare_del(card_name);
}
ui->frame = e_widget_framelist_add(evas, _("Cards"), 0);
@ -473,10 +468,8 @@ _mixer_app_dialog_del(E_Dialog *dialog, E_Mixer_App_Dialog_Data *app)
if (app->del.func)
app->del.func(dialog, app->del.data);
if (app->card)
free(app->card);
if (app->channel_name)
free(app->channel_name);
eina_stringshare_del(app->card);
eina_stringshare_del(app->channel_name);
if (app->cards)
e_mixer_system_free_cards(app->cards);
if (app->channels_infos)
@ -561,8 +554,10 @@ _find_card_by_name(E_Mixer_App_Dialog_Data *app, const char *card_name)
static inline int
_find_channel_by_name(E_Mixer_App_Dialog_Data *app, const char *channel_name)
{
struct channel_info *info;
Eina_List *l;
int i, header_input;
int i = 0;
int header_input;
if (app->channels_infos)
{
@ -572,10 +567,8 @@ _find_channel_by_name(E_Mixer_App_Dialog_Data *app, const char *channel_name)
i = 1;
}
for (l = app->channels_infos; l != NULL; l = l->next, i++)
EINA_LIST_FOREACH(app->channels_infos, l, info)
{
struct channel_info *info = l->data;
if ((!header_input) && info->has_capture)
{
header_input = 1;
@ -584,6 +577,8 @@ _find_channel_by_name(E_Mixer_App_Dialog_Data *app, const char *channel_name)
if (strcmp(channel_name, info->name) == 0)
return i;
++i;
}
return -1;

View File

@ -42,23 +42,24 @@ struct _E_Config_Dialog_Data
static void
_mixer_fill_cards_info(E_Config_Dialog_Data *cfdata)
{
const char *card;
const char *name;
Eina_List *l;
int i;
int i = 0;
cfdata->card_num = -1;
cfdata->cards = e_mixer_system_get_cards();
cfdata->cards_names = NULL;
for (l = cfdata->cards, i = 0; l != NULL; l = l->next, i++)
EINA_LIST_FOREACH(cfdata->cards, l, card)
{
char *card, *name;
card = l->data;
name = e_mixer_system_get_card_name(card);
if ((cfdata->card_num < 0) && card && cfdata->card &&
(strcmp(card, cfdata->card) == 0))
cfdata->card_num = i;
cfdata->cards_names = eina_list_append(cfdata->cards_names, name);
i++;
}
if (cfdata->card_num < 0)
@ -69,8 +70,9 @@ static void
_mixer_fill_channels_info(E_Config_Dialog_Data *cfdata)
{
E_Mixer_System *sys;
const char *channel;
Eina_List *l;
int i;
int i = 0;
sys = e_mixer_system_new(cfdata->card);
if (!sys)
@ -79,17 +81,17 @@ _mixer_fill_channels_info(E_Config_Dialog_Data *cfdata)
cfdata->channel = 0;
cfdata->channel_name = eina_stringshare_add(cfdata->conf->channel_name);
cfdata->channels_names = e_mixer_system_get_channels_names(sys);
for (l = cfdata->channels_names, i = 0; l != NULL; l = l->next, i++)
EINA_LIST_FOREACH(cfdata->channels_names, l, channel)
{
char *channel;
channel = l->data;
if (channel && cfdata->channel_name &&
(strcmp(channel, cfdata->channel_name) == 0))
(channel == cfdata->channel_name ||
strcmp(channel, cfdata->channel_name) == 0))
{
cfdata->channel = i;
break;
}
i++;
}
e_mixer_system_del(sys);
}
@ -119,7 +121,7 @@ static void
_free_data(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
{
E_Mixer_Gadget_Config *conf;
Eina_List *l;
const char *card;
conf = dialog->data;
if (conf)
@ -128,20 +130,16 @@ _free_data(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
if (!cfdata)
return;
for (l = cfdata->cards_names; l != NULL; l = l->next)
if (l->data)
free(l->data);
eina_list_free(cfdata->cards_names);
EINA_LIST_FREE(cfdata->cards_names, card)
eina_stringshare_del(card);
if (cfdata->channels_names)
e_mixer_system_free_channels_names(cfdata->channels_names);
if (cfdata->cards)
e_mixer_system_free_cards(cfdata->cards);
if (cfdata->card)
eina_stringshare_del(cfdata->card);
if (cfdata->channel_name)
eina_stringshare_del(cfdata->channel_name);
eina_stringshare_del(cfdata->card);
eina_stringshare_del(cfdata->channel_name);
eina_list_free(cfdata->ui.channels.radios);
@ -161,17 +159,15 @@ _basic_apply(E_Config_Dialog *dialog, E_Config_Dialog_Data *cfdata)
card = eina_list_nth(cfdata->cards, cfdata->card_num);
if (card)
{
if (conf->card && (strcmp(card, conf->card) != 0))
eina_stringshare_del(conf->card);
conf->card = eina_stringshare_add(card);
eina_stringshare_del(conf->card);
conf->card = eina_stringshare_ref(card);
}
channel = eina_list_nth(cfdata->channels_names, cfdata->channel);
if (channel)
{
if (conf->channel_name && (strcmp(channel, conf->channel_name) != 0))
eina_stringshare_del(conf->channel_name);
conf->channel_name = eina_stringshare_add(channel);
eina_stringshare_del(conf->channel_name);
conf->channel_name = eina_stringshare_ref(channel);
}
e_mixer_update(conf->instance);
@ -211,11 +207,10 @@ _basic_create_general(Evas *evas, E_Config_Dialog_Data *cfdata)
static void
_clear_channels(E_Config_Dialog_Data *cfdata)
{
Eina_List *l;
Evas_Object *o;
for (l = cfdata->ui.channels.radios; l != NULL; l = l->next)
evas_object_del(l->data);
cfdata->ui.channels.radios = eina_list_free(cfdata->ui.channels.radios);
EINA_LIST_FREE(cfdata->ui.channels.radios, o)
evas_object_del(o);
}
static void
@ -224,23 +219,23 @@ _fill_channels(Evas *evas, E_Config_Dialog_Data *cfdata)
struct mixer_config_ui_channels *ui;
Evas_Object *selected;
Evas_Coord mw, mh;
const char *name;
Eina_List *l;
int i;
int i = 0;
ui = &cfdata->ui.channels;
ui->radio = e_widget_radio_group_new(&cfdata->channel);
for (i = 0, l = cfdata->channels_names; l != NULL; l = l->next, i++)
EINA_LIST_FOREACH(cfdata->channels_names, l, name)
{
Evas_Object *ow;
const char *name;
name = l->data;
if (!name)
continue;
if (!name) continue;
ow = e_widget_radio_add(evas, name, i, ui->radio);
ui->radios = eina_list_append(ui->radios, ow);
e_widget_list_object_append(ui->list, ow, 1, 1, 0.0);
++i;
}
e_widget_min_size_get(ui->list, &mw, &mh);
@ -299,12 +294,11 @@ _card_change(void *data, Evas_Object *obj, void *event)
cfdata = data;
if (cfdata->card)
eina_stringshare_del(cfdata->card);
eina_stringshare_del(cfdata->card);
e_mixer_system_free_channels_names(cfdata->channels_names);
if (cfdata->channel_name)
eina_stringshare_del(cfdata->channel_name);
eina_stringshare_del(cfdata->channel_name);
card = eina_list_nth(cfdata->cards, cfdata->card_num);
cfdata->card = eina_stringshare_add(card);
@ -319,25 +313,25 @@ static void
_basic_create_cards(Evas *evas, E_Config_Dialog_Data *cfdata)
{
struct mixer_config_ui_cards *ui;
const char *card;
Eina_List *l;
int i;
int i = 0;
ui = &cfdata->ui.cards;
ui->frame = e_widget_framelist_add(evas, _("Sound Cards"), 0);
ui->radio = e_widget_radio_group_new(&cfdata->card_num);
for (i = 0, l = cfdata->cards_names; l != NULL; l = l->next, i++)
EINA_LIST_FOREACH(cfdata->cards_names, l, card)
{
Evas_Object *ow;
const char *card;
card = l->data;
if (!card)
continue;
if (!card) continue;
ow = e_widget_radio_add(evas, card, i, ui->radio);
e_widget_framelist_object_append(ui->frame, ow);
evas_object_smart_callback_add(ow, "changed", _card_change, cfdata);
++i;
}
}

View File

@ -105,14 +105,14 @@ _basic_create_general(E_Config_Dialog *dialog, Evas *evas, E_Config_Dialog_Data
E_Mixer_Gadget_Config *conf;
Evas_Object *o;
char name[128];
char *card_name;
const char *card_name;
inst = l->data;
conf = inst->conf;
card_name = e_mixer_system_get_card_name(conf->card);
snprintf(name, sizeof(name), "%s: %s", card_name, conf->channel_name);
free(card_name);
eina_stringshare_del(card_name);
o = e_widget_radio_add(evas, name, i, ui->radio);
e_widget_framelist_object_append(ui->frame, o);

View File

@ -29,7 +29,7 @@ static int
_mixer_gadget_configuration_defaults(E_Mixer_Gadget_Config *conf)
{
E_Mixer_System *sys;
char *card, *channel;
const char *card, *channel;
card = e_mixer_system_get_default_card();
if (!card)
@ -38,7 +38,7 @@ _mixer_gadget_configuration_defaults(E_Mixer_Gadget_Config *conf)
sys = e_mixer_system_new(card);
if (!sys)
{
free(card);
eina_stringshare_del(card);
return 0;
}
@ -47,18 +47,15 @@ _mixer_gadget_configuration_defaults(E_Mixer_Gadget_Config *conf)
if (!channel)
{
free(card);
eina_stringshare_del(card);
return 0;
}
conf->card = eina_stringshare_add(card);
conf->channel_name = eina_stringshare_add(channel);
conf->card = card;
conf->channel_name = channel;
conf->lock_sliders = 1;
conf->show_locked = 0;
free(card);
free(channel);
return 1;
}
@ -785,7 +782,7 @@ static int
_mixer_sys_setup_default_card(E_Mixer_Instance *inst)
{
E_Mixer_Gadget_Config *conf;
char *card;
const char *card;
conf = inst->conf;
if (conf->card)
@ -799,13 +796,12 @@ _mixer_sys_setup_default_card(E_Mixer_Instance *inst)
if (!inst->sys)
goto system_error;
conf->card = eina_stringshare_add(card);
free(card);
conf->card = card;
return 1;
system_error:
free(card);
eina_stringshare_del(card);
error:
conf->card = NULL;
return 0;
@ -815,7 +811,7 @@ static int
_mixer_sys_setup_default_channel(E_Mixer_Instance *inst)
{
E_Mixer_Gadget_Config *conf;
char *channel_name;
const char *channel_name;
conf = inst->conf;
if (conf->channel_name)
@ -829,12 +825,11 @@ _mixer_sys_setup_default_channel(E_Mixer_Instance *inst)
if (!inst->channel)
goto system_error;
conf->channel_name = eina_stringshare_add(channel_name);
free(channel_name);
conf->channel_name = channel_name;
return 1;
system_error:
free(channel_name);
eina_stringshare_del(channel_name);
error:
conf->channel_name = NULL;
return 0;

View File

@ -16,8 +16,8 @@ typedef struct E_Mixer_Channel_State E_Mixer_Channel_State;
Eina_List *e_mixer_system_get_cards(void);
void e_mixer_system_free_cards(Eina_List *cards);
char *e_mixer_system_get_default_card(void);
char *e_mixer_system_get_card_name(const char *card);
const char *e_mixer_system_get_default_card(void);
const char *e_mixer_system_get_card_name(const char *card);
E_Mixer_System *e_mixer_system_new(const char *card);
@ -29,9 +29,9 @@ Eina_List *e_mixer_system_get_channels(E_Mixer_System *self);
void e_mixer_system_free_channels(Eina_List *channels);
Eina_List *e_mixer_system_get_channels_names(E_Mixer_System *self);
void e_mixer_system_free_channels_names(Eina_List *channels_names);
char *e_mixer_system_get_default_channel_name(E_Mixer_System *self);
const char *e_mixer_system_get_default_channel_name(E_Mixer_System *self);
E_Mixer_Channel *e_mixer_system_get_channel_by_name(E_Mixer_System *self, const char *name);
char *e_mixer_system_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel);
const char *e_mixer_system_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel);
void e_mixer_system_channel_del(E_Mixer_Channel *channel);

View File

@ -114,14 +114,13 @@ _mixer_callback_add(E_Mixer_System *self, int (*func)(void *data, E_Mixer_System
static int
_mixer_callback_del(E_Mixer_System *self, struct e_mixer_callback_desc *desc)
{
Eina_List *l;
Ecore_Fd_Handler *handler;
snd_mixer_set_callback_private(self, NULL);
for (l = desc->handlers; l != NULL; l = l->next)
ecore_main_fd_handler_del(l->data);
EINA_LIST_FREE(desc->handlers, handler)
ecore_main_fd_handler_del(handler);
eina_list_free(desc->handlers);
free(desc);
return 1;
@ -227,7 +226,7 @@ e_mixer_system_get_cards(void)
if (snd_ctl_open(&control, buf, 0) < 0)
break;
snd_ctl_close(control);
cards = eina_list_append(cards, strdup(buf));
cards = eina_list_append(cards, eina_stringshare_add(buf));
}
if (err < 0)
@ -240,15 +239,13 @@ e_mixer_system_get_cards(void)
void
e_mixer_system_free_cards(Eina_List *cards)
{
Eina_List *e;
const char *card;
for (e = cards; e != NULL; e = e->next)
free(e->data);
eina_list_free(cards);
EINA_LIST_FREE(cards, card)
eina_stringshare_del(card);
}
char *
const char *
e_mixer_system_get_default_card(void)
{
static const char buf[] = "hw:0";
@ -257,10 +254,10 @@ e_mixer_system_get_default_card(void)
if (snd_ctl_open(&control, buf, 0) < 0)
return NULL;
snd_ctl_close(control);
return strdup(buf);
return eina_stringshare_add(buf);
}
char *
const char *
e_mixer_system_get_card_name(const char *card)
{
snd_ctl_card_info_t *hw_info;
@ -294,7 +291,7 @@ e_mixer_system_get_card_name(const char *card)
return NULL;
}
return strdup(name);
return eina_stringshare_add(name);
}
Eina_List *
@ -351,7 +348,7 @@ e_mixer_system_get_channels_names(E_Mixer_System *self)
snd_mixer_selem_get_id(elem, sid);
name = snd_mixer_selem_id_get_name(sid);
if (name)
channels = eina_list_append(channels, strdup(name));
channels = eina_list_append(channels, eina_stringshare_add(name));
}
return channels;
@ -360,15 +357,13 @@ e_mixer_system_get_channels_names(E_Mixer_System *self)
void
e_mixer_system_free_channels_names(Eina_List *channels_names)
{
Eina_List *e;
const char *channel;
for (e = channels_names; e != NULL; e = e->next)
free(e->data);
eina_list_free(channels_names);
EINA_LIST_FREE(channels_names, channel)
eina_stringshare_del(channel);
}
char *
const char *
e_mixer_system_get_default_channel_name(E_Mixer_System *self)
{
snd_mixer_elem_t *elem;
@ -390,7 +385,7 @@ e_mixer_system_get_default_channel_name(E_Mixer_System *self)
snd_mixer_selem_get_id(elem, sid);
name = snd_mixer_selem_id_get_name(sid);
if (name)
return strdup(name);
return eina_stringshare_add(name);
}
return NULL;
@ -429,23 +424,18 @@ e_mixer_system_channel_del(E_Mixer_Channel *channel)
{
}
char *
const char *
e_mixer_system_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel)
{
snd_mixer_selem_id_t *sid;
const char *n;
char *name;
const char *name;
if ((!self) || (!channel))
return NULL;
snd_mixer_selem_id_alloca(&sid);
snd_mixer_selem_get_id(channel, sid);
n = snd_mixer_selem_id_get_name(sid);
if (n)
name = strdup(n);
else
name = NULL;
name = eina_stringshare_add(snd_mixer_selem_id_get_name(sid));
return name;
}

View File

@ -2,12 +2,20 @@
#include <stdlib.h>
#include <string.h>
static const char _name[] = "dummy";
static const char *_name = NULL;
static void
_e_mixer_dummy_set(void)
{
if (!_name) _name = eina_stringshare_add("dummy");
}
E_Mixer_System *
e_mixer_system_new(const char *name)
{
if (strcmp(name, _name) == 0)
_e_mixer_dummy_set();
if (name == _name || strcmp(name, _name) == 0)
return (E_Mixer_System *)-1;
else
return NULL;
@ -27,6 +35,8 @@ e_mixer_system_callback_set(E_Mixer_System *self, int (*func)(void *data, E_Mixe
Eina_List *
e_mixer_system_get_cards(void)
{
_e_mixer_dummy_set();
return eina_list_append(NULL, _name);
}
@ -36,17 +46,21 @@ e_mixer_system_free_cards(Eina_List *cards)
eina_list_free(cards);
}
char *
const char *
e_mixer_system_get_default_card(void)
{
return strdup(_name);
_e_mixer_dummy_set();
return eina_stringshare_ref(_name);
}
char *
const char *
e_mixer_system_get_card_name(const char *card)
{
if (strcmp(card, _name) == 0)
return strdup(_name);
_e_mixer_dummy_set();
if (card == _name || strcmp(card, _name) == 0)
return eina_stringshare_ref(_name);
else
return NULL;
}
@ -66,6 +80,8 @@ e_mixer_system_free_channels(Eina_List *channels)
Eina_List *
e_mixer_system_get_channels_names(E_Mixer_System *self)
{
_e_mixer_dummy_set();
return eina_list_append(NULL, _name);
}
@ -75,16 +91,20 @@ e_mixer_system_free_channels_names(Eina_List *channels_names)
eina_list_free(channels_names);
}
char *
const char *
e_mixer_system_get_default_channel_name(E_Mixer_System *self)
{
return strdup(_name);
_e_mixer_dummy_set();
return eina_stringshare_ref(_name);
}
E_Mixer_Channel *
e_mixer_system_get_channel_by_name(E_Mixer_System *self, const char *name)
{
if (strcmp(name, _name) == 0)
_e_mixer_dummy_set();
if (name == _name || strcmp(name, _name) == 0)
return (E_Mixer_Channel *)-2;
else
return NULL;
@ -95,11 +115,11 @@ e_mixer_system_channel_del(E_Mixer_Channel *channel)
{
}
char *
const char *
e_mixer_system_get_channel_name(E_Mixer_System *self, E_Mixer_Channel *channel)
{
if (channel == (E_Mixer_Channel *)-2)
return strdup(_name);
return eina_stringshare_ref(_name);
else
return NULL;
}

View File

@ -43,7 +43,7 @@ const E_Intl_Pair basic_language_predefined_pairs[ ] = {
{ NULL, NULL, NULL }
};
static char *lang = NULL;
static const char *lang = NULL;
static Eina_List *blang_list = NULL;
static int
@ -179,9 +179,8 @@ wizard_page_hide(E_Wizard_Page *pg)
{
evas_object_del(pg->data);
/* special - language inits its stuff the moment it goes away */
if (e_config->language) eina_stringshare_del(e_config->language);
e_config->language = NULL;
if (lang) e_config->language = eina_stringshare_add(lang);
eina_stringshare_del(e_config->language);
e_config->language = eina_stringshare_ref(lang);
e_intl_language_set(e_config->language);
e_wizard_labels_update();
return 1;
@ -190,9 +189,8 @@ EAPI int
wizard_page_apply(E_Wizard_Page *pg)
{
// do this again as we want it to apply to the new profile
if (e_config->language) eina_stringshare_del(e_config->language);
e_config->language = NULL;
if (lang) e_config->language = eina_stringshare_add(lang);
eina_stringshare_del(e_config->language);
e_config->language = eina_stringshare_ref(lang);
e_intl_language_set(e_config->language);
e_wizard_labels_update();
return 1;

View File

@ -4,7 +4,7 @@
#include "e.h"
#include "e_mod_main.h"
static char *profile = NULL;
static const char *profile = NULL;
static Evas_Object *textblock = NULL;
static void

View File

@ -4,7 +4,7 @@
#include "e.h"
#include "e_mod_main.h"
static char *xdg_sel = NULL;
static const char *xdg_sel = NULL;
static Eina_List *menus = NULL;
static void
@ -198,11 +198,11 @@ EAPI int
wizard_page_apply(E_Wizard_Page *pg)
{
if ((xdg_sel) && (!strcmp("/etc/xdg/menus/applications.menu", xdg_sel)))
xdg_sel = NULL;
if (xdg_sel)
e_config->default_system_menu = eina_stringshare_add(xdg_sel);
else
e_config->default_system_menu = NULL;
{
eina_stringshare_del(xdg_sel);
xdg_sel = NULL;
}
e_config->default_system_menu = eina_stringshare_ref(xdg_sel);
efreet_menu_file_set(e_config->default_system_menu);
// FIXME: no normal config dialog to change this!
return 1;