e_conf_env: Display variable and assignment.

When setting a custom environment variable display the variable
name and the value in NAME=VALUE format within the UI list. If
the value string is long then use an ellipsis. Adds some clarity.
This commit is contained in:
Alastair Poole 2020-05-12 19:09:03 +01:00
parent 9cb83899b4
commit 8d72d36246
1 changed files with 44 additions and 25 deletions

View File

@ -147,6 +147,24 @@ _sel_cb(void *data)
e_widget_entry_text_set(cfdata->gui.val_en, "");
}
static const char *
_env_text(E_Config_Env_Var *evr)
{
static Eina_Slstr *text;
char *val;
val = strndup(evr->val, 64);
if (strlen(evr->val) > 64)
text = eina_slstr_printf("%s=%s...", evr->var, val);
else
text = eina_slstr_printf("%s=%s", evr->var, val);
free(val);
return text;
}
static void
_add_cb(void *data, void *data2 EINA_UNUSED)
{
@ -184,7 +202,7 @@ _add_cb(void *data, void *data2 EINA_UNUSED)
}
cfdata->env_vars = eina_list_append(cfdata->env_vars, evr);
e_widget_ilist_append(cfdata->gui.list, NULL,
evr->var, _sel_cb, cfdata, NULL);
_env_text(evr), _sel_cb, cfdata, NULL);
e_widget_ilist_go(cfdata->gui.list);
sel = e_widget_ilist_count(cfdata->gui.list) - 1;
e_widget_ilist_selected_set(cfdata->gui.list, sel);
@ -206,6 +224,7 @@ _add_cb(void *data, void *data2 EINA_UNUSED)
if (sel >= 0)
{
e_widget_ilist_selected_set(cfdata->gui.list, sel);
e_widget_ilist_nth_label_set(cfdata->gui.list, sel, _env_text(evr));
e_widget_ilist_nth_show(cfdata->gui.list, sel, 0);
}
}
@ -249,7 +268,7 @@ _del_cb(void *data, void *data2 EINA_UNUSED)
e_widget_ilist_freeze(cfdata->gui.list);
EINA_LIST_FOREACH(cfdata->env_vars, l, evr)
{
e_widget_ilist_append(cfdata->gui.list, NULL, evr->var,
e_widget_ilist_append(cfdata->gui.list, NULL, _env_text(evr),
_sel_cb, cfdata, NULL);
}
e_widget_ilist_go(cfdata->gui.list);
@ -288,7 +307,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_ilist_freeze(ol);
EINA_LIST_FOREACH(cfdata->env_vars, l, evr)
{
e_widget_ilist_append(ol, NULL, evr->var, _sel_cb, cfdata, NULL);
e_widget_ilist_append(ol, NULL, _env_text(evr), _sel_cb, cfdata, NULL);
}
e_widget_ilist_go(ol);
e_widget_ilist_thaw(ol);