From 09f77502c88ff8ac30dac777341473ed80c5ef3b Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 1 Jun 2010 16:51:46 +0000 Subject: [PATCH] now other plugins can be added to 'Start' SVN revision: 49375 --- src/modules/everything/evry_config.c | 64 +++++++++++++++------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/src/modules/everything/evry_config.c b/src/modules/everything/evry_config.c index 8154bd881..4eff3e8d8 100644 --- a/src/modules/everything/evry_config.c +++ b/src/modules/everything/evry_config.c @@ -344,7 +344,7 @@ _plugin_config_cb(void *data, void *data2) { Plugin_Page *page = data; Evry_Plugin *p = page->cur->plugin; - + if (!p) return; printf(" %s\n", p->name); @@ -636,7 +636,7 @@ evry_collection_conf_dialog(E_Container *con, const char *params) v->basic.apply_cfdata = _cat_basic_apply; snprintf(title, sizeof(title), "%s: %s", _("Everything Collection"), p->name); - + cfd = e_config_dialog_new(con, title, p->config_path, p->config_path, EVRY_ITEM(p)->icon, 0, v, p); @@ -650,10 +650,40 @@ _cat_create_data(E_Config_Dialog *cfd) { E_Config_Dialog_Data *cfdata = NULL; Evry_Plugin *p = cfd->data; - + Plugin_Config *pc, *pc2; + Eina_List *l, *ll; + cfdata = E_NEW(E_Config_Dialog_Data, 1); cfdata->page[0].collection = EINA_TRUE; + + EINA_LIST_FOREACH(evry_conf->conf_subjects, l, pc) + { + if (pc->name == p->name) + continue; + + if (!strcmp(pc->name, "All") || + !strcmp(pc->name, "Actions") || + !strcmp(pc->name, "Text") || + !strcmp(pc->name, "Calculator") || + !strcmp(pc->name, "Spell Checker") || + !strcmp(pc->name, "Plugins")) + continue; + + EINA_LIST_FOREACH(p->config->plugins, ll, pc2) + if (pc->name == pc2->name) + break; + + if (pc2) + continue; + + pc2 = E_NEW(Plugin_Config, 1); + pc2->name = eina_stringshare_ref(pc->name); + pc2->view_mode = VIEW_MODE_NONE; + p->config->plugins = eina_list_append(p->config->plugins, pc2); + } + cfdata->page[0].configs = eina_list_clone(p->config->plugins); + return cfdata; } @@ -675,7 +705,7 @@ _cat_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) if (p->config->plugins) eina_list_free(p->config->plugins); - + p->config->plugins = eina_list_clone(cfdata->page[0].configs); pc = cfdata->page[i].cur; @@ -702,32 +732,6 @@ _cat_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) return 1; } -static void -_cat_plugin_move(Eina_List *plugins, Evas_Object *list, int dir) -{ - int sel; - Eina_List *l1, *l2; - - sel = e_widget_ilist_selected_get(list); - - Plugin_Config *pc; - int prio = 0; - - l1 = eina_list_nth_list(plugins, sel); - l2 = eina_list_nth_list(plugins, sel + dir); - - if (!l1 || !l2) return; - pc = l1->data; - l1->data = l2->data; - l2->data = pc; - - _fill_list(plugins, list, 0); - e_widget_ilist_selected_set(list, sel + dir); - - EINA_LIST_FOREACH(plugins, l1, pc) - pc->priority = prio++; -} - static Evas_Object * _cat_basic_create_widgets(E_Config_Dialog *cfd, Evas *e, E_Config_Dialog_Data *cfdata) {