e17: use GADCON_CLIENT_CONFIG_GET, remove old transitional code to remove config items without id

SVN revision: 63125
This commit is contained in:
Hannes Janetzek 2011-09-03 14:39:28 +00:00
parent ca3dd76636
commit 950f9cd729
3 changed files with 6 additions and 156 deletions

View File

@ -53,7 +53,6 @@ static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
static Eina_List *clock_instances = NULL;
static E_Action *act = NULL;
static int uuid = 0;
static Ecore_Timer *update_today = NULL;
static void
@ -679,21 +678,10 @@ _gc_id_new(E_Gadcon_Client_Class *client_class __UNUSED__)
static Config_Item *
_conf_item_get(const char *id)
{
Eina_List *l = NULL;
Config_Item *ci = NULL;
char buf[128];
Config_Item *ci;
GADCON_CLIENT_CONFIG_GET(Config_Item, clock_config->items, _gadcon_class, id);
if (!id)
{
snprintf(buf, sizeof(buf), "%s.%d", _gadcon_class.name, ++uuid);
id = buf;
}
else
{
uuid++;
EINA_LIST_FOREACH(clock_config->items, l, ci)
if ((ci->id) && (!strcmp(ci->id, id))) return ci;
}
ci = E_NEW(Config_Item, 1);
ci->id = eina_stringshare_add(id);
ci->weekend.start = 6;

View File

@ -115,8 +115,6 @@ static Eina_Bool _ibar_cb_config_icons(void *data, int ev_type, void *ev);
static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
static int uuid = 0;
Config *ibar_config = NULL;
static E_Gadcon_Client *
@ -436,27 +434,9 @@ static Config_Item *
_ibar_config_item_get(const char *id)
{
Config_Item *ci;
char buf[128];
if (!id)
{
snprintf(buf, sizeof(buf), "%s.%d", _gadcon_class.name, ++uuid);
id = buf;
}
else
{
const Eina_List *l;
GADCON_CLIENT_CONFIG_GET(Config_Item, ibar_config->items, _gadcon_class, id);
/* Find old config, or reuse supplied id */
EINA_LIST_FOREACH(ibar_config->items, l, ci)
{
if ((ci->id) && (!strcmp(ci->id, id)))
{
if (!ci->dir) ci->dir = eina_stringshare_add("default");
return ci;
}
}
}
ci = E_NEW(Config_Item, 1);
ci->id = eina_stringshare_add(id);
ci->dir = eina_stringshare_add("default");
@ -1205,57 +1185,6 @@ e_modapi_init(E_Module *m)
ci->eap_label = 0;
ibar_config->items = eina_list_append(ibar_config->items, ci);
}
else
{
Eina_List *removes = NULL;
const Eina_List *l;
Config_Item *ci;
EINA_LIST_FOREACH(ibar_config->items, l, ci)
{
if (!ci->id)
removes = eina_list_append(removes, ci);
else if (!ci->dir)
removes = eina_list_append(removes, ci);
else
{
const Eina_List *ll;
Config_Item *ci2;
EINA_LIST_FOREACH(l->next, ll, ci2)
{
if ((ci2->id) && (!strcmp(ci->id, ci2->id)))
{
removes = eina_list_append(removes, ci);
break;
}
}
}
}
EINA_LIST_FREE(removes, ci)
{
ibar_config->items = eina_list_remove(ibar_config->items, ci);
if (ci->id) eina_stringshare_del(ci->id);
if (ci->dir) eina_stringshare_del(ci->dir);
E_FREE(ci);
}
EINA_LIST_FOREACH(ibar_config->items, l, ci)
{
if (ci->id)
{
const char *p;
p = strrchr(ci->id, '.');
if (p)
{
int id;
id = atoi(p + 1);
if (id > uuid) uuid = id;
}
}
}
}
ibar_config->module = m;

View File

@ -117,8 +117,6 @@ static Config_Item *_ibox_config_item_get(const char *id);
static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
static int uuid = 0;
Config *ibox_config = NULL;
static E_Gadcon_Client *
@ -1229,25 +1227,10 @@ _ibox_cb_event_desk_show(void *data __UNUSED__, int type __UNUSED__, void *event
static Config_Item *
_ibox_config_item_get(const char *id)
{
Eina_List *l;
Config_Item *ci;
char buf[128];
if (!id)
{
snprintf(buf, sizeof(buf), "%s.%d", _gadcon_class.name, ++uuid);
id = buf;
}
else
{
/* Find old config */
for (l = ibox_config->items; l; l = l->next)
{
ci = l->data;
if ((ci->id) && (!strcmp(ci->id, id)))
return ci;
}
}
GADCON_CLIENT_CONFIG_GET(Config_Item, ibox_config->items, _gadcon_class, id);
ci = E_NEW(Config_Item, 1);
ci->id = eina_stringshare_add(id);
ci->show_label = 0;
@ -1343,56 +1326,6 @@ e_modapi_init(E_Module *m)
ci->icon_label = 0;
ibox_config->items = eina_list_append(ibox_config->items, ci);
}
else
{
Eina_List *removes = NULL;
Eina_List *l;
for (l = ibox_config->items; l; l = l->next)
{
Config_Item *ci = l->data;
if (!ci->id)
removes = eina_list_append(removes, ci);
else
{
Eina_List *ll;
for (ll = l->next; ll; ll = ll->next)
{
Config_Item *ci2 = ll->data;
if ((ci2->id) && (!strcmp(ci->id, ci2->id)))
{
removes = eina_list_append(removes, ci);
break;
}
}
}
}
while (removes)
{
Config_Item *ci = removes->data;
removes = eina_list_remove_list(removes, removes);
ibox_config->items = eina_list_remove(ibox_config->items, ci);
if (ci->id) eina_stringshare_del(ci->id);
free(ci);
}
for (l = ibox_config->items; l; l = l->next)
{
Config_Item *ci = l->data;
if (ci->id)
{
const char *p;
p = strrchr(ci->id, '.');
if (p)
{
int id;
id = atoi(p + 1);
if (id > uuid) uuid = id;
}
}
}
}
ibox_config->module = m;