diff --git a/src/modules/everything/Makefile.am b/src/modules/everything/Makefile.am index 9316f3aec..4b95600aa 100644 --- a/src/modules/everything/Makefile.am +++ b/src/modules/everything/Makefile.am @@ -21,7 +21,8 @@ pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ e_mod_main.h \ evry.c \ - evry.h \ + evry.h \ + evry_config.c \ evry_plug_config.c \ evry_plug_dir_browse.c \ evry_plug_apps.c \ diff --git a/src/modules/everything/e_mod_main.c b/src/modules/everything/e_mod_main.c index bfeea1865..dfb36fb4b 100644 --- a/src/modules/everything/e_mod_main.c +++ b/src/modules/everything/e_mod_main.c @@ -10,7 +10,7 @@ static int _e_mod_run_defer_cb(void *data); static void _e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_mod_menu_add(void *data, E_Menu *m); -static E_Module *conf_module = NULL; +/* static E_Module *conf_module = NULL; */ static E_Action *act = NULL; static E_Int_Menu_Augmentation *maug = NULL; @@ -67,7 +67,9 @@ e_modapi_init(E_Module *m) evry_conf->scroll_speed = 0.5; } - conf_module = m; + evry_conf->scroll_speed = 0.08; + + /* conf_module = m; */ evry_init(); evry_plug_config_init(); @@ -89,6 +91,9 @@ e_modapi_init(E_Module *m) maug = e_int_menus_menu_augmentation_add("main/1", _e_mod_menu_add, NULL, NULL, NULL); + e_configure_registry_category_add("advanced", 80, _("Advanced"), NULL, "preferences-advanced"); + e_configure_registry_item_add("advanced/run_everything", 40, _("Run Everything"), NULL, "system-run", evry_config_dialog); + e_module_delayed_set(m, 1); return m; @@ -97,6 +102,8 @@ e_modapi_init(E_Module *m) EAPI int e_modapi_shutdown(E_Module *m) { + E_Config_Dialog *cfd; + /* remove module-supplied menu additions */ if (maug) { @@ -120,7 +127,11 @@ e_modapi_shutdown(E_Module *m) evry_plug_calc_shutdown(); evry_shutdown(); - conf_module = NULL; + /* conf_module = NULL; */ + + while ((cfd = e_config_dialog_get("E", "_config_everything_dialog"))) e_object_del(E_OBJECT(cfd)); + e_configure_registry_item_del("advanced/run_everything"); + e_configure_registry_category_del("advanced"); /* Clean EET */ E_CONFIG_DD_FREE(conf_item_edd); diff --git a/src/modules/everything/e_mod_main.h b/src/modules/everything/e_mod_main.h index d6d213e05..a85c082a5 100644 --- a/src/modules/everything/e_mod_main.h +++ b/src/modules/everything/e_mod_main.h @@ -35,6 +35,8 @@ struct _Source_Config /* minimum input chars to query this source */ int min_query; + + int priority; }; @@ -45,6 +47,9 @@ EAPI void *e_modapi_init (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_save (E_Module *m); +EAPI E_Config_Dialog *evry_config_dialog(E_Container *con, const char *params); + + EAPI int evry_plug_apps_init(void); EAPI int evry_plug_apps_shutdown(void); diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 6950fa6df..6090ee598 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -45,7 +45,7 @@ static void _evry_update(void); static void _evry_list_clear(void); static void _evry_show_items(Evry_Plugin *plugin); static int _evry_update_timer(void *data); -static void _evry_matches_update(void); +static void _evry_matches_update(Evry_Plugin *cur_plugin); static void _evry_clear(void); static void _evry_item_next(void); static void _evry_item_prev(void); @@ -449,7 +449,7 @@ _evry_push_state(void) ev_last_is_mouse = 0; item_mouseover = NULL; - _evry_matches_update(); + _evry_matches_update(s->cur_plugin); return 1; } @@ -457,12 +457,17 @@ _evry_push_state(void) static int _evry_pop_state(void) { - Evry_State *s = cur_state; + Evry_State *s, *last_state; Evry_Plugin *p; Eina_List *l; if (!stack || !stack->next) return 0; + s = cur_state; + + stack = eina_list_remove_list(stack, stack); + last_state = stack->data; + _evry_list_clear(); free(s->input); @@ -472,22 +477,14 @@ _evry_pop_state(void) E_FREE(s); - stack = eina_list_remove_list(stack, stack); - if (stack) { Evry_Item *it = NULL; int i = 0; - s = stack->data; + s = last_state; cur_state = s; - if (s->cur_plugin && s->cur_plugin == action_selector) - { - _evry_pop_state(); - return 0; - } - edje_object_part_text_set(o_main, "e.text.label", s->input); if (s->sel_item) @@ -509,7 +506,9 @@ _evry_pop_state(void) if (p != s->cur_plugin && p->begin) p->begin(it); - _evry_matches_update(); + p = s->cur_plugin; + s->cur_plugin = NULL; + _evry_matches_update(p); it = eina_list_nth(s->cur_plugin->items, i); @@ -784,7 +783,7 @@ _evry_update(void) static int _evry_update_timer(void *data) { - _evry_matches_update(); + _evry_matches_update(cur_state->cur_plugin); update_timer = NULL; return 0; } @@ -870,6 +869,19 @@ _evry_show_items(Evry_Plugin *p) s->cur_plugin = p; s->cur_items = p->items; + if (scroll_timer) + { + ecore_timer_del(scroll_timer); + scroll_timer = NULL; + } + if (scroll_animator) + { + ecore_animator_del(scroll_animator); + scroll_animator = NULL; + } + + scroll_align = 0; + evas_event_freeze(popup->evas); e_box_freeze(o_list); @@ -922,7 +934,7 @@ _evry_show_items(Evry_Plugin *p) } static void -_evry_matches_update(void) +_evry_matches_update(Evry_Plugin *cur_plugin) { Evry_Plugin *p; Eina_List *l; @@ -946,20 +958,24 @@ _evry_matches_update(void) { s->cur_plugins = eina_list_append(s->cur_plugins, p); } - else if (p->tab) + } + + EINA_LIST_FOREACH(plugins, l, p) + { + if (p->tab && !eina_list_data_find(s->cur_plugins, p)) { evas_object_del(p->tab); p->tab = NULL; } } - + EINA_LIST_FOREACH(s->cur_plugins, l, p) _evry_plugin_selector_show(p); if (s->cur_plugins) { - if (s->cur_plugin && eina_list_data_find(s->cur_plugins, s->cur_plugin)) - _evry_show_items(s->cur_plugin); + if (cur_plugin && eina_list_data_find(s->cur_plugins, cur_plugin)) + _evry_show_items(cur_plugin); else _evry_show_items(s->cur_plugins->data); } @@ -1213,7 +1229,6 @@ _evry_scroll_timer(void *data) if (scroll_animator) { double spd; - spd = evry_conf->scroll_speed; scroll_align = (scroll_align * (1.0 - spd)) + (scroll_align_to * spd); return 1; @@ -1226,7 +1241,7 @@ static int _evry_animator(void *data) { double da; - int scroll_to = 1; + Eina_Bool scroll_to = 1; da = scroll_align - scroll_align_to; if (da < 0.0) da = -da; @@ -1333,6 +1348,8 @@ _evry_plug_act_select_fetch(const char *input) Evry_Action *act; Eina_List *l; + if (p->items) return 1; + EINA_LIST_FOREACH(actions, l, act) { Evry_Item *it; @@ -1377,6 +1394,12 @@ _evry_plug_act_select_cleanup(void) cur_state->cur_actions = NULL; p->items = NULL; + + if (p->tab) + { + evas_object_del(p->tab); + p->tab = NULL; + } } static void diff --git a/src/modules/everything/evry_config.c b/src/modules/everything/evry_config.c index e6e8d416b..1515b0fe7 100644 --- a/src/modules/everything/evry_config.c +++ b/src/modules/everything/evry_config.c @@ -2,6 +2,7 @@ #include "e_mod_main.h" #include "evry.h" +/* typedef struct _E_Config_Dialog_Data E_Config_Dialog_Data; */ static void *_create_data (E_Config_Dialog *cfd); static void _free_data (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); @@ -11,27 +12,14 @@ static Evas_Object *_basic_create_widgets (E_Config_Dialog *cfd, Evas *evas, struct _E_Config_Dialog_Data { - /* Basic */ - int max_exe_list; - int max_eap_list; - int max_hist_list; + int width, height; + int scroll_animate; - /* Advanced */ - double scroll_speed; - double pos_align_x; - double pos_align_y; - double pos_size_w; - double pos_size_h; - int pos_min_w; - int pos_min_h; - int pos_max_w; - int pos_max_h; - char *term_cmd; }; -E_Config_Dialog * -e_int_config_exebuf(E_Container *con, const char *params __UNUSED__) +EAPI E_Config_Dialog * +evry_config_dialog(E_Container *con, const char *params __UNUSED__) { E_Config_Dialog *cfd; E_Config_Dialog_View *v; @@ -55,23 +43,9 @@ e_int_config_exebuf(E_Container *con, const char *params __UNUSED__) static void _fill_data(E_Config_Dialog_Data *cfdata) { - /* Basic */ - cfdata->max_exe_list = e_config->exebuf_max_exe_list; - cfdata->max_eap_list = e_config->exebuf_max_eap_list; - cfdata->max_hist_list = e_config->exebuf_max_hist_list; - cfdata->scroll_animate = e_config->exebuf_scroll_animate; - /* Advanced */ - cfdata->scroll_speed = e_config->exebuf_scroll_speed; - cfdata->pos_align_x = e_config->exebuf_pos_align_x; - cfdata->pos_align_y = e_config->exebuf_pos_align_y; - cfdata->pos_size_w = e_config->exebuf_pos_size_w; - cfdata->pos_size_h = e_config->exebuf_pos_size_h; - cfdata->pos_min_w = e_config->exebuf_pos_min_w; - cfdata->pos_min_h = e_config->exebuf_pos_min_h; - cfdata->pos_max_w = e_config->exebuf_pos_max_w; - cfdata->pos_max_h = e_config->exebuf_pos_max_h; - if (e_config->exebuf_term_cmd) - cfdata->term_cmd = strdup(e_config->exebuf_term_cmd); + cfdata->scroll_animate = evry_conf->scroll_animate; + cfdata->height = evry_conf->height; + cfdata->width = evry_conf->width; } static void * @@ -87,19 +61,16 @@ _create_data(E_Config_Dialog *cfd) static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { - scroll_list = eina_list_free(scroll_list); - - E_FREE(cfdata->term_cmd); E_FREE(cfdata); } static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { - e_config->exebuf_max_exe_list = cfdata->max_exe_list; - e_config->exebuf_max_eap_list = cfdata->max_eap_list; - e_config->exebuf_max_hist_list = cfdata->max_hist_list; - e_config->exebuf_scroll_animate = cfdata->scroll_animate; + evry_conf->width = cfdata->width; + evry_conf->height = cfdata->height; + evry_conf->scroll_animate = cfdata->scroll_animate; + e_config_save_queue(); return 1; } @@ -112,19 +83,16 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("General Settings"), 0); - ob = e_widget_label_add(evas, _("Maximum Number of Matched Apps to List")); + ob = e_widget_label_add(evas, _("Popup Width")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 10, 50, 5, 0, NULL, &(cfdata->max_eap_list), 200); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 300, 800, 5, 0, NULL, &(cfdata->width), 200); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Maximum Number of Matched Exes to List")); + + ob = e_widget_label_add(evas, _("Popup Height")); e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 10, 50, 5, 0, NULL, &(cfdata->max_exe_list), 200); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 200, 800, 5, 0, NULL, &(cfdata->height), 200); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Maximum History to List")); - e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 10, 200, 5, 0, NULL, &(cfdata->max_hist_list), 200); - e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 1, 0.5); + e_widget_list_object_append(o, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, _("Scroll Settings"), 0); ob = e_widget_check_add(evas, _("Scroll Animate"), &(cfdata->scroll_animate));