[EGIT] [tools/clouseau] master 01/01: Fix build with efl 1.22 release.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=af282ab41abb15a7073f7341ff42b795c15bd841 commit af282ab41abb15a7073f7341ff42b795c15bd841 Author: Mykyta Biliavskyi Date: Wed May 1 12:09:44 2019 +0300 Fix build with efl 1.22 release. Fixed using efl API accordingly to the latest changes. --- src/bin/clouseau_client.c | 19 ++- src/lib/clouseau_debug.c | 5 ++--- src/lib/extensions/objects_introspection/gui.c | 5 +++-- src/lib/extensions/profiling_viewer/CMakeLists.txt | 4 ++-- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/bin/clouseau_client.c b/src/bin/clouseau_client.c index 499cc21..b216aa5 100644 --- a/src/bin/clouseau_client.c +++ b/src/bin/clouseau_client.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -539,15 +540,15 @@ _dialog_box_create(const char *title, const char *content, const char *but1_str, Eo *win, *bx, *lb; win = efl_add(EFL_UI_WIN_CLASS, _main_widgets->main_win, - efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC), + efl_ui_win_type_set(efl_added, ELM_WIN_DIALOG_BASIC), efl_ui_win_autodel_set(efl_added, EINA_TRUE), efl_text_set(efl_added, title), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); bx = efl_add(EFL_UI_BOX_CLASS, win, efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL), - efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, EFL_GFX_SIZE_HINT_EXPAND), - efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, EFL_GFX_SIZE_HINT_FILL), + efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); efl_content_set(win, bx); @@ -555,8 +556,8 @@ _dialog_box_create(const char *title, const char *content, const char *but1_str, efl_text_multiline_set(efl_added, EINA_TRUE), efl_text_halign_set(efl_added, 0.5), efl_text_set(efl_added, content), - efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, EFL_GFX_SIZE_HINT_EXPAND), - efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, EFL_GFX_SIZE_HINT_FILL), + efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); efl_pack(bx, lb); @@ -565,8 +566,8 @@ _dialog_box_create(const char *title, const char *content, const char *but1_str, Eo *bx2; bx2 = efl_add(EFL_UI_BOX_CLASS, win, efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL), - efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, EFL_GFX_SIZE_HINT_EXPAND), - efl_gfx_size_hint_align_set(efl_added, EFL_GFX_SIZE_HINT_FILL, EFL_GFX_SIZE_HINT_FILL), + efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); efl_pack(bx, bx2); @@ -574,7 +575,7 @@ _dialog_box_create(const char *title, const char *content, const char *but1_str, { Eo *bt1 = efl_add(EFL_UI_BUTTON_CLASS, bx2, efl_text_set(efl_added, but1_str), - efl_gfx_size_hint_weight_set(efl_added, 0, 0), + efl_gfx_hint_weight_set(efl_added, 0, 0), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); if (cb1) efl_event_callback_add(bt1, EFL_UI_EVENT_CLICKED, cb1, win); efl_pack(bx2, bt1); @@ -583,7 +584,7 @@ _dialog_box_create(const char *title, const char *content, const char *but1_str, { Eo *bt2 = efl_add(EFL_UI_BUTTON_CLASS, bx2, efl_text_set(efl_added, but2_str), - efl_gfx_size_hint_weight_set(efl_added, 0, 0), + efl_gfx_hint_weight_set(efl_added, 0, 0), efl_gfx_entity_visible_set(efl_added, EINA_TRUE)); if (cb2) efl_event_callback_add(bt2, EFL_UI_EVENT_CLICKED, cb2, win); efl_pack(bx2, bt2); diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c index 8d41ca5..be691f7 100644 --- a/src/lib/clouseau_debug.c +++ b/src/lib/clouseau_debug.c @@ -9,7 +9,6 @@ #include #include #define ELM_INTERNAL_API_ARGESFSDFEFC -#include #include "Clouseau_Debug.h" @@ -338,7 +337,7 @@ _function_invoke(Eo *ptr, const Eolian_Function *foo, Eolian_Function_Type foo_t ffi_argc--; } - const char *full_func_name = eolian_function_full_c_name_get(foo, EOLIAN_PROP_GE
[EGIT] [admin/devs] master 01/01: NikaWhite: Add a new key for home
nikawhite pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=0bf0294eb5d5eea23f67b5710887b8fdc12bcd12 commit 0bf0294eb5d5eea23f67b5710887b8fdc12bcd12 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Dec 29 10:54:37 2017 +0200 NikaWhite: Add a new key for home + update info.txt --- developers/nikawhite/id_rsa_home.pub | 1 + developers/nikawhite/info.txt| 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/developers/nikawhite/id_rsa_home.pub b/developers/nikawhite/id_rsa_home.pub new file mode 100644 index 000..ddc229d --- /dev/null +++ b/developers/nikawhite/id_rsa_home.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EDAQABAAACAQDRfKuc8lGKWGPRXVVH4rovO+yAqG0JbgpyAeUdS+AxFUByvDnXxGzVXDOMp6WwuemUIUD+R2TC55xwmy7J7rkmGm10cyZUvQfbpJXszxjlGYRO65DWy4N8NPHogWkm2KiWBsTgY6T8X8H5fFA1GVrejM3My2DwPK7TtpHwX1LDctwxJxKD8ebFRyKx+BNgHVLkXatFj96xk1x5SVt2gN5WyhEMSCNQmG5jHG2+4xEkAXiu2I/2R2IGdwlqm0+f8nnoS8wd9RLBp+1ZAsWIB8yTjzs+Zvdmf5s/bUHDnYjKdy4cnMMXkx9cNMFMcNXvyb+kBlOeGhJy+WbzJmoaYNLL/jILYF67jrUQWeU6TZowC2OEJTAzD9L54wSp0gOtbahiiVZ6EwBBfGhZaOE4R8dEzkCjs8Yw5R2OJCZ7hYjsWIs1dED3/7zIgiaMVrk8VyjOs6yW [...] diff --git a/developers/nikawhite/info.txt b/developers/nikawhite/info.txt index 74d6ecf..476ac6c 100644 --- a/developers/nikawhite/info.txt +++ b/developers/nikawhite/info.txt @@ -1,10 +1,10 @@ Login:nikawhite -IRC Nick: nikawhite +IRC Nick: NikaWhite Cloak:developer/nikawhite Name: Mykyta Biliavskyi Location: Kiev, Ukraine GeoData: 50.43912 30.496453 E-Mail: belyavski...@gmail.com -Managing: efl edje theme editor (eflete) -Contributing: efl +Managing: efl profiling viewer +Contributing: efl, eflete, clouseau, enventor Platform: Arch (Linux) --
[EGIT] [tools/clouseau] master 01/01: Profiling Viewer: improve UI.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=cfcf900910f7f899746043c818ebbf13b8b7e622 commit cfcf900910f7f899746043c818ebbf13b8b7e622 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Dec 22 13:56:06 2017 +0200 Profiling Viewer: improve UI. Summary: Due to latest changes in Profiling Viewer project the UI was updated. Added toolbar with next buttons: - Start/stop processing data from eina_debug. - Update displayed interval by latest received data. - Open filters dialog window. - Open find dialog window . - Open time range dialog window. - Open preference window (disable until not merged into Profiling Viewer project master branch.) Reviewers: Deepwarrior, i.furs Reviewed By: Deepwarrior Tags: PHID-PROJ-r7aoq2gq7sou6dugjj5o, #clouseau Maniphest Tasks: T6348 Differential Revision: https://phab.enlightenment.org/D5443 --- src/lib/extensions/profiling_viewer/main.c | 285 + 1 file changed, 247 insertions(+), 38 deletions(-) diff --git a/src/lib/extensions/profiling_viewer/main.c b/src/lib/extensions/profiling_viewer/main.c index 293ea20..fe786e9 100644 --- a/src/lib/extensions/profiling_viewer/main.c +++ b/src/lib/extensions/profiling_viewer/main.c @@ -8,17 +8,25 @@ typedef enum { - STREAM_STOPPED = 0, - STREAM_PROCESSING, - STREAM_PAUSED + STREAM_PAUSED = 0, + STREAM_PROCESSING } CLOUSEAU_PROFILER_STATUS; typedef struct { Evas_Object *profiler; Ecore_Timer *record_get_timer; + CLOUSEAU_PROFILER_STATUS status; /*<< 0 - stopped, 1 - processing, 2 - paused */ struct { -CLOUSEAU_PROFILER_STATUS status; /*<< 0 - stopped, 1 - processing, 2 - paused */ - } stream; +Evas_Object *obj; +Evas_Object *status_btn; +Evas_Object *follow_btn; +Evas_Object *filters_btn; +Evas_Object *find_btn; +Evas_Object *time_range_btn; +Evas_Object *setting_btn; + } toolbar; + Eina_Bool follow; + Eina_Bool block_processed; } Inf; static int _clouseau_profiling_extension_log_dom = 0; @@ -28,6 +36,7 @@ static int _record_off_op = EINA_DEBUG_OPCODE_INVALID; static int _record_get_op = EINA_DEBUG_OPCODE_INVALID; static Eina_Bool _record_get_cb(Eina_Debug_Session *, int, void *, int); +static void _follow_interval_status_change_cb(void *data, Evas_Object *obj, void *event_info); EINA_DEBUG_OPCODES_ARRAY_DEFINE(_ops, {"CPU/Freq/on", &_record_on_op, NULL}, @@ -36,7 +45,6 @@ EINA_DEBUG_OPCODES_ARRAY_DEFINE(_ops, {NULL, NULL, NULL} ); - EAPI const char * extension_name_get() { @@ -52,18 +60,6 @@ _record_request_cb(void *data) } static void -_stream_processing_pause_cb(void *data, -Evas_Object *obj EINA_UNUSED, -void *event_info EINA_UNUSED) -{ - Clouseau_Extension *ext = data; - Inf *inf = ext->data; - - eina_debug_session_send(ext->session, ext->app_id, _record_off_op, NULL, 0); - ecore_timer_del(inf->record_get_timer); -} - -static void _stream_processing_resume_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -79,21 +75,10 @@ _stream_processing_resume_cb(void *data, static void _session_changed(Clouseau_Extension *ext) { - Inf *inf = ext->data; int i = 0; Eina_Debug_Opcode *ops = _ops(); + Inf *inf = ext->data; - switch (inf->stream.status) - { - case STREAM_PROCESSING: - evas_object_smart_callback_call(inf->profiler, "stream,processing,pause", NULL); - break; - case STREAM_PAUSED: - case STREAM_STOPPED: - default: - evas_object_smart_callback_call(inf->profiler, "stream,processing,resume", NULL); - - } EINA_LOG_DOM_DBG(_clouseau_profiling_extension_log_dom, "Session changed"); while (ops[i].opcode_name) @@ -101,12 +86,24 @@ _session_changed(Clouseau_Extension *ext) if (ops[i].opcode_id) *(ops[i].opcode_id) = EINA_DEBUG_OPCODE_INVALID; i++; } + if (ext->session) { eina_debug_session_data_set(ext->session, ext); eina_debug_opcodes_register(ext->session, ops, NULL, NULL); } + /*disable controls on toolbar */ + elm_object_disabled_set(inf->toolbar.status_btn, EINA_TRUE); + elm_object_disabled_set(inf->toolbar.follow_btn, EINA_TRUE); + + if (!inf->block_processed) + { +elm_object_disabled_set(inf->toolbar.filters_btn, EINA_TRUE); +elm_object_disabled_set(inf->toolbar.time_range_btn, EINA_TRUE); +elm_object_disabled_set(inf->toolbar.find_btn, EINA_TRUE); + } + return; } @@ -114,8 +111,19 @@ static void _app_changed(Clouseau_Ext
[EGIT] [tools/clouseau] master 01/01: Eolian api usage fix.
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=318ee74c88eee347eeac9da237af5b562c908b1e commit 318ee74c88eee347eeac9da237af5b562c908b1e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Sun Dec 10 21:03:48 2017 + Eolian api usage fix. Summary: All eolian API's require to use Eolian object. The object introspection still doesn't works for me. At least clouseau is compiling now. Test Plan: Compile Clouseau with git efl. Reviewers: ajwillia.ms, JackDanielZ, Deepwarrior, i.furs Reviewed By: ajwillia.ms Differential Revision: https://phab.enlightenment.org/D5632 --- src/lib/clouseau_debug.c| 8 ++-- src/lib/extensions/objects_introspection/main.c | 5 - 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c index fb2d814..968e2ed 100644 --- a/src/lib/clouseau_debug.c +++ b/src/lib/clouseau_debug.c @@ -186,6 +186,7 @@ _class_find_by_name(const char *eo_klname, const Eolian_Unit **unit) return info->kl; } + Eolian *eos = eolian_new(); char *klname = strdup(eo_klname); Eina_Strbuf *buf = eina_strbuf_new(); @@ -195,7 +196,7 @@ _class_find_by_name(const char *eo_klname, const Eolian_Unit **unit) char *tmp = eina_strbuf_string_steal(buf); eina_strbuf_free(buf); eina_str_tolower(); - *unit = eolian_file_parse(tmp); + *unit = eolian_file_parse(eos, tmp); free(tmp); tmp = klname; @@ -218,6 +219,7 @@ end: eina_hash_set(_eolian_kls_hash, eo_klname, info); } free(klname); + eolian_free(eos); return kl; } @@ -1078,13 +1080,15 @@ clouseau_debug_init(void) eolian_init(); evas_init(); + Eolian *eos = eolian_new(); _eolian_kls_hash = eina_hash_string_superfast_new(NULL); - eolian_system_directory_scan(); + eolian_system_directory_scan(eos); eina_debug_opcodes_register(NULL, _debug_ops(), NULL, NULL); printf("%s - In\n", __FUNCTION__); + eolian_free(eos); return EINA_TRUE; } diff --git a/src/lib/extensions/objects_introspection/main.c b/src/lib/extensions/objects_introspection/main.c index cea4201..f590675 100644 --- a/src/lib/extensions/objects_introspection/main.c +++ b/src/lib/extensions/objects_introspection/main.c @@ -1161,6 +1161,8 @@ extension_start(Clouseau_Extension *ext, Eo *parent) eina_init(); eolian_init(); + Eolian *eos = eolian_new(); + ext->data = inst; ext->session_changed_cb = _session_changed; @@ -1175,11 +1177,12 @@ extension_start(Clouseau_Extension *ext, Eo *parent) memset(&(inst->snapshot), 0, sizeof(inst->snapshot)); - eolian_directory_scan(EOLIAN_EO_DIR); + eolian_directory_scan(eos, EOLIAN_EO_DIR); _config_load(ext); ext->ui_object = _ui_get(ext, parent); + eolian_free(eos); return !!ext->ui_object; } --
[EGIT] [tools/clouseau] master 01/01: Client: delete extensions on close application.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=0130202924dba6c1205e50d2416f62ff7415028e commit 0130202924dba6c1205e50d2416f62ff7415028e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Dec 8 10:14:23 2017 +0200 Client: delete extensions on close application. Summary: The Profiling viewer extension require to be notifyed that clouseau_client is closing. Another extensions also could require to make some routine before extension will be closed. Such as storing session info etc . Reviewers: i.furs, JackDanielZ, Deepwarrior Reviewed By: JackDanielZ, Deepwarrior Differential Revision: https://phab.enlightenment.org/D5608 --- src/bin/clouseau_client.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/bin/clouseau_client.c b/src/bin/clouseau_client.c index 4b60b99..9b6ccd3 100644 --- a/src/bin/clouseau_client.c +++ b/src/bin/clouseau_client.c @@ -935,6 +935,14 @@ save_load_perform(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev else _fs_activate(EINA_FALSE); } +static void +_main_window_del(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + _all_extensions_delete(); +} + EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { @@ -999,6 +1007,8 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); _main_widgets = gui_main_win_create(NULL); + evas_object_smart_callback_add(_main_widgets->main_win, "delete,request", + _main_window_del, NULL); for (i = 0; i < LAST_CONNECTION; i++) { --
[EGIT] [core/efl] master 01/01: Edje edit: remove color generate from SPACER source.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e8138ee7b5d664dad148970988fd9fe904e74dfd commit e8138ee7b5d664dad148970988fd9fe904e74dfd Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Apr 29 11:25:41 2016 +0300 Edje edit: remove color generate from SPACER source. It is possible situation when SPACER structure has colors values. For example: group { name: "abc"; parts { part { name: "rect"; type: RECT; description { "default" 0.0; color: 7 7 7 255; } } } } group { name:"abc_2"; inherit: "abc"; parts { part { name: "rect"; type: SPACER; } } } To avoid failing compilation of generated source code, need avoid generate color source code for a SPACER part. --- src/lib/edje/edje_edit.c | 25 ++--- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 7739521..e97c44f 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -13263,17 +13263,20 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s if (pd->aspect.prefer) BUF_APPENDF(I5 "aspect_preference: %s;\n", prefers[(int)pd->aspect.prefer]); - if (pd->color_class) - BUF_APPENDF(I5 "color_class: \"%s\";\n", pd->color_class); - - if (pd->color.r != 255 || pd->color.g != 255 || - pd->color.b != 255 || pd->color.a != 255) - BUF_APPENDF(I5 "color: %d %d %d %d;\n", - pd->color.r, pd->color.g, pd->color.b, pd->color.a); - if (pd->color2.r != 0 || pd->color2.g != 0 || - pd->color2.b != 0 || pd->color2.a != 255) - BUF_APPENDF(I5 "color2: %d %d %d %d;\n", - pd->color2.r, pd->color2.g, pd->color2.b, pd->color2.a); + if (rp->part->type != EDJE_PART_TYPE_SPACER) + { +if (pd->color_class) + BUF_APPENDF(I5 "color_class: \"%s\";\n", pd->color_class); + +if (pd->color.r != 255 || pd->color.g != 255 || +pd->color.b != 255 || pd->color.a != 255) + BUF_APPENDF(I5 "color: %d %d %d %d;\n", + pd->color.r, pd->color.g, pd->color.b, pd->color.a); +if (pd->color2.r != 0 || pd->color2.g != 0 || +pd->color2.b != 0 || pd->color2.a != 255) + BUF_APPENDF(I5 "color2: %d %d %d %d;\n", + pd->color2.r, pd->color2.g, pd->color2.b, pd->color2.a); + } if (rp->part->type == EDJE_PART_TYPE_TEXT || rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) --
[EGIT] [tools/eflete] master 05/06: Ewe theme: ellipsis text in combobox style for colorclass.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e097129002c7976f547a276cbcefe30ec3f51932 commit e097129002c7976f547a276cbcefe30ec3f51932 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Apr 27 09:07:57 2016 +0300 Ewe theme: ellipsis text in combobox style for colorclass. @fix T3551 --- data/themes/ewe/widgets/combobox.edc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/themes/ewe/widgets/combobox.edc b/data/themes/ewe/widgets/combobox.edc index daf2060..b1a8a72 100644 --- a/data/themes/ewe/widgets/combobox.edc +++ b/data/themes/ewe/widgets/combobox.edc @@ -372,13 +372,14 @@ group { name: "ewe/combobox/base/color_class"; rel2 { relative: 0.0 1.0; offset: -7 -1; - to_x: "bg.color3"; + to_x: "bg.color1"; to_y: "base"; } text { font: "PT"; size: 12; - max: 1 1; + max: 0 1; + align: 0.0 0.5; } } } --
[EGIT] [core/efl] master 01/01: Edje edit: improve state code generation.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1fce61caa1cb9514b91d030be0e1264c44c commit b1fce61caa1cb9514b91d030be0e1264c44c Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Apr 26 18:08:23 2016 +0300 Edje edit: improve state code generation. Split function _edje_generate_source_of_state into separated smallest functions, that represent generation of source code for different blocks. List of added internal functions: - _edje_generate_source_state_map - _edje_generate_source_state_box - _edje_generate_source_state_table - _edje_generate_source_state_image - _edje_generate_source_state_proxy - _edje_generate_source_state_relative Add support collapse blocks, in cases when block contain only one attribute. For example: next EDC code description { state: "default"; { rel1 { relative: 0.5 0; } } now will be replaced by: description { state: "default"; { rel1.relative: 0.5 0; } --- src/lib/edje/edje_edit.c | 1044 +++--- 1 file changed, 710 insertions(+), 334 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index cfd06ce..806ca8e 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -11887,12 +11887,705 @@ _edje_source_with_double_values_append(const char *param_name, char val_num, dou eina_strbuf_free(string); } +static void +_edje_generate_source_state_relative(Edje *ed, Edje_Part_Description_Common *pd, Eina_Strbuf *buf) +{ + + Eina_Bool ret = EINA_TRUE; + int attr_amount = 0; + int indent_space = strlen(I6); + + attr_amount += ((pd->rel1.relative_x == 0) && (pd->rel1.relative_y == 0)) ? 0 : 1; + attr_amount += ((pd->rel1.offset_x == 0) && (pd->rel1.offset_y == 0)) ? 0 : 1; + if ((pd->rel1.id_x != -1) || (pd->rel1.id_y != -1)) + { +if ((pd->rel1.id_x == -1 && pd->rel1.id_y != -1) || +(pd->rel1.id_x != -1 && pd->rel1.id_y == -1) || +(pd->rel1.id_x == pd->rel1.id_y)) + { + attr_amount++; + } +else + { + attr_amount += 2; + } + } + + indent_space = strlen(I6); + if (attr_amount == 1) + indent_space = 0; + + //Rel1 + if (attr_amount) + { +if (attr_amount > 1) + BUF_APPEND(I5 "rel1 {\n"); +else + BUF_APPEND(I5 "rel1."); + +if (pd->rel1.relative_x != 0 || pd->rel1.relative_y != 0) + { + char relative[strlen("relative") + indent_space + 1]; + snprintf(relative, strlen("relative") + indent_space + 1, + "%*srelative", indent_space, ""); + _edje_source_with_double_values_append(relative, 2, + TO_DOUBLE(pd->rel1.relative_x), + TO_DOUBLE(pd->rel1.relative_y), + buf, ); + } + +if (pd->rel1.offset_x != 0 || pd->rel1.offset_y != 0) + BUF_APPENDF("%*soffset: %d %d;\n", indent_space, "", + pd->rel1.offset_x, pd->rel1.offset_y); + +if (pd->rel1.id_x != -1 && pd->rel1.id_x == pd->rel1.id_y) + { +BUF_APPENDF("%*sto: \"%s\";\n", indent_space, "", +ed->table_parts[pd->rel1.id_x]->part->name); + } +else + { + if (pd->rel1.id_x != -1) + BUF_APPENDF("%*sto_x: \"%s\";\n", indent_space, "", + ed->table_parts[pd->rel1.id_x]->part->name); + + if (pd->rel1.id_y != -1) + BUF_APPENDF("%*sto_y: \"%s\";\n", indent_space, "", + ed->table_parts[pd->rel1.id_y]->part->name); + } + +if (attr_amount > 1) + BUF_APPEND(I5 "}\n"); + } + + + attr_amount = 0; + attr_amount += ((pd->rel2.relative_x == 1) && (pd->rel2.relative_y == 1)) ? 0 : 1; + attr_amount += ((pd->rel2.offset_x == -1) && (pd->rel2.offset_y == -1)) ? 0 : 1; + if ((pd->rel2.id_x != -1) || (pd->rel2.id_y != -1)) + { +if ((pd->rel2.id_x == -1 && pd->rel2.id_y != -1) || +(pd->rel2.id_x != -1 && pd->rel2.id_y == -1) || +(pd->rel2.id_x == pd->rel2.id_y)) + { + attr_amount++; + } +else +
[EGIT] [tools/eflete] master 03/23: Project manager: fix export resources.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=a1030ee57739ce5c91f3a0c63ca722e49d6d7341 commit a1030ee57739ce5c91f3a0c63ca722e49d6d7341 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Apr 19 17:55:36 2016 +0300 Project manager: fix export resources. Support directories in resource names. (Like "O/image.png"). Correct export font and sound files. @fix --- src/bin/project_manager/project_manager.c | 25 + 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/bin/project_manager/project_manager.c b/src/bin/project_manager/project_manager.c index 978f7ae..59ec058 100644 --- a/src/bin/project_manager/project_manager.c +++ b/src/bin/project_manager/project_manager.c @@ -1084,7 +1084,7 @@ _sound_resources_load(Project *project) snd_proc, snd_total, sound_file); res = mem_calloc(1, sizeof(External_Resource)); -res->name = eina_stringshare_add(sound_name); +res->name = eina_stringshare_add(sound_file); res->source = eina_stringshare_printf("%s/%s", resource_folder, sound_file); project->sounds = eina_list_sorted_insert(project->sounds, (Eina_Compare_Cb) resource_cmp, res); @@ -1152,7 +1152,7 @@ _font_resources_load(Project *project) fnt_proc, fnt_total, font_file); res = mem_calloc(1, sizeof(External_Resource)); -res->name = eina_stringshare_add(font_name); +res->name = eina_stringshare_add(font_file); res->source = eina_stringshare_printf("%s/%s", resource_folder, font_file); project->fonts = eina_list_sorted_insert(project->fonts, (Eina_Compare_Cb) resource_cmp, res); @@ -1285,13 +1285,21 @@ _external_resources_export(Eina_List *resources, const char *dst) Eina_Strbuf *buf; Eina_List *l; External_Resource *res; + char *path; buf = eina_strbuf_new(); EINA_LIST_FOREACH(resources, l, res) { eina_strbuf_append_printf(buf, "%s/%s", dst, res->name); +path = ecore_file_dir_get(eina_strbuf_string_get(buf)); +if (!ecore_file_is_dir(path)) + { + ecore_file_mkpath(path); + } ecore_file_cp(res->source, eina_strbuf_string_get(buf)); eina_strbuf_reset(buf); +free(path); +path = NULL; } eina_strbuf_free(buf); } @@ -1302,6 +1310,7 @@ _external_resource_export(Eina_List *resources, Eina_Stringshare *name, const ch Eina_Strbuf *buf; Eina_List *l; External_Resource *res; + char *path; buf = eina_strbuf_new(); EINA_LIST_FOREACH(resources, l, res) @@ -1309,8 +1318,14 @@ _external_resource_export(Eina_List *resources, Eina_Stringshare *name, const ch if (name == res->name) { eina_strbuf_append_printf(buf, "%s/%s", dst, res->name); + path = ecore_file_dir_get(eina_strbuf_string_get(buf)); + if (!ecore_file_is_dir(path)) + { + ecore_file_mkpath(path); + } ecore_file_cp(res->source, eina_strbuf_string_get(buf)); eina_strbuf_reset(buf); + free(path); break; } } @@ -1385,9 +1400,11 @@ _group_source_code_export(void *data, Eina_Thread *thread __UNUSED__) EINA_LIST_FOREACH(part->states, ls, state) { resource = edje_edit_state_font_get(group->edit_object, part->name, state->parsed_name, state->parsed_val); - PROGRESS_SEND(_("Export font '%s'"), resource); - _external_resource_export(worker.project->fonts, resource, eina_strbuf_string_get(buf)); + Eina_Stringshare *font_res = edje_edit_font_path_get(group->edit_object, resource); + PROGRESS_SEND(_("Export font '%s'"), font_res); + _external_resource_export(worker.project->fonts, font_res, eina_strbuf_string_get(buf)); eina_stringshare_del(resource); + eina_stringshare_del(font_res); } } } --
[EGIT] [core/efl] master 02/03: Edje edit: add new program actions into code generate function.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2006c01c06fe2d0642d5ec8787513527f6b298d8 commit 2006c01c06fe2d0642d5ec8787513527f6b298d8 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Apr 19 14:06:40 2016 +0300 Edje edit: add new program actions into code generate function. Generate edc source code for next action types: - EDJE_ACTION_TYPE_FOCUS_SET - EDJE_ACTION_TYPE_FOCUS_OBJECT - EDJE_ACTION_TYPE_PARAM_COPY - EDJE_ACTION_TYPE_PARAM_SET --- src/lib/edje/edje_edit.c | 49 ++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 542b692..aeba548 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -11558,6 +11558,7 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str Edje_Program *epr; int tweenmode = 0; + GET_ED_OR_RETURN(EINA_FALSE); GET_EED_OR_RETURN(EINA_FALSE); epr = _edje_program_get_byname(obj, program); @@ -11565,14 +11566,16 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str BUF_APPENDF(I3 "program { name: \"%s\";\n", program); /* Signal */ - if ((s = eina_stringshare_add(epr->signal))) + s = eina_stringshare_add(epr->signal); + if ((s != NULL) && (strcmp(s, ""))) { BUF_APPENDF(I4 "signal: \"%s\";\n", s); edje_edit_string_free(s); } /* Source */ - if ((s = eina_stringshare_add(epr->source))) + s = eina_stringshare_add(epr->source); + if ((s != NULL) && (strcmp(s, ""))) { BUF_APPENDF(I4 "source: \"%s\";\n", s); edje_edit_string_free(s); @@ -11696,6 +11699,48 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str break; } + case EDJE_ACTION_TYPE_FOCUS_SET: + { + BUF_APPEND(I4 "action: FOCUS_SET;\n"); + break; + } + + case EDJE_ACTION_TYPE_FOCUS_OBJECT: + { + BUF_APPEND(I4 "action: FOCUS_OBJECT;\n"); + break; + } + + case EDJE_ACTION_TYPE_PARAM_COPY: + { + Edje_Real_Part *src_part, *dst_part; + + src_part = ed->table_parts[epr->param.src % ed->table_parts_size]; + dst_part = ed->table_parts[epr->param.dst % ed->table_parts_size]; + + if (!src_part || !dst_part) break; + + BUF_APPEND(I4 "action: PARAM_COPY "); + BUF_APPENDF("\"%s\" \"%s\" \"%s\" \"%s\";\n", + src_part->part->name, epr->state, + dst_part->part->name, epr->state2); + break; + } + + case EDJE_ACTION_TYPE_PARAM_SET: + { + Edje_Real_Part *part; + + part = ed->table_parts[epr->param.dst % ed->table_parts_size]; + + if (!part) break; + + BUF_APPEND(I4 "action: PARAM_SET "); + BUF_APPENDF("\"%s\" \"%s\" \"%s\";\n", + part->part->name, epr->state, epr->state2); + break; + } + default: break; } --
[EGIT] [core/efl] master 03/03: Edje edit: fix aspect_preference value into generate code function.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b63b00c1b8c8b07401b47660f6966429dbbae73b commit b63b00c1b8c8b07401b47660f6966429dbbae73b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Apr 19 14:19:53 2016 +0300 Edje edit: fix aspect_preference value into generate code function. Add value "SOURCE" as one of possible values for aspect_preference attributes. @fix --- src/lib/edje/edje_edit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index aeba548..7c4c5e1 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -11079,7 +11079,7 @@ edje_edit_script_error_list_get(Evas_Object *obj) static const char *types[] = {"NONE", "RECT", "TEXT", "IMAGE", "SWALLOW", "TEXTBLOCK", "GRADIENT", "GROUP", "BOX", "TABLE", "EXTERNAL", "PROXY", "SPACER"}; static const char *effects[] = {"NONE", "PLAIN", "OUTLINE", "SOFT_OUTLINE", "SHADOW", "SOFT_SHADOW", "OUTLINE_SHADOW", "OUTLINE_SOFT_SHADOW", "FAR_SHADOW", "FAR_SOFT_SHADOW", "GLOW"}; static const char *shadow_direction[] = {"BOTTOM_RIGHT", "BOTTOM", "BOTTOM_LEFT", "LEFT", "TOP_LEFT", "TOP", "TOP_RIGHT", "RIGHT"}; -static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH"}; +static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH", "SOURCE"}; static const char *entry_mode[] = {"NONE", "PLAIN", "EDITABLE", "PASSWORD"}; static const char *aspect_mode[] = {"NONE", "NEITHER", "HORIZONTAL", "VERTICAL", "BOTH"}; --
[EGIT] [core/efl] master 01/03: Edje edit: fix get list of program tagrets.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e634a7cc86db49fb8a1721776a5fc0174db68875 commit e634a7cc86db49fb8a1721776a5fc0174db68875 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Apr 18 16:46:39 2016 +0300 Edje edit: fix get list of program tagrets. Correct support all types of program actions for constructing list of targets. There are 3 group of actions, that related to targets: - Does not support targets at all. - Support only parts as targets. - ACTION_STOP, that supported parts and other programs as targtes. @fix --- src/lib/edje/edje_edit.c | 66 +++- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 995a403..542b692 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -10153,28 +10153,60 @@ _edje_program_targets_get(Evas_Object *obj, Edje_Program *epr) GET_ED_OR_RETURN(NULL); - //printf("GET TARGETS for program: %s [count: %d]\n", prog, eina_list_count(epr->targets)); EINA_LIST_FOREACH(epr->targets, l, t) { -if (epr->action == EDJE_ACTION_TYPE_STATE_SET) +switch (epr->action) { - /* the target is a part */ - Edje_Real_Part *p = NULL; + /*action types, that does not support targets*/ + case EDJE_ACTION_TYPE_SCRIPT: + case EDJE_ACTION_TYPE_SOUND_SAMPLE: + case EDJE_ACTION_TYPE_SOUND_TONE: + case EDJE_ACTION_TYPE_VIBRATION_SAMPLE: + case EDJE_ACTION_TYPE_PARAM_COPY: + case EDJE_ACTION_TYPE_PARAM_SET: +#ifdef HAVE_EPHYSICS + case EDJE_ACTION_TYPE_PHYSICS_IMPULSE: + case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE: + case EDJE_ACTION_TYPE_PHYSICS_FORCE: + case EDJE_ACTION_TYPE_PHYSICS_TORQUE: + case EDJE_ACTION_TYPE_PHYSICS_VEL_SET: + case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET: +#endif + break; - p = ed->table_parts[t->id % ed->table_parts_size]; - if (p && p->part && p->part->name) - targets = eina_list_append(targets, - eina_stringshare_add(p->part->name)); - } -else if (epr->action == EDJE_ACTION_TYPE_ACTION_STOP) - { - /* the target is a program */ - Edje_Program *p; + /* the target is a program */ + case EDJE_ACTION_TYPE_ACTION_STOP: + { + Edje_Program *p = NULL; + + p = ed->collection->patterns.table_programs[t->id % ed->collection->patterns.table_programs_size]; + if (p && p->name) + targets = eina_list_append(targets, +eina_stringshare_add(p->name)); + } + break; - p = ed->collection->patterns.table_programs[t->id % ed->collection->patterns.table_programs_size]; - if (p && p->name) - targets = eina_list_append(targets, - eina_stringshare_add(p->name)); + /* the target is a part */ + case EDJE_ACTION_TYPE_SIGNAL_EMIT: + case EDJE_ACTION_TYPE_STATE_SET: + case EDJE_ACTION_TYPE_DRAG_VAL_SET: + case EDJE_ACTION_TYPE_DRAG_VAL_STEP: + case EDJE_ACTION_TYPE_DRAG_VAL_PAGE: + case EDJE_ACTION_TYPE_FOCUS_SET: + case EDJE_ACTION_TYPE_FOCUS_OBJECT: +#ifdef HAVE_EPHYSICS + case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR: + case EDJE_ACTION_TYPE_PHYSICS_STOP: + case EDJE_ACTION_TYPE_PHYSICS_ROT_SET: +#endif + { +Edje_Real_Part *p = NULL; +p = ed->table_parts[t->id % ed->table_parts_size]; +if (p && p->part && p->part->name) + targets = eina_list_append(targets, + eina_stringshare_add(p->part->name)); + } + break; } } return targets; --
[EGIT] [tools/enventor] master 01/01: Undo/redo: correct work with unicode symbols.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=aa8dc3a8dd7059eaaeddd495392a8e35f4d3f220 commit aa8dc3a8dd7059eaaeddd495392a8e35f4d3f220 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Apr 6 15:05:21 2016 +0900 Undo/redo: correct work with unicode symbols. @fix T3420 --- src/lib/redoundo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c index a8061ee..30f49ca 100644 --- a/src/lib/redoundo.c +++ b/src/lib/redoundo.c @@ -148,7 +148,7 @@ entry_changed_user_cb(void *data, Evas_Object *obj EINA_UNUSED, if (info->change.insert.plain_length == 0) goto nochange; diff->text = eina_stringshare_add(info->change.insert.content); char *utf8 = evas_textblock_text_markup_to_utf8(NULL, diff->text); -diff->length = strlen(utf8); +diff->length = info->change.insert.plain_length; diff->cursor_pos = info->change.insert.pos; diff->action = EINA_TRUE; free(utf8); --
[EGIT] [tools/enventor] master 01/01: Redoundo: enable smart analyze for a pushed region text.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=6ab19b2b8734875817d92f216242d28d1d4efabf commit 6ab19b2b8734875817d92f216242d28d1d4efabf Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Apr 4 18:01:37 2016 +0900 Redoundo: enable smart analyze for a pushed region text. Manage text blocks, that used for autocomplete feature. This commit make possible to undo or redo whole block of text including user input. For example: user types "col" and choose "collections" from ctxpopup. In normal mode of undoredo module in case of undo action will be left "col" text. In smart mode whole block "collections" will be deleted. --- src/lib/redoundo.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c index c8c144e..a8061ee 100644 --- a/src/lib/redoundo.c +++ b/src/lib/redoundo.c @@ -62,9 +62,9 @@ smart_analyser(redoundo_data *rd, diff_data *diff) rd->smart.timer = NULL; } - if ((!diff) || (diff->length > 1)) return diff; + if (!diff) return diff; - if (edit_auto_indent_get(rd->edit_data)) + if (diff->length == 1 && edit_auto_indent_get(rd->edit_data)) { if (strstr(diff->text, "")) diff->relative = EINA_TRUE; else diff->relative = EINA_FALSE; @@ -374,6 +374,9 @@ redoundo_text_push(redoundo_data *rd, const char *text, int pos, int length, diff->action = insert; diff->relative = EINA_FALSE; + diff = smart_analyser(rd, diff); + rd->smart.continues_input = EINA_FALSE; + untracked_diff_free(rd); rd->queue = eina_list_append(rd->queue, diff); rd->last_diff = diff; --
[EGIT] [tools/enventor] master 01/01: Redoundo: enhance smart functions.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=5c95fa6e175d51d2cdbd29d6a8031d034fe914b8 commit 5c95fa6e175d51d2cdbd29d6a8031d034fe914b8 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Apr 4 16:38:32 2016 +0900 Redoundo: enhance smart functions. Add support autointendation in smart redoundo. Undo/redo adding or deleting line will done in one action. --- src/lib/redoundo.c | 20 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c index 2dee312..c8c144e 100644 --- a/src/lib/redoundo.c +++ b/src/lib/redoundo.c @@ -62,21 +62,17 @@ smart_analyser(redoundo_data *rd, diff_data *diff) rd->smart.timer = NULL; } - if ((!diff) || (diff->length > 1) || (!rd->last_diff)) return diff; - - /* Autoindent. Here need edit_data pointer, - * for check status of autoindent feature. - * - * if (edit_auto_indent_get(edit_obj_get)) - * { - * if (strstr(diff->text, "")) diff->relative = EINA_TRUE; - * else diff->relative = EINA_FALSE; - *} - */ + if ((!diff) || (diff->length > 1)) return diff; + + if (edit_auto_indent_get(rd->edit_data)) + { + if (strstr(diff->text, "")) diff->relative = EINA_TRUE; + else diff->relative = EINA_FALSE; + } // Analyse speed of text input and words separates if ((rd->smart.continues_input) && (!diff->relative) && - (isalpha(diff->text[0])) && (isalpha(rd->last_diff->text[0]))) + (isalpha(diff->text[0])) && (rd->last_diff && (isalpha(rd->last_diff->text[0] { diff_data *tmp = diff; const char *text; --
[EGIT] [website/www-content] master 01/01: Wiki page about-eflete changed with summary [] by Mykyta Biliavskyi
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=7359331396bf65312b71a69897d661289379c1c8 commit 7359331396bf65312b71a69897d661289379c1c8 Author: Mykyta Biliavskyi <belyavski...@gmail.com> Date: Mon Mar 28 19:42:08 2016 -0700 Wiki page about-eflete changed with summary [] by Mykyta Biliavskyi --- pages/about-eflete.txt | 51 +- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/pages/about-eflete.txt b/pages/about-eflete.txt index 0e2d91b..ffa3fef 100644 --- a/pages/about-eflete.txt +++ b/pages/about-eflete.txt @@ -6,14 +6,14 @@ {{ :icon-eflete.png?nolink|}} {{:eflete-main.png?&200 |}} -== What is Eflete? == +=== What is Eflete? === Efl Edje Theme Editor is a rich graphical tool, that provide UI for edc markup. It is aimed to simplify creation and editing widgets styles. No one, for sure, want to learn EDC syntax. Eflete was designed with mind, that target users are not just programmers but also designers. Besides styles Eflete is also able to create and edit custom layouts. This is useful feature for developers which creates applications layouts. -== Eflete projects == +=== Eflete projects === {{:eflete-projects.png?&200 |}} There are a lot of already existed projects, which are use edc collections for theming or layouting. Or binaries, that compiled by edje_cc tool. For both cases Eflete has import wizards to help in converting existing files into projects, @@ -23,23 +23,23 @@ required by Elementary library. User is free to modify those styles. It is possible to open existing project by File Selection tool. List of recently opened projects provides fast one- mouse-click selection interface. -NOTE: Eflete creates a specific file for each opened edj or edc-file. More precisely - for new project or imported file +Eflete creates a specific file for each opened edj or edc-file. More precisely - for new project or imported file Eflete creates a folder with project name, than copy imported file and create specific file. This file has a .pro -extension and Eflete used it for manipulations. - +extension and Eflete used it for manipulations. Editor operates with binary edj files, but for developers, source code is the must have thing. Of course Eflete support exporting of the currently editing project into the *.edc files. Also it can be standalone group inside project. The -export features could be found in main menu by path: File > Export as edc > Group (or Project). It is also +export features could be found in main menu by path: File -> Export as edc -> Group (or Project). It is also possible to export resources, that is used inside project (or group). There is a shell script can be found inside folder, where data was exported to. It builds edc source code back to the binary file. -== Resource management == +=== Resource management === +{{ :eflete-images.png?&200|}} Usually themes and layouts use a lot of images. Sometimes sounds, tones, fonts and other resources. Theme Editor include few manage tools, that provide natural way to add, delete or edit existed resources. It is also gives fast access to resource preview with additional info. Images, sounds, colorclasses and textblock style manager tools are represented as a pinned tabs. -{{ :eflete-images.png?&200|}} + Images and sounds could be added into project by using file selection dialog (it is possible to add a few files at the same time by holding Shift button and selecting necessary files in a dialog). Images preview and info block (file name, format, resolution, etc.) will be displayed on selection. Also list of styles which are used in selected images @@ -53,14 +53,15 @@ handle manually. Another useful feature - changeable color of background preview colors preview at the bottom of manager view. Second text resource manager responsible for manipulation with colorclasses values. It has mostly the same controls as in TextblockStyle manager. -== Navigations == +=== Navigations === {{:eflete-groups.png?&200 |}} +{{ :eflete-parts.png?&200|}} All navigation controls are represented by a tree-view lists. There are two main areas: groups and parts/programs lists. The list of groups are placed on the left side of Eflete and holds all groups from loaded project. Items sorted alphabetically. On the top of navigation bar placed two icons, that provides ability to add new group into project or delete currently existing. In case of adding new group, simple dialog wizard will be shown. It will set name for new group and chose source group if it is required to create copy or alias. -{{ :eflete-parts.png?&200|}} + Groups list structure is based on splitting group name by tokens, that separated one from another by '\' character. What kind of benefit from this way? For example take the default Element
[EGIT] [website/www-content] master 01/01: Add about page for Eflete project.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=fe1e6db143253bf7eae098d3e6d10e8bcebfc037 commit fe1e6db143253bf7eae098d3e6d10e8bcebfc037 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Mar 29 09:49:24 2016 +0900 Add about page for Eflete project. --- media/eflete-code-mode.png | Bin 0 -> 162957 bytes media/eflete-demo-mode.png | Bin 0 -> 135099 bytes media/eflete-groups.png | Bin 0 -> 10238 bytes media/eflete-history.png | Bin 0 -> 108474 bytes media/eflete-images.png | Bin 0 -> 210009 bytes media/eflete-main.png| Bin 0 -> 344264 bytes media/eflete-navigation.png | Bin 0 -> 126453 bytes media/eflete-normal-mode.png | Bin 0 -> 143053 bytes media/eflete-parts.png | Bin 0 -> 16618 bytes media/eflete-projects.png| Bin 0 -> 44973 bytes media/eflete-texts.png | Bin 0 -> 347389 bytes media/icon-eflete.png| Bin 0 -> 24713 bytes pages/about-eflete.txt | 142 +++ pages/about.txt | 1 + 14 files changed, 143 insertions(+) diff --git a/media/eflete-code-mode.png b/media/eflete-code-mode.png new file mode 100644 index 000..69af9ed Binary files /dev/null and b/media/eflete-code-mode.png differ diff --git a/media/eflete-demo-mode.png b/media/eflete-demo-mode.png new file mode 100644 index 000..e1deac9 Binary files /dev/null and b/media/eflete-demo-mode.png differ diff --git a/media/eflete-groups.png b/media/eflete-groups.png new file mode 100644 index 000..229dc41 Binary files /dev/null and b/media/eflete-groups.png differ diff --git a/media/eflete-history.png b/media/eflete-history.png new file mode 100644 index 000..ade57f3 Binary files /dev/null and b/media/eflete-history.png differ diff --git a/media/eflete-images.png b/media/eflete-images.png new file mode 100644 index 000..6e7a6ef Binary files /dev/null and b/media/eflete-images.png differ diff --git a/media/eflete-main.png b/media/eflete-main.png new file mode 100644 index 000..4857a19 Binary files /dev/null and b/media/eflete-main.png differ diff --git a/media/eflete-navigation.png b/media/eflete-navigation.png new file mode 100644 index 000..d3c8d3f Binary files /dev/null and b/media/eflete-navigation.png differ diff --git a/media/eflete-normal-mode.png b/media/eflete-normal-mode.png new file mode 100644 index 000..13f98fc Binary files /dev/null and b/media/eflete-normal-mode.png differ diff --git a/media/eflete-parts.png b/media/eflete-parts.png new file mode 100644 index 000..3db43f1 Binary files /dev/null and b/media/eflete-parts.png differ diff --git a/media/eflete-projects.png b/media/eflete-projects.png new file mode 100644 index 000..f4e96e5 Binary files /dev/null and b/media/eflete-projects.png differ diff --git a/media/eflete-texts.png b/media/eflete-texts.png new file mode 100644 index 000..a6b26d2 Binary files /dev/null and b/media/eflete-texts.png differ diff --git a/media/icon-eflete.png b/media/icon-eflete.png new file mode 100644 index 000..5c0e6a5 Binary files /dev/null and b/media/icon-eflete.png differ diff --git a/pages/about-eflete.txt b/pages/about-eflete.txt new file mode 100644 index 000..0e2d91b --- /dev/null +++ b/pages/about-eflete.txt @@ -0,0 +1,142 @@ +~~Title: About Eflete~~ + Eflete + +[[download|Download Eflete Here]] + +{{ :icon-eflete.png?nolink|}} + +{{:eflete-main.png?&200 |}} +== What is Eflete? == + +Efl Edje Theme Editor is a rich graphical tool, that provide UI for edc markup. +It is aimed to simplify creation and editing widgets styles. No one, for sure, want to learn EDC syntax. Eflete was +designed with mind, that target users are not just programmers but also designers. Besides styles Eflete is also able +to create and edit custom layouts. This is useful feature for developers which creates applications layouts. + +== Eflete projects == +{{:eflete-projects.png?&200 |}} +There are a lot of already existed projects, which are use edc collections for theming or layouting. Or binaries, that +compiled by edje_cc tool. For both cases Eflete has import wizards to help in converting existing files into projects, +that supported by theme editor. +For new projects it is possible to select predefined widget styles. All widgets in list contains a sets of groups, that +required by Elementary library. User is free to modify those styles. +It is possible to open existing project by File Selection tool. List of recently opened projects provides fast one- +mouse-click selection interface. + +NOTE: Eflete creates a specific file for each opened edj or edc-file. More precisely - for new project or imported file +Eflete creates a folder with project name, than copy imported file and create specific file. This file has a .pro +extension and Eflete used it for manipulations. + + +Editor operates with binary edj f
[EGIT] [tools/enventor] master 01/01: Enventor smart: create new empty file in file_set.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=7a3aff94c338361f62b59122fe9ada1a5d7a7661 commit 7a3aff94c338361f62b59122fe9ada1a5d7a7661 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Mar 25 17:22:06 2016 +0900 Enventor smart: create new empty file in file_set. Fix T3275 --- src/lib/enventor_smart.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 4138de6..e22f4f2 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -304,7 +304,16 @@ _enventor_object_efl_file_file_set(Eo *obj EINA_UNUSED, { build_edc_path_set(file); autocomp_target_set(pd->ed); - if (!edit_load(pd->ed, file)) goto err; + if (!file) goto err; + + /* Create empty file*/ + if (!ecore_file_exists(file)) + { + FILE *fp = fopen(file, "w"); + fclose(fp); + } + + edit_load(pd->ed, file); build_edc(); edit_changed_set(pd->ed, EINA_FALSE); --
[EGIT] [tools/enventor] master 01/01: Layout: change behaviuor for hide edc_navigator swallow object.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=397821a3a4dbbd067ed600be9557314d65a502fc commit 397821a3a4dbbd067ed600be9557314d65a502fc Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Mar 16 14:50:14 2016 +0900 Layout: change behaviuor for hide edc_navigator swallow object. When edc.navigator swallow is hidden it placed outside main markup. --- data/themes/default/layout_common.edc | 41 +++ 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index 5c8712e..d47cb4f 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -2583,11 +2583,21 @@ group { name: "main_layout"; scale: 1; desc { "default"; rel1.relative: 0 1; -rel2.relative: 0 0; -rel2.to: "elm.swallow.edc_navigator"; +rel2.relative: 1 0; rel1.to_y: "elm.swallow.tools"; rel2.to_y: "elm.swallow.statusbar"; } + desc { "visible"; +rel1 { + relative: 0.0 1.0; + to_y: "elm.swallow.tools"; +} +rel2 { + relative: 0.0 0.0; + to_x: "elm.swallow.edc_navigator"; + to_y: "elm.swallow.statusbar"; +} + } } part { name: "error_alert"; type: RECT; @@ -2621,16 +2631,25 @@ group { name: "main_layout"; scale: 1; desc { "default"; rel1.relative: 1 1; -rel2.relative: 1 0; +rel2.relative: 1.5 0; rel1.to_y: "elm.swallow.tools"; rel2.to_y: "elm.swallow.statusbar"; align: 1 0; min: 0 0; +max: 0 -1; fixed: 1 0; } desc { "visible"; inherit: "default"; min: 200 0; +rel1 { + relative: 1.0 1.0; + to_y: "elm.swallow.tools"; +} +rel2 { + relative: 1.0 0.0; + to_y: "elm.swallow.statusbar"; +} } } } @@ -2644,9 +2663,23 @@ group { name: "main_layout"; program { "edc_navigator_hide"; signal: "elm,state,edc_navigator,hide"; action: STATE_SET "default" 0.0; - target: "elm.swallow.edc_navigator"; + target: "elm.swallow.panes"; transition: DECELERATE 0.25; } + program { name: "navigator_hide"; + signal: "elm,state,edc_navigator,hide"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.25; + in: 0.05 0.0; + target: "elm.swallow.edc_navigator"; + } + program { name: "navigator_show"; + signal: "elm,state,edc_navigator,show"; + action: STATE_SET "visible" 0.0; + transition: LINEAR 0.25; + in: 0.05 0.0; + target: "elm.swallow.panes"; + } program { name: "statusbar_show"; signal: "elm,state,statusbar,show"; action: STATE_SET "visible" 0.0; --
[EGIT] [website/www-content] master 01/01: Add Eflete link.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=9355dd9b78306e5827207356eaf1d15a23ff8519 commit 9355dd9b78306e5827207356eaf1d15a23ff8519 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Mar 10 14:04:27 2016 +0900 Add Eflete link. --- pages/download-latest.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/download-latest.txt b/pages/download-latest.txt index 1195e2c..4bce29e 100644 --- a/pages/download-latest.txt +++ b/pages/download-latest.txt @@ -12,7 +12,7 @@ econnman_v= 1.1 epour_v = 0.6.0 enventor_v= 0.8.1 -eflete_v = 0.5.0 +eflete_v = 0.6.0 extn = .tar.gz dlbase= http://download.enlightenment.org/rel/ @@ -34,5 +34,6 @@ dlbase= http://download.enlightenment.org/rel/ ^Development Tool^Version^ |[[%%dlbase%%apps/enventor/enventor-%%enventor_vextn%%|Enventor]]|%%enventor_v%%| +|[[%%dlbase%%apps/eflete/eflete-%%eflete_vextn%%|EFL Edje Theme Editor]]|%%eflete_v%%| Go to the [[https://phab.enlightenment.org/w/packaging_status/|package status of distributions]] for information on what distributions have packages and how up to date they are. --
[EGIT] [tools/enventor] master 01/01: Indent: check last '\n' in file before convert edc source to the markup text.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=fb59a491bad2a078b4faa15a84abe2e5ccd8e601 commit fb59a491bad2a078b4faa15a84abe2e5ccd8e601 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Mar 3 13:33:12 2016 +0900 Indent: check last '\n' in file before convert edc source to the markup text. This solve issue when the additional empty line was added to the bottom of formatted text. @fix T3128 --- src/lib/indent.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/indent.c b/src/lib/indent.c index 6901257..5622ed9 100644 --- a/src/lib/indent.c +++ b/src/lib/indent.c @@ -666,6 +666,8 @@ indent_text_check(indent_data *id EINA_UNUSED, const char *utf8) macro_found = EINA_FALSE; } } + if (utf8_ptr >= utf8_end - 1) + return EINA_FALSE; space = 0; nonspace_found = EINA_FALSE; } --
[EGIT] [tools/enventor] master 01/01: Parser: recognize keyword with context.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=01431db641179b9dbc2954ae5f8d379b45b45bed commit 01431db641179b9dbc2954ae5f8d379b45b45bed Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Feb 29 18:03:32 2016 +0900 Parser: recognize keyword with context. Uses the autocomplete context parser for recognizing keywords with the same names in different contexts. For example: the attributes "min" and "max" for a description context should be integer values in range from 0 to 1000; but for a "text" context those attributes should be boolean. Curently add recognition for a "min" and "max" attributes in the "text" content. @fix T2712 --- src/lib/auto_comp.c| 11 + src/lib/edc_parser.c | 61 -- src/lib/enventor_private.h | 1 + 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 12d0654..664db9e 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -922,3 +922,14 @@ autocomp_enabled_get(void) autocomp_data *ad = g_ad; return ad->enabled; } + +const char ** +autocomp_current_context_get(void) +{ + autocomp_data *ad = g_ad; + + if (!ad->lexem_ptr || !ad->lexem_ptr->name) + return NULL; + + return (const char **)ad->lexem_ptr->name; +} diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index a38998e..868ccb3 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -27,6 +27,7 @@ typedef struct defined_macro_s typedef struct parser_attr_s { Eina_Stringshare *keyword; + const char *context; attr_value value; } parser_attr; @@ -633,6 +634,49 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) //FIXME: construct from the configuration file. + + //Context depended attributes + Eina_Array *wh = eina_array_new(2); + eina_array_push(wh, eina_stringshare_add("W:")); + eina_array_push(wh, eina_stringshare_add("H:")); + + memset(, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("min"); + attr.value.strs = wh; + attr.value.cnt = 2; + attr.value.min = 0; + attr.value.max = 1; + attr.value.type = ATTR_VALUE_BOOLEAN; + attr.value.prepend_str = ATTR_PREPEND_COLON; + attr.value.append_str = ATTR_APPEND_SEMICOLON; + attr.context = eina_stringshare_add("text"); + eina_inarray_push(td->attrs, ); + + wh = eina_array_new(2); + eina_array_push(wh, eina_stringshare_add("W:")); + eina_array_push(wh, eina_stringshare_add("H:")); + + wh = eina_array_new(2); + eina_array_push(wh, eina_stringshare_add("W:")); + eina_array_push(wh, eina_stringshare_add("H:")); + + memset(, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("max"); + attr.value.strs = wh; + attr.value.cnt = 2; + attr.value.min = 0; + attr.value.max = 1; + attr.value.type = ATTR_VALUE_BOOLEAN; + attr.value.prepend_str = ATTR_PREPEND_COLON; + attr.value.append_str = ATTR_APPEND_SEMICOLON; + attr.context = eina_stringshare_add("text"); + eina_inarray_push(td->attrs, ); + + wh = eina_array_new(2); + eina_array_push(wh, eina_stringshare_add("W:")); + eina_array_push(wh, eina_stringshare_add("H:")); + + // Context independed attributes Eina_Array *trans = eina_array_new(11); eina_array_push(trans, eina_stringshare_add("LINEAR")); eina_array_push(trans, eina_stringshare_add("ACCELERATE")); @@ -899,7 +943,7 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) attr.value.append_str = ATTR_APPEND_SEMICOLON; eina_inarray_push(td->attrs, ); - Eina_Array *wh = eina_array_new(2); + wh = eina_array_new(2); eina_array_push(wh, eina_stringshare_add("W:")); eina_array_push(wh, eina_stringshare_add("H:")); @@ -1510,10 +1554,23 @@ parser_attribute_get(parser_data *pd, const char *text, const char *cur, } if (instring) return NULL; + const char **cur_context = autocomp_current_context_get(); + int i = 0; + EINA_INARRAY_FOREACH(pd->attrs, attr) { if (!strcmp(selected, attr->keyword)) - return >value; + { + if (!attr->context) + return >value; + + while (cur_context && (cur_context[i] != NULL)) + { + if (!strcmp(cur_context[i], attr->context)) +return >value; + i++; + } + } } return NULL; diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index a4898ca..c16e5e9 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -109,6 +109,7 @@ Eina_Bool autocomp_enabled_get(void); Eina_Bool autocomp_event_dispatch(const char *key); void autocomp_list_show(void); void autocomp_reset(void); +const char **autocomp_current_context_get(void); /* syntax color */ --
[EGIT] [tools/enventor] master 01/01: Indent: clean code. Delete unused variables.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=2005ee095c10d5fd7f6c2b7224ca9254e12f1613 commit 2005ee095c10d5fd7f6c2b7224ca9254e12f1613 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Feb 23 14:30:05 2016 +0900 Indent: clean code. Delete unused variables. --- src/lib/indent.c | 11 +-- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/lib/indent.c b/src/lib/indent.c index c71db27..6901257 100644 --- a/src/lib/indent.c +++ b/src/lib/indent.c @@ -237,7 +237,7 @@ indent_delete_apply(indent_data *id EINA_UNUSED, Evas_Object *entry, } static Eina_List * -indent_code_lines_create(indent_data *id, const char *utf8) +indent_code_lines_create(indent_data *id EINA_UNUSED, const char *utf8) { Eina_List *code_lines = NULL; @@ -417,9 +417,6 @@ indent_text_auto_format(indent_data *id, redoundo_data *rd = evas_object_data_get(entry, "redoundo"); char *utf8_ptr = utf8; - char *utf8_end = utf8 + utf8_size; - char *utf8_lexem = NULL; - char *utf8_append_ptr = NULL; Eina_List *code_lines = indent_code_lines_create(id, utf8); free(utf8); @@ -787,12 +784,6 @@ indent_text_create(indent_data *id, return NULL; } - int utf8_size = strlen(utf8); - char *utf8_ptr = (char *)utf8; - char *utf8_end = (char *)utf8 + utf8_size; - char *utf8_lexem = NULL; - char *utf8_append_ptr = NULL; - Eina_List *code_lines = indent_code_lines_create(id, utf8); if (!code_lines) { --
[EGIT] [tools/enventor] master 01/01: Indent: add logic to paste formatted text above or below current line.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=843f6cc1950b2cceec4641cc5b5adea784b288e1 commit 843f6cc1950b2cceec4641cc5b5adea784b288e1 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Feb 23 14:05:33 2016 +0900 Indent: add logic to paste formatted text above or below current line. Checking the string from start till cursor position is empty. And in case if this range is empty - formatted text will be inserted above the current line. --- src/lib/indent.c | 26 -- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/lib/indent.c b/src/lib/indent.c index 54b89c7..c71db27 100644 --- a/src/lib/indent.c +++ b/src/lib/indent.c @@ -432,7 +432,29 @@ indent_text_auto_format(indent_data *id, Eina_List *l = NULL; Eina_Stringshare *line; evas_textblock_cursor_line_char_first(cur_start); - evas_textblock_cursor_line_char_last(cur_end); + + /* Checking the string from start till cursor position is empty. +* And in case if this range is empty - formatted text will be +* inserted above the current line */ + char *check_range = evas_textblock_cursor_range_text_get(cur_start, + cur_end, EVAS_TEXTBLOCK_TEXT_PLAIN); + Eina_Bool above = EINA_TRUE; + if (check_range) + { +int check_len = strlen(check_range); +int space_cnt = 0; +for (; space_cnt < check_len; space_cnt++) + { + if (check_range[space_cnt] != ' ') + { + above = EINA_FALSE; + break; + } + } + } + + if (!above) + evas_textblock_cursor_line_char_last(cur_end); int space = indent_space_get(id, entry); utf8 = evas_textblock_cursor_range_text_get(cur_start, cur_end, @@ -444,7 +466,7 @@ indent_text_auto_format(indent_data *id, { if ((utf8_ptr[0] == '}') && (space > 0)) space -= TAB_SPACE; - if (!evas_textblock_cursor_paragraph_next(cur_start)) + if (!above && !evas_textblock_cursor_paragraph_next(cur_start)) { code_lines = eina_list_prepend(code_lines, eina_stringshare_add("\n")); --
[EGIT] [tools/enventor] master 01/01: Redoundo: Support the real-time preview when we undo/redo the code.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=02b45c0719b81518ec2c92d95958464fe023f1c3 commit 02b45c0719b81518ec2c92d95958464fe023f1c3 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Feb 22 18:41:22 2016 +0900 Redoundo: Support the real-time preview when we undo/redo the code. When user undo or redo change, the edc file will be recompiled and the live view will be updated. There are two flow: in case if the change is buildable (i.e. the edc file was builded sucessfuly, when this change happened) edc file will be recompiled. In case when change marked as unbilduable - nothing will happen. @T3051 --- src/lib/edc_editor.c | 2 +- src/lib/enventor_private.h | 3 ++- src/lib/enventor_smart.c | 14 ++ src/lib/redoundo.c | 34 -- 4 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 3b04717..fece9e5 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -1491,7 +1491,7 @@ edit_init(Evas_Object *enventor) ed->select_pos = -1; ed->font_scale = 1; - ed->rd = redoundo_init(en_edit); + ed->rd = redoundo_init(en_edit, ed); evas_object_data_set(ed->en_edit, "redoundo", ed->rd); return ed; diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 8febd4f..41c8acc 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -198,7 +198,7 @@ void edj_mgr_all_views_reload(void); /* redoundo */ -redoundo_data *redoundo_init(Evas_Object *entry); +redoundo_data *redoundo_init(Evas_Object *entry, edit_data *ed); void redoundo_term(redoundo_data *rd); void redoundo_clear(redoundo_data *rd); void redoundo_text_push(redoundo_data *rd, const char *text, int pos, int length, Eina_Bool insert); @@ -208,6 +208,7 @@ int redoundo_undo(redoundo_data *rd, Eina_Bool *changed); int redoundo_redo(redoundo_data *rd, Eina_Bool *changed); void redoundo_n_diff_cancel(redoundo_data *rd, unsigned int n); void redoundo_smart_set(redoundo_data *rd, Eina_Bool status); +void redoundo_diff_buildable(redoundo_data *rd, Eina_Bool buildable); /* edj_viewer */ diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index b580482..eb195e1 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -154,14 +154,20 @@ call_error: if (line_num || target) edit_syntax_color_full_apply(pd->ed, EINA_TRUE); + redoundo_data *rd = evas_object_data_get(edit_entry_get(pd->ed), "redoundo"); + // When msg == NULL it mean, that needed to reset error state if (msg) { - // Ctxpopup should be dismissed only in cases when error happens - edit_ctxpopup_dismiss(pd->ed); - evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); +// Ctxpopup should be dismissed only in cases when error happens +edit_ctxpopup_dismiss(pd->ed); +evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); +redoundo_diff_buildable(rd, EINA_FALSE); + } + else + { +redoundo_diff_buildable(rd, EINA_TRUE); } - } static void diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c index 01d7106..2dee312 100644 --- a/src/lib/redoundo.c +++ b/src/lib/redoundo.c @@ -15,6 +15,7 @@ typedef struct diff_s unsigned int cursor_pos; Eina_Bool action : 1; //EINA_TRUE: insert, EINA_FALSE, delete Eina_Bool relative : 1; //If this change relative to prevision or next step + Eina_Bool buildable : 1; //Is this change buildable? } diff_data; struct redoundo_s @@ -27,6 +28,7 @@ struct redoundo_s diff_data *last_diff; unsigned int queue_max;//Maximum queuing data count 0: unlimited Eina_Bool internal_change : 1; //Entry change by redoundo + edit_data *edit_data; struct { Eina_Bool enable; Ecore_Timer *timer; @@ -188,7 +190,12 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed) { if (changed) *changed = EINA_FALSE; - if (!rd->last_diff) return 0; + if (!rd->last_diff) + { +edit_save(rd->edit_data, build_edc_path_get()); +build_edc(); +return 0; + } rd->internal_change = EINA_TRUE; @@ -246,6 +253,12 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed) elm_entry_select_none(rd->entry); } + if (rd->last_diff && rd->last_diff->buildable) + { +edit_save(rd->edit_data, build_edc_path_get()); +build_edc(); + } + return lines; } @@ -325,6 +338,12 @@ redoundo_redo(redoundo_data *rd, Eina_Bool *changed) elm_entry_select_none(rd->entry); } + if (rd->last_diff && rd->last_diff->buildable) + { +edit_save(rd->edit_data, build_edc_path_get()); +
[EGIT] [tools/enventor] master 01/01: Edj viewer: clean the list of the part names when module terminate.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=57c78d0993638b4e377324a90555b98296869465 commit 57c78d0993638b4e377324a90555b98296869465 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Feb 19 11:11:38 2016 +0900 Edj viewer: clean the list of the part names when module terminate. --- src/lib/edj_viewer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index 1222f27..c12c002 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -546,6 +546,7 @@ view_term(view_data *vd) eina_stringshare_del(vd->part_name); eina_stringshare_del(vd->changed_part.part); eina_stringshare_del(vd->changed_part.desc); + view_obj_parts_names_free(vd); if (vd->part_obj) evas_object_event_callback_del(vd->part_obj, EVAS_CALLBACK_DEL, --
[EGIT] [tools/enventor] master 01/01: Edc parser: fix memory leak.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=726cd500a6ad2d00ead3509cc7499864009af721 commit 726cd500a6ad2d00ead3509cc7499864009af721 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Feb 19 10:00:21 2016 +0900 Edc parser: fix memory leak. Function elm_entry_markup_to_utf8 returned malloc'ed buffer and it should be freed. --- src/lib/edc_parser.c | 25 + 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 472fa68..a38998e 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -55,7 +55,7 @@ typedef struct type_init_thread_data_s typedef struct bracket_thread_data_s { int pos; - const char *text; + char *text; Bracket_Update_Cb update_cb; void *data; Ecore_Thread *thread; @@ -1446,6 +1446,7 @@ bracket_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED) bracket_td *btd = data; btd->update_cb(btd->data, btd->left, btd->right); if (btd->pd->btd == btd) btd->pd->btd = NULL; + free(btd->text); free(btd); } @@ -1454,6 +1455,7 @@ bracket_thread_cancel(void *data, Ecore_Thread *thread EINA_UNUSED) { bracket_td *btd = data; if (btd->pd->btd == btd) btd->pd->btd = NULL; + free(btd->text); free(btd); } @@ -1918,7 +1920,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object *entry) { p += quot_len; p = strstr(p, quot); - if (!p) return NULL; + if (!p) + { + group_name = NULL; + goto end;; + } p += quot_len; continue; } @@ -1928,7 +1934,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object *entry) p += group_len; char *name_end = strstr(p, semicol); - if (!name_end) return NULL; + if (!name_end) + { + group_name = NULL; + goto end;; + } char *space_pos = NULL; char *temp_pos = strchr(p, ' '); @@ -1949,7 +1959,11 @@ parser_first_group_name_get(parser_data *pd, Evas_Object *entry) } char *name_begin = space_pos > tab_pos ? space_pos : tab_pos; - if (!name_begin) return NULL; + if (!name_begin) + { + group_name = NULL; + goto end;; + } name_begin++; group_name = eina_stringshare_add_length(name_begin, @@ -1970,6 +1984,9 @@ parser_first_group_name_get(parser_data *pd, Evas_Object *entry) free(trans_group_name); } } + +end: + free(utf8); return group_name; } --
[EGIT] [tools/enventor] master 01/01: Edc editor: improve search the cursor position for the selected part.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=269bf8b393912ad21d3c093312e045dad7e4d420 commit 269bf8b393912ad21d3c093312e045dad7e4d420 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Feb 18 15:37:20 2016 +0900 Edc editor: improve search the cursor position for the selected part. In parsing the part blocks added additional check for a block type name. This make possible to differ names of the part block and names, that uses inside attributes, style blocks, programs and etc. fix T2977 --- src/lib/edc_editor.c | 82 +++- 1 file changed, 68 insertions(+), 14 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 5ce44e6..1db95fc 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -1092,6 +1092,7 @@ edit_part_cursor_set(edit_data *ed, const char *group_name, const char *part_name) { +#define PART_SYNTAX_CNT 13 if (!group_name || !part_name) return; const char *text = elm_entry_entry_get(ed->en_edit); char *utf8 = elm_entry_markup_to_utf8(text); @@ -1108,34 +1109,87 @@ edit_part_cursor_set(edit_data *ed, char *itr = strstr(group_pos, part_name_search); const char *part_pos = itr; - Eina_Bool word_present = EINA_FALSE; + + /* Possible keywords for a parts*/ + const char *PART[PART_SYNTAX_CNT] = { "part", "image", "textblock", +"swallow", "rect", "group", "spacer", "proxy", "text", "gradient", +"box", "table", "external" }; + + Eina_Bool word_present = EINA_FALSE; /* Indicate is present any word between part name and open brace '{' */ Eina_Bool found_part = EINA_FALSE; - /* Search entry of '{ "part_name" ' or '{ name: "part_name"' patternsd*/ - for (; (itr != NULL) && (itr > utf8); itr--) + Eina_Bool found_brace = EINA_FALSE; + + /* TODO: limit the region of search by 'group { }' block. It is necessary for avoiding situations when part can be +* find inside another group. */ + + /* Search patterns: 'PART { "part_name" ' or 'PART { name: "part_name"'*/ + for (; (itr != NULL) && (itr > group_pos); itr--) { -if (isalnum(*itr)) - word_present = EINA_TRUE; -else if (*itr == '{') +if ((!found_brace) && (*itr == '{')) { + found_brace = EINA_TRUE; if (word_present) { + /* Check word between the part name and brace. + * This word should be a "name". In case if found + * other keyword, the search process should be + * restarted from another position. */ char *name_keyword = strstr(itr, "name"); - if (name_keyword && name_keyword < part_pos) + if (!name_keyword || name_keyword > part_pos) { - found_part = EINA_TRUE; - break; + itr = strstr(part_pos + 1, part_name_search); + part_pos = itr; + found_brace = EINA_FALSE; + word_present = EINA_FALSE; } } - else + } +else if (isalpha(*itr)) + { + word_present = EINA_TRUE; + } + + +/* If found the opening brace '{', need to parse + * the keyword, that describe this block. + * And compare this keyword with possible part keywords. */ +if (found_brace) + { + char *keyword_end = NULL; + + for (; (itr != NULL) && (itr > group_pos); itr--) { - found_part = EINA_TRUE; - break; + if (!keyword_end && isalpha(*itr)) +{ + keyword_end = itr; +} + else if (keyword_end && !isalpha(*itr)) +{ + /* Compare parsed keyword with possible part names. */ + for (int i = 0; i < PART_SYNTAX_CNT; i++) + { +if (!strncmp(itr + 1, PART[i], strlen(PART[i]))) + { + found_part = EINA_TRUE; + } + } + if (found_part) + goto finish; + else + { + itr = strstr(part_pos + 1, part_name_search); + part_pos = it
[EGIT] [tools/enventor] master 01/01: Enhance amount of supported keywords for the autocomplete feature.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=99155bcbf26419212d517bb1955a8ee060309391 commit 99155bcbf26419212d517bb1955a8ee060309391 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Feb 2 11:22:41 2016 +0900 Enhance amount of supported keywords for the autocomplete feature. Newly added keywords and blocks: - Block Proxy for description. attributes are supported: - source_clip - source_visible - Block Params for external parts attributes are supportd - int - double - bool - string - choice - Block Filter for descriptions. attributes are supported: - code - source - data - Block Link - Support External part type. --- data/autocomp/autocomp.src | 231 - 1 file changed, 230 insertions(+), 1 deletion(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index d2bcacf..f99a2e9 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -881,6 +881,20 @@ group "lexem" struct { group "nodes" list { } group "txt" var_array { + count 1 + value "string" string: "%s: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + group "name" var_array { +count 1; +value "string" string: "color"; + } + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { count 1; value "string" string: "%s: ;"; } @@ -968,6 +982,148 @@ group "lexem" struct { value "line_back" int: 0; group "name" var_array { count 2; + value "string" string: "source_clip"; + value "string" string: "source_visible"; + } + } + } + group "txt" var_array { + count 3; + value "string" string: "%s {"; + value "string" string: " "; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "dot" int: 1; + group "name" var_array { + count 1; + value "string" string: "proxy"; + } + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "%s: \"\" 0;"; + }
[EGIT] [tools/enventor] master 01/01: Autocomplete: add support new keywords.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1a9b4de007a29fe6132c030a01322bc2d6087d87 commit 1a9b4de007a29fe6132c030a01322bc2d6087d87 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 30 16:31:17 2015 +0900 Autocomplete: add support new keywords. Inside "part" block added: - effect (for Text parts) - anti_alias - mask_flags Inside "description" block added: - limit - clip_to Inside "text" block added: - domain --- data/autocomp/autocomp.src | 41 - 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index 68ea63a..2f24e5e 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -1,6 +1,5 @@ group "lexem" struct { group "nodes" list { - group "lexem" struct { group "nodes" list { group "lexem" struct { @@ -586,13 +585,28 @@ group "lexem" struct { } group "txt" var_array { count 1; + value "string" string: "%s: SOFT_SHADOW;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + group "name" var_array { +count 1; +value "string" string: "effect"; + } + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; value "string" string: "%s: ;"; } value "cursor_offset" int: 1; value "line_back" int: 0; group "name" var_array { -count 7; +count 8; value "string" string: "access"; +value "string" string: "anti_alias"; value "string" string: "ignore_flags"; value "string" string: "mouse_events"; value "string" string: "multiline"; @@ -631,7 +645,8 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 0; group "name" var_array { - count 2; + count 3; + value "string" string: "clip_to"; value "string" string: "color_class"; value "string" string: "source"; } @@ -1100,7 +1115,8 @@ group "lexem" struct { value "cursor_offset" int: 2; value "line_back" int: 0; group "name" var_array { - count 7; + count 8; + value "string" string: "domain"; value "string" string: "font"; value "string" string: "repch"; value "string" string: "source"; @@ -1125,6 +1141,20 @@ group "lexem" struct { value "string" string: "text"; } } +group "lexem" struct { + group "n
[EGIT] [tools/enventor] master 01/01: Error notification: dismiss ctxpopup when error happen.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=bce72d3f441f444534f213489a87f7d91aa1a92b commit bce72d3f441f444534f213489a87f7d91aa1a92b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Dec 29 18:15:12 2015 +0900 Error notification: dismiss ctxpopup when error happen. Callback build_err_noti_cb uses for reset the error state. Dismiss context popup with attribute values in case when the error happened. --- src/lib/enventor_smart.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 3ae1431..7ba9cdf 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -159,11 +159,16 @@ build_err_noti_cb(void *data, const char *msg) call_error: free(utf8); edit_error_set(pd->ed, line_num - 1, target); - edit_ctxpopup_dismiss(pd->ed); if (line_num || target) edit_syntax_color_full_apply(pd->ed, EINA_TRUE); + + // When msg == NULL it mean, that needed to reset error state if (msg) - evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); + { + // Ctxpopup should be dismissed only in cases when error happens + edit_ctxpopup_dismiss(pd->ed); + evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); + } } --
[EGIT] [tools/enventor] master 01/01: Build: reset error notification before each build.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a40b1441287d81ac2c1def4b02fef3468b0f2aea commit a40b1441287d81ac2c1def4b02fef3468b0f2aea Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Dec 29 11:34:59 2015 +0900 Build: reset error notification before each build. fix T2972 --- src/lib/build.c | 1 + src/lib/enventor_smart.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/build.c b/src/lib/build.c index 81911ea..94e6c72 100644 --- a/src/lib/build.c +++ b/src/lib/build.c @@ -125,6 +125,7 @@ void build_edc(void) { build_data *bd = g_bd; + bd->noti_cb(bd->noti_data, NULL); build_cmd_set(bd); diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index ece695b..3ae1431 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -162,7 +162,8 @@ call_error: edit_ctxpopup_dismiss(pd->ed); if (line_num || target) edit_syntax_color_full_apply(pd->ed, EINA_TRUE); - evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); + if (msg) + evas_object_smart_callback_call(pd->obj, SIG_COMPILE_ERROR, (char *)msg); } --
[EGIT] [tools/enventor] master 01/01: Ctxpopup: reload the image content for preview.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=f9a5d718961955eab8bbde4dff61bb697a004038 commit f9a5d718961955eab8bbde4dff61bb697a004038 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Dec 28 17:10:13 2015 +0900 Ctxpopup: reload the image content for preview. The mouse wheel Up/Down to show preview of the previous/next image. Previously the new ctxpopup widget was created for each image inside the set. Now the preview content is reloaded without creating new ctxpopup widget. fix T2974 --- src/lib/ctxpopup.c | 10 ++ src/lib/edc_editor.c | 35 +-- src/lib/enventor_private.h | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c index 72acad0..7a86065 100644 --- a/src/lib/ctxpopup.c +++ b/src/lib/ctxpopup.c @@ -581,6 +581,16 @@ ctxpopup_key_down_cb(void *data, Evas *e EINA_UNUSED, /* Externally accessible calls */ /*/ +void +ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath) +{ + if (!ctxpopup) return; + + Evas_Object *layout = elm_object_content_get(ctxpopup); + Evas_Object *img = elm_object_part_content_get(layout, "elm.swallow.img"); + evas_object_image_file_set(img, imgpath, NULL); +} + Evas_Object * ctxpopup_img_preview_create(edit_data *ed, const char *imgpath, diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 805e3cc..449bf2d 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -401,10 +401,8 @@ ctxpopup_preview_dismiss_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { edit_data *ed = data; - int skip_focus = (int)(uintptr_t) evas_object_data_get(obj, "continue"); //Since the ctxpopup will be shown again, Don't revert the focus. - if (skip_focus) return; elm_object_tree_focus_allow_set(ed->layout, EINA_TRUE); elm_object_focus_set(ed->en_edit, EINA_TRUE); evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_DISMISSED, NULL); @@ -448,12 +446,6 @@ preview_img_relay_show(edit_data *ed, Evas_Object *ctxpopup, Eina_Bool next) if (image_preview_show(ed, text, x, y)) { -/* Since the ctxpopup will be shown again, - Don't revert the focus in the dismiss cb. */ -evas_object_data_set(ctxpopup, "continue", (void *) 1); -evas_object_event_callback_del(ctxpopup, EVAS_CALLBACK_DEL, - ctxpopup_del_cb); - //Set the entry selection region to next image. const char *colon = parser_colon_pos_get(NULL, text); if (!colon) goto end; @@ -471,6 +463,7 @@ preview_img_relay_show(edit_data *ed, Evas_Object *ctxpopup, Eina_Bool next) int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit); elm_entry_select_region_set(ed->en_edit, (cursor_pos - select_len), cursor_pos); +return; } end: elm_ctxpopup_dismiss(ctxpopup); @@ -519,21 +512,27 @@ image_preview_show(edit_data *ed, char *cur, Evas_Coord x, Evas_Coord y) //Create Ctxpopup with the image pathes. if (found) { -Evas_Object *ctxpopup = - ctxpopup_img_preview_create(ed, fullpath, - ctxpopup_preview_dismiss_cb, - ctxpopup_preview_relay_cb); -if (!ctxpopup) +/*In case if ctxpopup already created, then just reload image. */ +if (ed->ctxpopup) + ctxpopup_img_preview_reload(ed->ctxpopup, fullpath); +else + { +ed->ctxpopup = +ctxpopup_img_preview_create(ed, fullpath, +ctxpopup_preview_dismiss_cb, +ctxpopup_preview_relay_cb); + evas_object_event_callback_add(ed->ctxpopup, EVAS_CALLBACK_DEL, +ctxpopup_del_cb, ed); + } + +if (!ed->ctxpopup) { free(filename); return EINA_FALSE; } -evas_object_move(ctxpopup, x, y); -evas_object_show(ctxpopup); -evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, - ctxpopup_del_cb, ed); -ed->ctxpopup = ctxpopup; +evas_object_move(ed->ctxpopup, x, y); +evas_object_show(ed->ctxpopup); elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE); succeed = EINA_TRUE; } diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 30cc449..0e65d61 100644 --- a/src/lib/env
[EGIT] [tools/enventor] master 01/01: Live edit: return focus to the entry, after insert template.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=460dfed22641e629d9d30ba9dbea7b80165b9c08 commit 460dfed22641e629d9d30ba9dbea7b80165b9c08 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Dec 29 14:08:11 2015 +0900 Live edit: return focus to the entry, after insert template. fix T2968 --- src/lib/edc_editor.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 12b6f99..e45b98c 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -1536,7 +1536,10 @@ edit_disabled_set(edit_data *ed, Eina_Bool disabled) elm_entry_select_none(ed->en_edit); } else - elm_object_signal_emit(ed->layout, "elm,state,enabled", ""); + { +elm_object_signal_emit(ed->layout, "elm,state,enabled", ""); +elm_object_focus_set(ed->en_edit, EINA_TRUE); + } //Turn off the part highlight in case of disable. if (disabled) view_part_highlight_set(VIEW_DATA, NULL); --
[EGIT] [tools/enventor] master 01/01: Edc editor: highlight error line number.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3940a0e58e8fa381141fbfc833a517d68693ed6b commit 3940a0e58e8fa381141fbfc833a517d68693ed6b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Dec 24 09:08:44 2015 +0900 Edc editor: highlight error line number. --- src/lib/edc_editor.c | 48 1 file changed, 48 insertions(+) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 702ff02..805e3cc 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -71,6 +71,8 @@ static Eina_Bool image_preview_show(edit_data *ed, char *cur, Evas_Coord x, Evas_Coord y); static void edit_font_apply(edit_data *ed, const char *font_name, const char *font_style); +static void +error_line_num_highlight(edit_data *ed); static void line_init(edit_data *ed) @@ -143,6 +145,7 @@ static void error_highlight(edit_data *ed, Evas_Object *tb) { Evas_Textblock_Cursor *cur1 = evas_object_textblock_cursor_new(tb); + error_line_num_highlight(ed); if (ed->error_line) { evas_textblock_cursor_line_set(cur1, ed->error_line); @@ -1417,6 +1420,51 @@ edit_entry_get(edit_data *ed) return ed->en_edit; } +/*TODO: this function should be more flexible. + * Will be better to change prototype like: + * line_num_highlight(edit_data *, int line_num, char *color); + * And make this function public. + */ +static void +error_line_num_highlight(edit_data *ed) +{ +#define LINE_NUM_SIZE 5 + Evas_Object *tb = elm_entry_textblock_get(ed->en_line); + char *text = (char *) evas_object_textblock_text_markup_get(tb); + + int from_line = 1; + int to_line = -1; + + char *from EINA_UNUSED = NULL; + char *to EINA_UNUSED = NULL; + + char *utf8 = (char *)color_cancel(syntax_color_data_get(ed->sh), text, + strlen(text), from_line, to_line, , + ); + if (ed->error_line == 0) + { +evas_object_textblock_text_markup_set(tb, utf8); +return; + } + + char line_str[LINE_NUM_SIZE]; + snprintf(line_str, LINE_NUM_SIZE, "%d", ed->error_line + 1); + char *ptr = strstr(utf8, line_str); + if (!ptr) return; + + Eina_Strbuf *strbuf = eina_strbuf_new(); + eina_strbuf_append_length(strbuf, utf8, ptr - utf8); + eina_strbuf_append(strbuf, "
[EGIT] [tools/enventor] master 02/02: Dummy object: change image for spacer.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=d51d9ef663dc1c5313d647c8c4bc55c22128e306 commit d51d9ef663dc1c5313d647c8c4bc55c22128e306 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 23 17:38:52 2015 +0900 Dummy object: change image for spacer. --- data/themes/default/content.edc | 11 ++- data/themes/default/images/spacer_new.png | Bin 3380 -> 0 bytes 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/data/themes/default/content.edc b/data/themes/default/content.edc index 6436737..20c17a9 100644 --- a/data/themes/default/content.edc +++ b/data/themes/default/content.edc @@ -1,7 +1,7 @@ images { image: "part_highlight.png" COMP; image: "swallow.png" COMP; - image: "spacer_new.png" COMP; + image: "live_spacer.png" COMP; } group { name: "swallow"; @@ -81,10 +81,11 @@ group { name: "spacer"; type: IMAGE; repeat_events: 1; description { state: "default" 0.0; -image.normal: "spacer_new.png"; -align: 0.5 0.5; -aspect: 1 1; -aspect_preference: BOTH; +image.normal: "live_spacer.png"; +fill.type: TILE; +color: 255 255 255 50; +aspect: 0 0; +aspect_preference: NONE; } } } diff --git a/data/themes/default/images/spacer_new.png b/data/themes/default/images/spacer_new.png deleted file mode 100644 index 48d5041..000 Binary files a/data/themes/default/images/spacer_new.png and /dev/null differ --
[EGIT] [tools/enventor] master 01/01: Parser: rework parser_collections_block_pos_get function.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=47134c410def62b7491a54747840dc2595dcdc8e commit 47134c410def62b7491a54747840dc2595dcdc8e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 23 11:23:37 2015 +0900 Parser: rework parser_collections_block_pos_get function. Make parser recognize the resource blocks (images, styles, etc) This function uses for getting the insert position of the resource block. @fix T2740 --- src/lib/edc_parser.c | 74 1 file changed, 57 insertions(+), 17 deletions(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 2fc1d51..2f69baf 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -1013,6 +1013,8 @@ static Eina_Bool parser_collections_block_pos_get(const Evas_Object *entry, const char *block_name, int *ret) { + if (!ret) return EINA_FALSE; + const char* GROUP_SYNTAX_NAME = "group"; const int BLOCK_NAME_LEN = strlen(block_name); *ret = -1; @@ -1023,26 +1025,64 @@ parser_collections_block_pos_get(const Evas_Object *entry, char *utf8 = elm_entry_markup_to_utf8(text); if (!utf8) return EINA_FALSE; - const char *pos = strstr(utf8, block_name); - if (pos) - { -/* TODO: Remove this check and process lines of the form - "images.image: "ENVENTOR_EMBEDDED_LOGO.png" COMP;" */ -if (*(pos + BLOCK_NAME_LEN + 1) == '.') - return EINA_FALSE; + int cur_cursor = elm_entry_cursor_pos_get(entry); + const char *pos = utf8 + cur_cursor; -pos = strstr(pos, "{\n"); -if (!pos) return EINA_FALSE; + int len = strlen(utf8); -*ret = pos - utf8 + 2; -return EINA_TRUE; - } - pos = strstr(utf8, GROUP_SYNTAX_NAME); - if (pos) + /* +* The next loop processing the text of block "group" +* from actual cursor postion up to the block name or +* the "group" position. +* Returned value for the cases when the position +* found correctly will be the first symbol of the next line. +* +* TODO and FIXME: possible wrong behaviour when before the +* "group" keyword will be found part with name like "blah.group". +*/ + + while (pos && (pos > utf8)) { -*ret = pos - utf8; -return EINA_FALSE; - } +int block_pos = strncmp(block_name, pos, BLOCK_NAME_LEN); +if (block_pos == 0) + { + const char *block = pos + BLOCK_NAME_LEN; + while (block && (block < utf8 + len)) + { + if (*block == '.') +{ + block = strchr(block, '\n'); + *ret = block - utf8 + 1; + return EINA_FALSE; +} + else if (*block == '{') +{ + block = strchr(block, '\n'); + *ret = block - utf8 + 1; + return EINA_TRUE; +} + block++; + } + return EINA_FALSE; + } +int group_pos = strncmp(GROUP_SYNTAX_NAME, pos, 5); +if (group_pos == 0) + { + const char *group_block = pos + 5; + while (group_block && (group_block < utf8 + len)) + { + if (*group_block == '{') +{ + group_block = strchr(group_block, '\n'); + *ret = group_block - utf8 + 1; + return EINA_FALSE; +} + group_block++; + } + return EINA_FALSE; + } +pos--; + } return EINA_FALSE; } --
[EGIT] [tools/enventor] master 01/01: Edje viewer: Jump to code of current clicked part.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9863ea304ceecd3c9fa5bde7e9058b27df67e9c5 commit 9863ea304ceecd3c9fa5bde7e9058b27df67e9c5 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Dec 22 09:25:53 2015 +0900 Edje viewer: Jump to code of current clicked part. When user click a part in the live view, the entry cursor jumps to the corresponded part line. Need additional attention for the invisible parts. Swallow and spacer parts primitives created after edje-layout. And this causes situation when this primitives is placed above other parts. T2179 --- src/lib/dummy_obj.c| 18 - src/lib/edc_editor.c | 61 +++ src/lib/edj_viewer.c | 65 ++ src/lib/enventor_private.h | 1 + src/lib/enventor_smart.c | 11 5 files changed, 155 insertions(+), 1 deletion(-) diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c index 1fcd8b0..11c81d9 100644 --- a/src/lib/dummy_obj.c +++ b/src/lib/dummy_obj.c @@ -23,10 +23,19 @@ typedef struct dummy_obj_s } dummy_obj; const char *DUMMYOBJ = "dummy_obj"; +const char *EDIT_LAYOUT_KEY = "edit_layout"; /*/ /* Internal method implementation*/ /*/ +static void +edje_part_clicked(void *data, Evas *e EINA_UNUSED, + Evas_Object *obj, void *ei EINA_UNUSED) +{ + part_obj *po = (part_obj *)data; + Evas_Object *layout = evas_object_data_get(obj, EDIT_LAYOUT_KEY); + evas_object_smart_callback_call(layout, "dummy,clicked", (char *)(po->name)); +} static void dummy_objs_update(dummy_obj *dummy) @@ -76,7 +85,7 @@ dummy_objs_update(dummy_obj *dummy) if (type == EDJE_PART_TYPE_SWALLOW) { - //Check this part is exist + //Check this part is exist if (edje_object_part_swallow_get(dummy->layout, part_name)) continue; @@ -93,8 +102,11 @@ dummy_objs_update(dummy_obj *dummy) edje_object_part_swallow(dummy->layout, part_name, obj); po->obj = obj; + evas_object_data_set(po->obj, EDIT_LAYOUT_KEY, dummy->layout); po->name = eina_stringshare_add(part_name); dummy->swallows = eina_list_append(dummy->swallows, po); + evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, +edje_part_clicked, po); } else if (type == EDJE_PART_TYPE_SPACER) { @@ -126,6 +138,10 @@ dummy_objs_update(dummy_obj *dummy) dummy->spacers = eina_list_append(dummy->spacers, po); evas_object_show(obj); evas_object_clip_set(obj, clipper); + evas_object_data_set(obj, EDIT_LAYOUT_KEY, dummy->layout); + + evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, + edje_part_clicked, po); } evas_object_geometry_get(dummy->layout, , , NULL, NULL); edje_object_part_geometry_get(dummy->layout, part_name, , , , ); diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index bea9119..702ff02 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -936,6 +936,67 @@ edit_focused_cb(void *data, Evas_Object *obj EINA_UNUSED, /*/ void +edit_part_cursor_set(edit_data *ed, + const char *group_name, + const char *part_name) +{ + if (!group_name || !part_name) return; + const char *text = elm_entry_entry_get(ed->en_edit); + char *utf8 = elm_entry_markup_to_utf8(text); + + int part_name_size = strlen(part_name) + 2; // 2 - is quotes. + char *part_name_search = calloc(part_name_size, sizeof(char)); + snprintf(part_name_search, part_name_size, "\"%s\"", part_name); + + int group_name_size = strlen(group_name) + 2; // 2 - is quotes. + char *group_name_search = calloc(group_name_size, sizeof(char)); + snprintf(group_name_search, group_name_size, "\"%s\"", group_name); + + const char *group_pos = strstr(utf8, group_name_search); + + char *itr = strstr(group_pos, part_name_search); + const char *part_pos = itr; + Eina_Bool word_present = EINA_FALSE; + Eina_Bool found_part = EINA_FALSE; + /* Search entry of '{ "part_name" ' or '{ name: "part_name"' patternsd*/ + for (; (itr != NULL) && (itr > utf8); itr--) + { +if (isalnum(*itr)) + word_
[EGIT] [tools/enventor] master 01/01: Dummy object: split remove fake objetcts of Spacer and Swallow.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=7d523c5edefa0d8a25a4c7bc98a481eb9d038869 commit 7d523c5edefa0d8a25a4c7bc98a481eb9d038869 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Dec 22 11:01:11 2015 +0900 Dummy object: split remove fake objetcts of Spacer and Swallow. Fix removing fake objects, that represent deleted parts. Previous solution wasn't clearing spacer list, and this can cause undefined behaviour. Function dummy_objs_update should be optimized. Because in current state inside this function there are too much loop with the similar logic. @fix --- src/lib/dummy_obj.c | 36 +--- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c index 11c81d9..8409e2a 100644 --- a/src/lib/dummy_obj.c +++ b/src/lib/dummy_obj.c @@ -56,12 +56,11 @@ dummy_objs_update(dummy_obj *dummy) EINA_LIST_FOREACH(parts, l2, part_name) { if (po->name[0] != part_name[0]) continue; - if (strlen(po->name) != strlen(part_name)) continue; + if ((strlen(po->name) != strlen(part_name))) continue; if (!strcmp(po->name, part_name)) { type = edje_edit_part_type_get(dummy->layout, part_name); - if ((type == EDJE_PART_TYPE_SWALLOW) || - (type == EDJE_PART_TYPE_SPACER)) + if ((type == EDJE_PART_TYPE_SWALLOW)) removed = EINA_FALSE; break; } @@ -70,10 +69,33 @@ dummy_objs_update(dummy_obj *dummy) { evas_object_del(po->obj); eina_stringshare_del(po->name); - if (type == EDJE_PART_TYPE_SWALLOW) - dummy->swallows = eina_list_remove_list(dummy->swallows, l); - else if (type == EDJE_PART_TYPE_SPACER) - dummy->spacers = eina_list_remove_list(dummy->spacers, l); + dummy->swallows = eina_list_remove_list(dummy->swallows, l); + free(po); + } + } + + //Remove the fake swallow objects that parts are removed. + EINA_LIST_FOREACH_SAFE(dummy->spacers, l, l_next, po) + { +removed = EINA_TRUE; + +EINA_LIST_FOREACH(parts, l2, part_name) + { + if (po->name[0] != part_name[0]) continue; + if ((strlen(po->name) != strlen(part_name))) continue; + if (!strcmp(po->name, part_name)) + { + type = edje_edit_part_type_get(dummy->layout, part_name); + if ((type == EDJE_PART_TYPE_SPACER)) +removed = EINA_FALSE; + break; + } + } +if (removed) + { + evas_object_del(po->obj); + eina_stringshare_del(po->name); + dummy->spacers = eina_list_remove_list(dummy->spacers, l); free(po); } } --
[EGIT] [tools/enventor] master 01/01: Dummy: Support dummy spacer like dummy swallow.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3b4a6767a58163b934fab19f0578795d861b7793 commit 3b4a6767a58163b934fab19f0578795d861b7793 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 16 17:29:55 2015 +0900 Dummy: Support dummy spacer like dummy swallow. Create dummy object for all spacer in the group. This feature Enable/Disable by the button on tools panel "Dummy Swallow" or by hotkey Ctrl+W. --- data/themes/default/content.edc | 18 +++ data/themes/default/images/spacer_new.png | Bin 0 -> 3380 bytes src/lib/dummy_obj.c | 85 -- 3 files changed, 99 insertions(+), 4 deletions(-) diff --git a/data/themes/default/content.edc b/data/themes/default/content.edc index e55b0d5..6436737 100644 --- a/data/themes/default/content.edc +++ b/data/themes/default/content.edc @@ -1,6 +1,7 @@ images { image: "part_highlight.png" COMP; image: "swallow.png" COMP; + image: "spacer_new.png" COMP; } group { name: "swallow"; @@ -73,6 +74,23 @@ group { name: "swallow"; } } +group { name: "spacer"; + inherit: "swallow"; + parts { + part { name: "img"; + type: IMAGE; + repeat_events: 1; + description { state: "default" 0.0; +image.normal: "spacer_new.png"; +align: 0.5 0.5; +aspect: 1 1; +aspect_preference: BOTH; + } + } + } +} + + group { name: "part_highlight"; parts { part { name: "base"; diff --git a/data/themes/default/images/spacer_new.png b/data/themes/default/images/spacer_new.png new file mode 100644 index 000..48d5041 Binary files /dev/null and b/data/themes/default/images/spacer_new.png differ diff --git a/src/lib/dummy_obj.c b/src/lib/dummy_obj.c index 9666a11..1fcd8b0 100644 --- a/src/lib/dummy_obj.c +++ b/src/lib/dummy_obj.c @@ -18,6 +18,7 @@ typedef struct dummy_obj_s { Evas_Object *layout; Eina_List *swallows; + Eina_List *spacers; Ecore_Animator *animator; } dummy_obj; @@ -33,7 +34,7 @@ dummy_objs_update(dummy_obj *dummy) Eina_List *parts = edje_edit_parts_list_get(dummy->layout); Eina_List *l, *l_next, *l2; char *part_name; - Edje_Part_Type type; + Edje_Part_Type type = EDJE_PART_TYPE_NONE; part_obj *po; Evas *evas = evas_object_evas_get(dummy->layout); Eina_Bool removed; @@ -49,8 +50,9 @@ dummy_objs_update(dummy_obj *dummy) if (strlen(po->name) != strlen(part_name)) continue; if (!strcmp(po->name, part_name)) { - if (edje_edit_part_type_get(dummy->layout, part_name) == - EDJE_PART_TYPE_SWALLOW) + type = edje_edit_part_type_get(dummy->layout, part_name); + if ((type == EDJE_PART_TYPE_SWALLOW) || + (type == EDJE_PART_TYPE_SPACER)) removed = EINA_FALSE; break; } @@ -59,7 +61,10 @@ dummy_objs_update(dummy_obj *dummy) { evas_object_del(po->obj); eina_stringshare_del(po->name); - dummy->swallows = eina_list_remove_list(dummy->swallows, l); + if (type == EDJE_PART_TYPE_SWALLOW) + dummy->swallows = eina_list_remove_list(dummy->swallows, l); + else if (type == EDJE_PART_TYPE_SPACER) + dummy->spacers = eina_list_remove_list(dummy->spacers, l); free(po); } } @@ -91,11 +96,67 @@ dummy_objs_update(dummy_obj *dummy) po->name = eina_stringshare_add(part_name); dummy->swallows = eina_list_append(dummy->swallows, po); } +else if (type == EDJE_PART_TYPE_SPACER) + { + Eina_List *spacer_l; + Evas_Object *obj = NULL; + int x = 0, y = 0, w = 0, h = 0, lx = 0, ly = 0; + + EINA_LIST_FOREACH(dummy->spacers, spacer_l, po) +if (po->name == part_name) + { + obj = po->obj; + break; + } + if (!obj) + { + Evas_Object *scroller = view_obj_get(VIEW_DATA); + Evas_Object *scroller_edje = elm_layout_edje_get(scroller); + Evas_Object *clipper = + (Evas_Object *)edje_object_part_object_get(scroller_edje, +"clipper"); + obj = elm_layout_add(scroller); + elm_layout_file_set(obj, EDJE_PATH, "spacer"); + evas_object_smart_member_add(obj, scroller); + +
[EGIT] [tools/enventor] master 02/02: Localization: update localization and enventor.pot content.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69 commit 3fc121acd54e8b2b7f36b41ed7bcf5cf9814bb69 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 16 10:30:30 2015 +0900 Localization: update localization and enventor.pot content. --- po/en.po| 100 po/enventor.pot | 100 po/ru.po| 74 +++-- 3 files changed, 177 insertions(+), 97 deletions(-) diff --git a/po/en.po b/po/en.po index 1be1b2f..2783ece 100644 --- a/po/en.po +++ b/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: enventor 0.6.0\n" "Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-11-17 17:37+\n" +"POT-Creation-Date: 2015-12-16 10:22+0900\n" "PO-Revision-Date: 2015-11-17 17:37+\n" "Last-Translator: nikawhite belyavski...@gmail.com \n" "Language-Team: \n" @@ -21,30 +21,30 @@ msgstr "" msgid "%s - Enventor" msgstr "" -#: src/bin/config_data.c:66 +#: src/bin/config_data.c:67 msgid "Failed to generate tmp folder!" msgstr "" -#: src/bin/config_data.c:85 src/bin/config_data.c:98 +#: src/bin/config_data.c:86 src/bin/config_data.c:99 #, c-format msgid "Cannot create a config folder \"%s\"" msgstr "" -#: src/bin/config_data.c:109 +#: src/bin/config_data.c:110 #, c-format msgid "Cannot save a config file \"%s\"" msgstr "" -#: src/bin/config_data.c:148 +#: src/bin/config_data.c:149 #, c-format msgid "Cannot load a config file \"%s\"" msgstr "" -#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132 +#: src/bin/config_data.c:157 src/bin/file_mgr.c:193 src/bin/goto.c:132 #: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281 -#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42 -#: src/bin/text_setting.c:487 src/bin/text_setting.c:540 -#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170 +#: src/bin/search.c:332 src/bin/setting.c:476 src/bin/statusbar.c:42 +#: src/bin/text_setting.c:490 src/bin/text_setting.c:543 +#: src/bin/text_setting.c:574 src/bin/text_setting.c:1087 src/bin/tools.c:170 msgid "Failed to allocate Memory!" msgstr "" @@ -131,37 +131,37 @@ msgstr "" msgid "Auto Indentation Disabled." msgstr "" -#: src/bin/main.c:179 +#: src/bin/main.c:180 #, c-format msgid "Live View Scale: %2.2fx" msgstr "" -#: src/bin/main.c:205 +#: src/bin/main.c:206 #, c-format msgid "Font Size: %1.1fx" msgstr "" -#: src/bin/main.c:458 +#: src/bin/main.c:459 #, c-format msgid "Program Run: \"%s\"" msgstr "" -#: src/bin/main.c:557 +#: src/bin/main.c:558 msgid "Insertion of template code is disabled while in Live Edit mode" msgstr "" -#: src/bin/main.c:565 +#: src/bin/main.c:566 #, c-format msgid "Template code inserted, (%s)" msgstr "" -#: src/bin/main.c:571 +#: src/bin/main.c:572 msgid "" "Can't insert template code here. Move the cursor inside the \"Collections," "Images,Parts,Part,Programs\" scope." msgstr "" -#: src/bin/main.c:824 +#: src/bin/main.c:825 #, c-format msgid "Failed to grab key - %s" msgstr "" @@ -170,7 +170,7 @@ msgstr "" msgid "New File: Choose a template" msgstr "" -#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:522 +#: src/bin/menu.c:168 src/bin/menu.c:212 src/bin/setting.c:532 msgid "Cancel" msgstr "" @@ -232,7 +232,7 @@ msgstr "" msgid "New" msgstr "" -#: src/bin/menu.c:656 +#: src/bin/menu.c:656 src/bin/setting.c:492 msgid "Settings" msgstr "" @@ -292,76 +292,104 @@ msgstr "" msgid "Replace All" msgstr "" -#: src/bin/setting.c:288 +#: src/bin/setting.c:249 +msgid "Image Paths:" +msgstr "" + +#: src/bin/setting.c:257 +msgid "Sound Paths:" +msgstr "" + +#: src/bin/setting.c:265 +msgid "Font Paths:" +msgstr "" + +#: src/bin/setting.c:273 +msgid "Data Paths:" +msgstr "" + +#: src/bin/setting.c:278 +msgid "Preferences:" +msgstr "" + +#: src/bin/setting.c:297 msgid "Live View Scale" msgstr "" -#: src/bin/setting.c:315 +#: src/bin/setting.c:324 msgid "Fixed Live View Size" msgstr "" -#: src/bin/setting.c
[EGIT] [tools/enventor] master 01/02: Localization: add texts from setting layouts to locale.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=d1c5cebb24e6f3cbdcb297453624aa616123 commit d1c5cebb24e6f3cbdcb297453624aa616123 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Dec 16 10:09:50 2015 +0900 Localization: add texts from setting layouts to locale. --- src/bin/setting.c | 7 +++ src/bin/text_setting.c | 1 + 2 files changed, 8 insertions(+) diff --git a/src/bin/setting.c b/src/bin/setting.c index 3d3c9ca..786d9bc 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -246,6 +246,7 @@ general_layout_create(setting_data *sd, Evas_Object *parent) elm_object_focus_set(img_path_entry, EINA_TRUE); elm_object_part_content_set(layout, "elm.swallow.img_path_entry", img_path_entry); + elm_layout_text_set(layout, "img_path_guide", _("Image Paths:")); //Sound Path Entry Evas_Object *snd_path_entry = entry_create(layout); @@ -253,12 +254,15 @@ general_layout_create(setting_data *sd, Evas_Object *parent) (Eina_List *)config_snd_path_list_get()); elm_object_part_content_set(layout, "elm.swallow.snd_path_entry", snd_path_entry); + elm_layout_text_set(layout, "snd_path_guide", _("Sound Paths:")); + //Font Path Entry Evas_Object *fnt_path_entry = entry_create(layout); fnt_path_entry_update(fnt_path_entry, (Eina_List *)config_fnt_path_list_get()); elm_object_part_content_set(layout, "elm.swallow.fnt_path_entry", fnt_path_entry); + elm_layout_text_set(layout, "fnt_path_guide", _("Font Paths:")); //Data Path Entry Evas_Object *dat_path_entry = entry_create(layout); @@ -266,10 +270,12 @@ general_layout_create(setting_data *sd, Evas_Object *parent) (Eina_List *)config_dat_path_list_get()); elm_object_part_content_set(layout, "elm.swallow.dat_path_entry", dat_path_entry); + elm_layout_text_set(layout, "dat_path_guide", _("Data Paths:")); //Preference Evas_Object *scroller = elm_scroller_add(layout); elm_object_part_content_set(layout, "elm.swallow.preference", scroller); + elm_layout_text_set(layout, "preference_guide", _("Preferences:")); //Box Evas_Object *box = elm_box_add(scroller); @@ -483,6 +489,7 @@ setting_open(void) elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "", setting_dismiss_done_cb, sd); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_layout_text_set(layout, "title_name", _("Settings")); evas_object_show(layout); base_win_resize_object_add(layout); diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 071eef8..e4fb384 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -799,6 +799,7 @@ text_setting_layout_create(Evas_Object *parent) elm_entry_editable_set(entry, EINA_FALSE); evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_layout_text_set(layout, "text_setting_guide", _("Double click a keyword to change its color :")); //Font information const char *font_name; --
[EGIT] [tools/enventor] master 02/02: Localization: add Russian translation.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=5843cd1d22835e81142b57ffd96080ee6519e37c commit 5843cd1d22835e81142b57ffd96080ee6519e37c Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Dec 10 17:37:36 2015 +0900 Localization: add Russian translation. --- po/LINGUAS | 2 +- po/ru.po | 452 + 2 files changed, 453 insertions(+), 1 deletion(-) diff --git a/po/LINGUAS b/po/LINGUAS index c574d07..6409b02 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -en +en ru diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 000..deac4f3 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,452 @@ +# Russian translation for Enventor project +# Copyright (C) 2015 Enventor development team +# This file is distributed under the same license as the enventor package. +# NikaWhite belyavski...@gmail.com +# +msgid "" +msgstr "" +"Project-Id-Version: enventor 0.6.0\n" +"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-10 17:11+0900\n" +"PO-Revision-Date: 2015-12-10 12:07+\n" +"Last-Translator: NikaWhite belyavski...@gmail.com \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/bin/base_gui.c:61 +#, c-format +msgid "%s - Enventor" +msgstr "%s - Enventor" + +#: src/bin/config_data.c:67 +msgid "Failed to generate tmp folder!" +msgstr "Невозможно создать временную директорию!" + +#: src/bin/config_data.c:86 src/bin/config_data.c:99 +#, c-format +msgid "Cannot create a config folder \"%s\"" +msgstr "Невозможно создать директорию с конфигурационными файлами. \"%s\"" + +#: src/bin/config_data.c:110 +#, c-format +msgid "Cannot save a config file \"%s\"" +msgstr "Неудалось сохранить файл настроек \"%s\"" + +#: src/bin/config_data.c:149 +#, c-format +msgid "Cannot load a config file \"%s\"" +msgstr "Неудалось загрузить настройки из файла \"%s\"" + +#: src/bin/config_data.c:157 src/bin/file_mgr.c:193 src/bin/goto.c:132 +#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281 +#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42 +#: src/bin/text_setting.c:487 src/bin/text_setting.c:540 +#: src/bin/text_setting.c:571 src/bin/text_setting.c:1084 src/bin/tools.c:170 +msgid "Failed to allocate Memory!" +msgstr "Ошибка выделения памяти!" + +#: src/bin/file_mgr.c:70 +msgid "EDC has been changed on the file system." +msgstr "EDC-файл был изменен друшим приложением." + +#: src/bin/file_mgr.c:72 +msgid "Do you want to replace the contents?" +msgstr "Вы уверенны, что хотите заменить файл?" + +#: src/bin/file_mgr.c:83 +msgid "Save As" +msgstr "Сохранить как" + +#: src/bin/file_mgr.c:91 src/bin/search.c:402 +msgid "Replace" +msgstr "Замена" + +#: src/bin/file_mgr.c:97 +msgid "Ignore" +msgstr "Пропустить" + +#: src/bin/file_mgr.c:157 +#, c-format +msgid "File saved. \"%s\"" +msgstr "Файл сохранен. \"%s\"" + +#: src/bin/file_mgr.c:159 +#, c-format +msgid "Already saved. \"%s\"" +msgstr "Сохранен. \"%s\"" + +#: src/bin/goto.c:89 +msgid "Invalid line number" +msgstr "Неверный номер строки." + +#: src/bin/goto.c:138 +msgid "Enventor Goto Line" +msgstr "Enventor Перейти к строке" + +#: src/bin/goto.c:142 +msgid "Go to Line" +msgstr "Перейти к строке" + +#: src/bin/goto.c:164 +#, c-format +msgid "Enter line number [1..%d]:" +msgstr "Введите номер строки [1..%d]:" + +#: src/bin/goto.c:188 src/bin/menu.c:162 +msgid "Ok" +msgstr "Перейти" + +#: src/bin/goto.c:200 src/bin/search.c:424 +msgid "Failed to grab key - Escape" +msgstr "Ошибка перехвата нажатия - Escape" + +#: src/bin/live_edit.c:918 +msgid "Double click the part to confirm." +msgstr "Сделайте двойной клик мыши по примитиву для вставки." + +#: src/bin/live_edit.c:988 +msgid "Select a part to add in Live View." +msgstr "Выбирете тип примитива, который будет добавлен." + +#: src/bin/live_edit.c:1063 +msgid "Faild to allocate Memory!" +msgstr "Ошибка выделения памяти!" + +#: src/bin/main.c:24 +msgid "Auto Completion Enabled." +msgstr "Автодополнение Включено." + +#: src/bin/main.c:25 +msgid "Auto Completion Disabled." +msgstr "Автодополнение Выключенно" + +#: src/bin/main.c:34 +msgid &quo
[EGIT] [tools/enventor] master 01/02: Localization: fix localization support.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=360170fd7400b973d25c513bc5a0c07342e94c3b commit 360170fd7400b973d25c513bc5a0c07342e94c3b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Dec 10 17:30:00 2015 +0900 Localization: fix localization support. Correct initalizing textdomain. Use LOCALE_DIR environment variable. Support localization in setting.c and text_setting.c files. --- configure.ac | 8 src/bin/Makefile.am| 5 - src/bin/main.c | 6 ++ src/bin/setting.c | 3 +++ src/bin/text_setting.c | 3 +++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b0e7cc5..7ca0ed9 100644 --- a/configure.ac +++ b/configure.ac @@ -40,6 +40,14 @@ AM_PROG_AS AM_GNU_GETTEXT_VERSION(0.18.1) AM_GNU_GETTEXT([external]) +#=== +if test "x${prefix}" = "xNONE"; then + LOCALE_DIR="${ac_default_prefix}/share/locale" +else + LOCALE_DIR="${prefix}/share/locale" +fi +AC_SUBST(LOCALE_DIR) +#=== ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 2a27e4f..9f520fd 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -1,5 +1,7 @@ MAINTAINERCLEANFILES = Makefile.in +LOCALE_DIR = @LOCALE_DIR@ + bin_PROGRAMS = enventor AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ @@ -35,6 +37,7 @@ enventor_LDFLAGS = $(LTLIBINTL) enventor_CFLAGS = \ -I$(top_builddir)/src/lib \ - @ENVENTOR_CFLAGS@ + @ENVENTOR_CFLAGS@ \ + -DLOCALE_DIR=\"@LOCALE_DIR@\" EXTRA_DIST = diff --git a/src/bin/main.c b/src/bin/main.c index be0ed0e..92ecfe8 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -875,6 +875,12 @@ keygrabber_init(app_data *ad) static Eina_Bool init(app_data *ad, int argc, char **argv) { +#ifdef ENABLE_NLS + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALE_DIR); + textdomain(PACKAGE); +#endif /* set locale */ + elm_setup(); enventor_init(argc, argv); diff --git a/src/bin/setting.c b/src/bin/setting.c index a299977..3d3c9ca 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -1,3 +1,6 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include "common.h" #include "text_setting.h" diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 9292b13..071eef8 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -1,3 +1,6 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include "common.h" #include "text_setting.h" --
[EGIT] [tools/enventor] master 01/01: Text settings: Add analysis typed text for redoundo feature.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=6aea530622577b3686a7066a1d99422d2f713681 commit 6aea530622577b3686a7066a1d99422d2f713681 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Dec 10 10:53:12 2015 +0900 Text settings: Add analysis typed text for redoundo feature. Added cases: Analyse auto indention for new lines. It mean, that redo/undo line creation will finished by one step. Analyse input symbols speed. In case when user writes somethenigi and takes a short delay (by default 0.8sec) between written symbols - redo/undo action will use this delay as point to create new node in redo/undo queue. Analyse input symbols on a "words". Ongoing alphabetic symbols between nonalphabetic symbols known as "word". Redo/undo action will use for a step a whole "word". In text setting added addition toggle named "Smart undo/redo". By default this feature is disabled. Todo: make this feature work with auto intendation. Prortotype here: https://phab.enlightenment.org/D1288 --- src/bin/config_data.c | 18 +++ src/bin/main.c | 1 + src/bin/text_setting.c | 15 +- src/include/config_data.h | 2 ++ src/include/text_setting.h | 2 ++ src/lib/edc_editor.c | 16 ++ src/lib/enventor_object.eo | 9 ++ src/lib/enventor_private.h | 3 ++ src/lib/enventor_smart.c | 13 src/lib/redoundo.c | 74 +- 10 files changed, 151 insertions(+), 2 deletions(-) diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 3205b27..15327a9 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -38,6 +38,7 @@ typedef struct config_s Eina_Bool console; Eina_Bool auto_complete; Eina_Bool view_size_configurable; + Eina_Bool smart_undo_redo; } config_data; static config_data *g_cd = NULL; @@ -178,6 +179,7 @@ config_load(void) cd->auto_complete = EINA_TRUE; cd->view_size_configurable = EINA_FALSE; cd->version = ENVENTOR_CONFIG_VERSION; +cd->smart_undo_redo = EINA_FALSE; } g_cd = cd; @@ -282,6 +284,8 @@ eddc_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "view_size_configurable", view_size_configurable, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "smart_undo_redo", +smart_undo_redo, EET_T_UCHAR); } void @@ -732,6 +736,20 @@ config_font_scale_get(void) return cd->font_scale; } +Eina_Bool +config_smart_undo_redo_get(void) +{ + config_data *cd = g_cd; + return cd->smart_undo_redo; +} + +void +config_smart_undo_redo_set(Eina_Bool smart_undo_redo) +{ + config_data *cd = g_cd; + cd->smart_undo_redo = smart_undo_redo; +} + void config_auto_complete_set(Eina_Bool auto_complete) { diff --git a/src/bin/main.c b/src/bin/main.c index 3e05691..be0ed0e 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -56,6 +56,7 @@ enventor_common_setup(Evas_Object *enventor) enventor_object_live_view_scale_set(enventor, config_view_scale_get()); enventor_object_auto_indent_set(enventor, config_auto_indent_get()); enventor_object_auto_complete_set(enventor, config_auto_complete_get()); + enventor_object_smart_undo_redo_set(enventor, config_smart_undo_redo_get()); Eina_List *list = eina_list_append(NULL, config_output_path_get()); enventor_object_path_set(enventor, ENVENTOR_PATH_TYPE_EDJ, list); diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 111916a..9292b13 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -864,6 +864,11 @@ text_setting_layout_create(Evas_Object *parent) config_auto_complete_get()); elm_box_pack_end(box, toggle_autocomp); + //Toggle (Smart Undo/Redo) + Evas_Object *toggle_smart_undo_redo = toggle_create(box, _("Smart Undo/Redo"), +config_smart_undo_redo_get()); + elm_box_pack_end(box, toggle_smart_undo_redo); + //Font Name and Style (Box) box = elm_box_add(layout); elm_box_horizontal_set(box, EINA_TRUE); @@ -953,7 +958,7 @@ text_setting_layout_create(Evas_Object *parent) tsd->toggle_linenum = toggle_linenum; tsd->toggle_indent = toggle_indent; tsd->toggle_autocomp = toggle_autocomp; - + tsd->toggle_smart_undo_redo = toggle_smart_undo_redo; return layout; } @@ -999,6 +1004,7 @@ text_setting_config_set(void) config_linenumber_set(elm_check_state_get(tsd->toggle_linenum)); config_auto_indent_set(elm_check_state_get(tsd->toggle
[EGIT] [tools/eflete] master 47/62: Ewe ruler: use Evas_Object* for elm_box_add.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=c94a857bd6d5a45f300b3010911f6e563ecf8c99 commit c94a857bd6d5a45f300b3010911f6e563ecf8c99 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Nov 10 17:08:28 2015 + Ewe ruler: use Evas_Object* for elm_box_add. --- src/lib/ewe_ruler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index e3ca6ba..b9b6331 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -409,7 +409,7 @@ _ewe_ruler_scale_add(Eo *obj, sd->scales = eina_list_append(sd->scales, ret); - ret->box = elm_box_add(evas_object_evas_get(obj)); + ret->box = elm_box_add(obj); elm_box_align_set(ret->box, 0.0, 0.0); elm_box_horizontal_set(ret->box, sd->horizontal); evas_object_smart_member_add(ret->box, obj); --
[EGIT] [tools/eflete] master 45/62: Main window: hide History block controls.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=af991782148a2e0bb62d081966fbead5235ba870 commit af991782148a2e0bb62d081966fbead5235ba870 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Nov 13 13:10:33 2015 + Main window: hide History block controls. When Eflete lunched the prorperty layout is shown, and History content should be hidden. @fix --- src/bin/ui/main_window.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/ui/main_window.c b/src/bin/ui/main_window.c index 001fe83..2f27e62 100644 --- a/src/bin/ui/main_window.c +++ b/src/bin/ui/main_window.c @@ -190,6 +190,8 @@ ui_main_window_add(void) ap.block.property = ui_property_add(ap.win); elm_layout_content_set(ap.block.right_top, NULL, ap.block.property); ap.block.history = history_ui_add(); + evas_object_hide(ap.block.history); + elm_layout_content_set(ap.block.right_top, NULL, ap.block.property); elm_object_part_content_set(ap.panes.right, "right", ap.block.right_top); ap.menu = ui_menu_add(); --
[EGIT] [tools/eflete] master 46/62: Config: fix set projects dir path.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2f239c23bf12ddeb88e6d9a6886b7ee32b37f732 commit 2f239c23bf12ddeb88e6d9a6886b7ee32b37f732 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Nov 13 11:20:25 2015 + Config: fix set projects dir path. In case if projects dir does not exists - all files sectors will be displayed with the NULL path. In this commit added additional check the directory exist. @fix --- src/bin/config/config.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/config/config.c b/src/bin/config/config.c index 3e0bb68..bd2e950 100644 --- a/src/bin/config/config.c +++ b/src/bin/config/config.c @@ -335,10 +335,13 @@ _profile_update(Profile *prof) char *env_path = getenv("EFLETE_PROJECTS_DIR"); prof->version = PROFILE_VERSION; - if ((!prof->general.projects_folder) || (env_path)) - prof->general.projects_folder = env_path != NULL ? -strdup(env_path): -strdup(getenv("HOME")); + if ((!env_path) || (!ecore_file_exists(env_path))) + env_path = getenv("HOME"); + + if ((!prof->general.projects_folder) || + (!ecore_file_exists(prof->general.projects_folder))) + prof->general.projects_folder = strdup(env_path); + if (!prof->shortcuts) prof->shortcuts = _default_shortcuts_get(); } --
[EGIT] [tools/eflete] master 43/62: Sound editor: don't show controls, until editor tab isn't choosen.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f0e24f3d99aff9e6492cca415f6904316d1d24d4 commit f0e24f3d99aff9e6492cca415f6904316d1d24d4 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Nov 23 10:24:32 2015 + Sound editor: don't show controls, until editor tab isn't choosen. --- src/bin/ui/editors/sound_editor.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bin/ui/editors/sound_editor.c b/src/bin/ui/editors/sound_editor.c index da20bc3..6aeca4e 100644 --- a/src/bin/ui/editors/sound_editor.c +++ b/src/bin/ui/editors/sound_editor.c @@ -713,16 +713,13 @@ _sound_editor_main_markup_create(Sound_Editor *edit) edit->markup = elm_layout_add(ap.win); elm_layout_theme_set(edit->markup, "layout", "sound_editor", "default"); evas_object_size_hint_weight_set(edit->markup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(edit->markup); evas_object_data_set(edit->markup, SND_EDIT_KEY, edit); evas_object_event_callback_add(edit->markup, EVAS_CALLBACK_DEL, _on_sound_editor_del, edit); btn = elm_button_add(edit->markup); evas_object_smart_callback_add(btn, "clicked", _on_delete_clicked_cb, edit); - evas_object_show(btn); elm_object_part_content_set(edit->markup, "swallow.btn.del", btn); - evas_object_show(btn); ic = elm_icon_add(btn); elm_icon_standard_set(ic, "minus"); @@ -766,7 +763,8 @@ _sound_editor_main_markup_create(Sound_Editor *edit) break; } search = _sound_editor_search_field_create(edit->markup); - elm_object_part_content_set(edit->markup, "swallow.search_area", search); + evas_object_hide(search); + elm_layout_content_set(edit->markup, "swallow.search_area", search); evas_object_smart_callback_add(search, "changed", _search_changed, edit); evas_object_smart_callback_add(search, "activated", _search_nxt_gd_item, edit); evas_object_smart_callback_add(edit->gengrid, "pressed", _search_reset_cb, --
[EGIT] [tools/eflete] master 41/62: Workspace: delete highlight object with workspace delete.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=2823b9611f5bee7228d4fac02cb2ec35e31e5798 commit 2823b9611f5bee7228d4fac02cb2ec35e31e5798 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Nov 23 15:55:46 2015 + Workspace: delete highlight object with workspace delete. --- src/bin/ui/workspace/workspace.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 5535cc0..96f783d 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -1264,6 +1264,8 @@ _workspace_smart_del(Evas_Object *o) { WS_DATA_GET(o, sd); + evas_object_del(sd->highlight.space_hl); + evas_object_del(sd->highlight.highlight); _workspace_parent_sc->del(o); } --
[EGIT] [tools/enventor] master 01/04: Multilanguage: Add infrastructure for multilanguage support.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=2f6f020f6558973b005bda1c6042e195a0126939 commit 2f6f020f6558973b005bda1c6042e195a0126939 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Nov 17 16:59:55 2015 + Multilanguage: Add infrastructure for multilanguage support. Added macros _(), that should be used for each string, that will be translated to other languages. --- .gitignore | 24 +- ABOUT-NLS| 1282 ++ Makefile.am |6 +- autogen.sh |2 +- configure.ac | 10 +- po/LINGUAS |1 + po/Makevars | 42 ++ po/POTFILES.in | 34 ++ src/include/common.h | 14 + 9 files changed, 1404 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index cda12ef..5962fc2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,11 +7,14 @@ *~ .* *.eo.* +*.sed +*.sin Enventor.h enventor enventorql +Makefile.in.in Makefile.in Makefile @@ -32,12 +35,21 @@ install-sh libtool ltmain.sh enventor.pc -m4/libtool.m4 -m4/ltoptions.m4 -m4/ltsugar.m4 -m4/ltversion.m4 -m4/lt~obsolete.m4 -m4/efl.m4 +!m4/efl_attribute.m4 +!m4/efl_binary.m4 +!m4/elm_quicklaunch.m4 +!m4/efl_beta.m4 +!m4/efl_eo.m4 +m4/* +po/Makevars.template +po/POTFILES +po/Rules-quot +po/en@boldquot.header +po/en@quot.header +po/stamp-po +po/enventor.pot +intl/ +config.rpath missing src/bin/.deps/ src/bin/.libs/ diff --git a/ABOUT-NLS b/ABOUT-NLS index e69de29..b1de1b6 100644 --- a/ABOUT-NLS +++ b/ABOUT-NLS @@ -0,0 +1,1282 @@ +1 Notes on the Free Translation Project +*** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + +1.1 INSTALL Matters +=== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. Installers may use special +options at configuration time for changing the default behaviour. The +command: + + ./configure --disable-nls + +will _totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl' library +and will decide to use it. If not, you may have to to use the +`--with-libintl-prefix' option to tell `configure' where to look for it. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.2 Using This Package +== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for
[EGIT] [tools/enventor] master 02/04: Multilanguage: apply gettext macro to bin/.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c6ec131b8d863479800ab6f9b607150f7eb1c41e commit c6ec131b8d863479800ab6f9b607150f7eb1c41e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Nov 17 17:39:22 2015 + Multilanguage: apply gettext macro to bin/. Cover all strings with _() macro. --- src/bin/base_gui.c | 2 +- src/bin/config_data.c | 12 +-- src/bin/file_mgr.c | 16 +++ src/bin/goto.c | 14 ++--- src/bin/live_edit.c| 6 +++--- src/bin/main.c | 25 +++--- src/bin/menu.c | 56 +- src/bin/newfile.c | 8 src/bin/panes.c| 2 +- src/bin/search.c | 26 +++ src/bin/setting.c | 26 +++ src/bin/statusbar.c| 2 +- src/bin/text_setting.c | 22 ++-- src/bin/tools.c| 42 ++--- 14 files changed, 129 insertions(+), 130 deletions(-) diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index 8bb35d6..6c4e803 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -58,7 +58,7 @@ base_title_set(const char *path) base_data *bd = g_bd; assert(bd); char buf[PATH_MAX]; - snprintf(buf, sizeof(buf), "%s - Enventor", path); + snprintf(buf, sizeof(buf), _("%s - Enventor"), path); elm_win_title_set(bd->win, buf); } diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 51f53e0..3205b27 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -63,7 +63,7 @@ config_edj_path_update(config_data *cd) if (!eina_file_mkstemp(buf, _path)) { -EINA_LOG_ERR("Failed to generate tmp folder!"); +EINA_LOG_ERR(_("Failed to generate tmp folder!")); return; } @@ -82,7 +82,7 @@ config_save(config_data *cd) Eina_Bool success = ecore_file_mkdir(efreet_config_home_get()); if (!success) { - EINA_LOG_ERR("Cannot create a config folder \"%s\"", efreet_config_home_get()); + EINA_LOG_ERR(_("Cannot create a config folder \"%s\""), efreet_config_home_get()); return; } } @@ -95,7 +95,7 @@ config_save(config_data *cd) Eina_Bool success = ecore_file_mkdir(buf); if (!success) { - EINA_LOG_ERR("Cannot create a config folder \"%s\"", buf); + EINA_LOG_ERR(_("Cannot create a config folder \"%s\""), buf); return; } } @@ -106,7 +106,7 @@ config_save(config_data *cd) Eet_File *ef = eet_open(buf, EET_FILE_MODE_WRITE); if (!ef) { -EINA_LOG_ERR("Cannot save a config file \"%s\"", buf); +EINA_LOG_ERR(_("Cannot save a config file \"%s\""), buf); return; } @@ -145,7 +145,7 @@ config_load(void) cd = eet_data_read(ef, edd_base, "config"); eet_close(ef); } - else EINA_LOG_WARN("Cannot load a config file \"%s\"", buf); + else EINA_LOG_WARN(_("Cannot load a config file \"%s\""), buf); //failed to load config file, create default structure. if (!cd) @@ -153,7 +153,7 @@ config_load(void) cd = calloc(1, sizeof(config_data)); if (!cd) { - EINA_LOG_ERR("Failed to allocate Memory!"); + EINA_LOG_ERR(_("Failed to allocate Memory!")); return NULL; } } diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c index 60cf5b6..530b037 100644 --- a/src/bin/file_mgr.c +++ b/src/bin/file_mgr.c @@ -67,9 +67,9 @@ warning_open(file_mgr_data *fmd) Evas_Object *layout = elm_layout_add(base_win_get()); elm_layout_file_set(layout, EDJE_PATH, "warning_layout"); elm_object_part_text_set(layout, "elm.text.desc", -"EDC has been changed on the file system."); +_("EDC has been changed on the file system.")); elm_object_part_text_set(layout, "elm.text.question", -"Do you want to replace the contents?"); +_("Do you want to replace the contents?")); elm_object_signal_callback_add(layout, "elm,state,dismiss,done", "", warning_dismiss_done, fmd); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -80,7 +80,7 @@ warning_open(file_mgr_data *fmd) //Save As Button btn = elm_button_add(layout); - elm_object_text_set(btn, "Save As"); + elm_object_text_set(btn, _("Save As")); evas_object
[EGIT] [tools/enventor] master 04/04: Multilanguage: add english po file.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=4cbc3e5adcf29f50cb5318e24123602468e738b5 commit 4cbc3e5adcf29f50cb5318e24123602468e738b5 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Nov 18 09:00:10 2015 + Multilanguage: add english po file. Also added target for update po files. --- .gitignore | 1 + Makefile.am | 3 + po/LINGUAS | 2 +- po/en.po| 446 4 files changed, 451 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c66a86f..90d298b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.eo.* *.sed *.sin +*.gmo Enventor.h diff --git a/Makefile.am b/Makefile.am index e678dde..1a867bc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,3 +26,6 @@ SUBDIRS = src data . po pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = pc/enventor.pc + +update-po: + $(MAKE) $(AM_MAKEFLAGS) -C po update-po diff --git a/po/LINGUAS b/po/LINGUAS index 8b13789..c574d07 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ - +en diff --git a/po/en.po b/po/en.po new file mode 100644 index 000..1be1b2f --- /dev/null +++ b/po/en.po @@ -0,0 +1,446 @@ +# English translation for Enventor package. +# Copyright (C) 2015 Enventor development team +# This file is distributed under the same license as the enventor package. +# nikawhite belyavski...@gmail.com +# +msgid "" +msgstr "" +"Project-Id-Version: enventor 0.6.0\n" +"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-11-17 17:37+\n" +"PO-Revision-Date: 2015-11-17 17:37+\n" +"Last-Translator: nikawhite belyavski...@gmail.com \n" +"Language-Team: \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/bin/base_gui.c:61 +#, c-format +msgid "%s - Enventor" +msgstr "" + +#: src/bin/config_data.c:66 +msgid "Failed to generate tmp folder!" +msgstr "" + +#: src/bin/config_data.c:85 src/bin/config_data.c:98 +#, c-format +msgid "Cannot create a config folder \"%s\"" +msgstr "" + +#: src/bin/config_data.c:109 +#, c-format +msgid "Cannot save a config file \"%s\"" +msgstr "" + +#: src/bin/config_data.c:148 +#, c-format +msgid "Cannot load a config file \"%s\"" +msgstr "" + +#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132 +#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281 +#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42 +#: src/bin/text_setting.c:487 src/bin/text_setting.c:540 +#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170 +msgid "Failed to allocate Memory!" +msgstr "" + +#: src/bin/file_mgr.c:70 +msgid "EDC has been changed on the file system." +msgstr "" + +#: src/bin/file_mgr.c:72 +msgid "Do you want to replace the contents?" +msgstr "" + +#: src/bin/file_mgr.c:83 +msgid "Save As" +msgstr "" + +#: src/bin/file_mgr.c:91 src/bin/search.c:402 +msgid "Replace" +msgstr "" + +#: src/bin/file_mgr.c:97 +msgid "Ignore" +msgstr "" + +#: src/bin/file_mgr.c:157 +#, c-format +msgid "File saved. \"%s\"" +msgstr "" + +#: src/bin/file_mgr.c:159 +#, c-format +msgid "Already saved. \"%s\"" +msgstr "" + +#: src/bin/goto.c:89 +msgid "Invalid line number" +msgstr "" + +#: src/bin/goto.c:138 +msgid "Enventor Goto Line" +msgstr "" + +#: src/bin/goto.c:142 +msgid "Go to Line" +msgstr "" + +#: src/bin/goto.c:164 +#, c-format +msgid "Enter line number [1..%d]:" +msgstr "" + +#: src/bin/goto.c:188 src/bin/menu.c:162 +msgid "Ok" +msgstr "" + +#: src/bin/goto.c:200 src/bin/search.c:424 +msgid "Failed to grab key - Escape" +msgstr "" + +#: src/bin/live_edit.c:918 +msgid "Double click the part to confirm." +msgstr "" + +#: src/bin/live_edit.c:988 +msgid "Select a part to add in Live View." +msgstr "" + +#: src/bin/live_edit.c:1063 +msgid "Faild to allocate Memory!" +msgstr "" + +#: src/bin/main.c:24 +msgid "Auto Completion Enabled." +msgstr "" + +#: src/bin/main.c:25 +msgid "Auto Completion Disabled." +msgstr "" + +#: src/bin/main.c:34 +msgid "Auto Indentation Enabled." +msgstr "" + +#: src/bin/main.c:35 +msgid "Auto Indentation Disabled." +msgstr "" + +#: src/bin/main.c:179 +#, c-format +msgid &quo
[EGIT] [tools/enventor] master 03/04: Multilanguage: generate template pot file.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=90f58d7c0a76dffc32e2640c0844a65c72415c82 commit 90f58d7c0a76dffc32e2640c0844a65c72415c82 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Nov 17 17:40:51 2015 + Multilanguage: generate template pot file. --- .gitignore | 1 - po/enventor.pot | 447 2 files changed, 447 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5962fc2..c66a86f 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,6 @@ po/Rules-quot po/en@boldquot.header po/en@quot.header po/stamp-po -po/enventor.pot intl/ config.rpath missing diff --git a/po/enventor.pot b/po/enventor.pot new file mode 100644 index 000..d091367 --- /dev/null +++ b/po/enventor.pot @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Enventor development team +# This file is distributed under the same license as the enventor package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: enventor 0.6.0\n" +"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-11-17 17:37+\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <l...@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/bin/base_gui.c:61 +#, c-format +msgid "%s - Enventor" +msgstr "" + +#: src/bin/config_data.c:66 +msgid "Failed to generate tmp folder!" +msgstr "" + +#: src/bin/config_data.c:85 src/bin/config_data.c:98 +#, c-format +msgid "Cannot create a config folder \"%s\"" +msgstr "" + +#: src/bin/config_data.c:109 +#, c-format +msgid "Cannot save a config file \"%s\"" +msgstr "" + +#: src/bin/config_data.c:148 +#, c-format +msgid "Cannot load a config file \"%s\"" +msgstr "" + +#: src/bin/config_data.c:156 src/bin/file_mgr.c:193 src/bin/goto.c:132 +#: src/bin/menu.c:687 src/bin/newfile.c:140 src/bin/panes.c:281 +#: src/bin/search.c:332 src/bin/setting.c:467 src/bin/statusbar.c:42 +#: src/bin/text_setting.c:487 src/bin/text_setting.c:540 +#: src/bin/text_setting.c:571 src/bin/text_setting.c:1070 src/bin/tools.c:170 +msgid "Failed to allocate Memory!" +msgstr "" + +#: src/bin/file_mgr.c:70 +msgid "EDC has been changed on the file system." +msgstr "" + +#: src/bin/file_mgr.c:72 +msgid "Do you want to replace the contents?" +msgstr "" + +#: src/bin/file_mgr.c:83 +msgid "Save As" +msgstr "" + +#: src/bin/file_mgr.c:91 src/bin/search.c:402 +msgid "Replace" +msgstr "" + +#: src/bin/file_mgr.c:97 +msgid "Ignore" +msgstr "" + +#: src/bin/file_mgr.c:157 +#, c-format +msgid "File saved. \"%s\"" +msgstr "" + +#: src/bin/file_mgr.c:159 +#, c-format +msgid "Already saved. \"%s\"" +msgstr "" + +#: src/bin/goto.c:89 +msgid "Invalid line number" +msgstr "" + +#: src/bin/goto.c:138 +msgid "Enventor Goto Line" +msgstr "" + +#: src/bin/goto.c:142 +msgid "Go to Line" +msgstr "" + +#: src/bin/goto.c:164 +#, c-format +msgid "Enter line number [1..%d]:" +msgstr "" + +#: src/bin/goto.c:188 src/bin/menu.c:162 +msgid "Ok" +msgstr "" + +#: src/bin/goto.c:200 src/bin/search.c:424 +msgid "Failed to grab key - Escape" +msgstr "" + +#: src/bin/live_edit.c:918 +msgid "Double click the part to confirm." +msgstr "" + +#: src/bin/live_edit.c:988 +msgid "Select a part to add in Live View." +msgstr "" + +#: src/bin/live_edit.c:1063 +msgid "Faild to allocate Memory!" +msgstr "" + +#: src/bin/main.c:24 +msgid "Auto Completion Enabled." +msgstr "" + +#: src/bin/main.c:25 +msgid "Auto Completion Disabled." +msgstr "" + +#: src/bin/main.c:34 +msgid "Auto Indentation Enabled." +msgstr "" + +#: src/bin/main.c:35 +msgid "Auto Indentation Disabled." +msgstr "" + +#: src/bin/main.c:179 +#, c-format +msgid "Live View Scale: %2.2fx" +msgstr "" + +#: src/bin/main.c:205 +#, c-format +msgid "Font Size: %1.1fx" +msgstr "" + +#: src/bin/main.c:458 +#, c-format +msgid "Program Run: \"%s\"" +msgstr "" + +#: src/bin/main.c:557 +msgid "Insertion of template code is disabled while in Live Edit mode"
[EGIT] [tools/enventor] master 01/01: Candidates list: add attributes rel*.to_x/y.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=4ddc93b231f74b0379562d694d356a18436beb42 commit 4ddc93b231f74b0379562d694d356a18436beb42 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 22 15:46:02 2015 + Candidates list: add attributes rel*.to_x/y. @fix T2500 --- src/lib/edc_parser.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 04aa803..7ef5084 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -890,6 +890,20 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) attr.value.append_str = ATTR_APPEND_SEMICOLON; eina_inarray_push(td->attrs, ); + memset(, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("to_x"); + attr.value.type = ATTR_VALUE_PART; + attr.value.prepend_str = ATTR_PREPEND_COLON; + attr.value.append_str = ATTR_APPEND_SEMICOLON; + eina_inarray_push(td->attrs, ); + + memset(, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("to_y"); + attr.value.type = ATTR_VALUE_PART; + attr.value.prepend_str = ATTR_PREPEND_COLON; + attr.value.append_str = ATTR_APPEND_SEMICOLON; + eina_inarray_push(td->attrs, ); + //Type: State memset(, 0x00, sizeof(parser_attr)); attr.keyword = eina_stringshare_add("STATE_SET"); --
[EGIT] [core/efl] master 01/01: Edje_entry: emit "cursor, changed, manual" for Home/End/PgUp/PgDown.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=278b20954a7583d42bc93df0257cd84f0646932e commit 278b20954a7583d42bc93df0257cd84f0646932e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 22 15:12:47 2015 +0100 Edje_entry: emit "cursor,changed,manual" for Home/End/PgUp/PgDown. Summary: The keys Home/End/PgUp/PgDown are changes the entry cursor position in the same way as arrow keys. For unified behavior callback "cursor,changed,manual", added emitting signal for those keys events. Reviewers: tasn, cedric, herdsman, thiepha Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D3055 --- src/lib/edje/edje_entry.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 237e49a..e32a52e 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -1686,6 +1686,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (shift) _sel_extend(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,home", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!alt) && @@ -1707,6 +1708,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (shift) _sel_extend(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,end", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((control) && (!shift) && (!strcmp(ev->keyname, "v"))) @@ -1830,6 +1832,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, else _sel_clear(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,pgup", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if (!strcmp(ev->key, "Next") || @@ -1853,6 +1856,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, else _sel_clear(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,pgdn", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter"))) --
[EGIT] [tools/enventor] master 01/01: Show the save warning dialog on close unsaved file.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a2e8ea302898143597976df968e294205b73b0d1 commit a2e8ea302898143597976df968e294205b73b0d1 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Sep 18 09:36:07 2015 + Show the save warning dialog on close unsaved file. --- src/bin/file_mgr.c | 1 + src/lib/enventor_smart.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c index aef29ff..60cf5b6 100644 --- a/src/bin/file_mgr.c +++ b/src/bin/file_mgr.c @@ -149,6 +149,7 @@ file_mgr_edc_save(void) file_mgr_data *fmd = g_fmd; Eina_Bool save_success = enventor_object_save(fmd->enventor, config_input_path_get()); + enventor_object_modified_set(fmd->enventor, !save_success); if (!config_stats_bar_get()) return; diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 4b01a10..604312f 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -631,6 +631,7 @@ _enventor_object_save(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, build_edc(); edit_saved_set(pd->ed, EINA_FALSE); +edit_changed_set(pd->ed, EINA_TRUE); modified.self_changed = EINA_TRUE; evas_object_smart_callback_call(pd->obj, SIG_EDC_MODIFIED, ); --
[EGIT] [tools/enventor] master 01/01: Goto: close window from the toolbar.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=27c17e9a43fcfad84f07f81217f5a51c05cf4c8b commit 27c17e9a43fcfad84f07f81217f5a51c05cf4c8b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Sep 17 13:56:37 2015 + Goto: close window from the toolbar. Summary: moved the focus management for "goto" window from base_gui.c inside goto.c. Added timer, that make delay between unfocus of the "goto" window and freeing the "goto" internal structures. It is necessary because when the "goto" window is active and pressed button on toolbar firstly emitted the signal "unfocused" for window and then happens button click event. @fix T1604 --- src/bin/base_gui.c | 6 +++--- src/bin/goto.c | 23 +++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index cf31ad4..8bb35d6 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -20,14 +20,14 @@ win_delete_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, { menu_exit(); } - +/* static void win_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { goto_close(); } - +*/ static void win_resize_cb(void *data EINA_UNUSED, Evas *o EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -231,7 +231,7 @@ base_gui_init(void) evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, win_resize_cb, NULL); evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb, NULL); - evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL); +/* evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);*/ //Window icon Evas_Object *icon = evas_object_image_add(evas_object_evas_get(win)); diff --git a/src/bin/goto.c b/src/bin/goto.c index 246c755..80bcc04 100644 --- a/src/bin/goto.c +++ b/src/bin/goto.c @@ -4,6 +4,8 @@ #include "common.h" +#define UNFOCUS_DELAY 0.2 + typedef struct goto_s { Evas_Object *win; @@ -11,6 +13,7 @@ typedef struct goto_s Evas_Object *entry; Evas_Object *btn; Evas_Object *enventor; + Ecore_Timer *timer; } goto_data; static goto_data *g_gd = NULL; @@ -26,6 +29,23 @@ win_delete_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, goto_close(); } +static Eina_Bool +timer_cb(void *data EINA_UNUSED) +{ + goto_close(); + return ECORE_CALLBACK_CANCEL; +} + +static void +win_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + goto_data *gd = (goto_data*) data; + if (gd->timer) return; + evas_object_hide(gd->win); + gd->timer = ecore_timer_add(UNFOCUS_DELAY, timer_cb, gd); +} + static void win_moved_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -123,6 +143,7 @@ goto_open(Evas_Object *enventor) win_w = (Evas_Coord) ((double) win_w * elm_config_scale_get()); win_h = (Evas_Coord) ((double) win_h * elm_config_scale_get()); evas_object_resize(win, win_w, win_h); + evas_object_smart_callback_add(win, "unfocused", win_unfocused_cb, gd); evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb, gd); evas_object_smart_callback_add(win, "moved", win_moved_cb, gd); @@ -206,6 +227,8 @@ goto_close(void) evas_object_geometry_get(gd->win, NULL, NULL, _w, _h); elm_win_screen_position_get(gd->win, _x, _y); evas_object_del(gd->win); + if (gd->timer) + ecore_timer_del(gd->timer); free(gd); g_gd = NULL; --
[EGIT] [tools/enventor] master 01/01: Parser: enhance quality of parsing the part state names.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e011f68951f2f4d012e63f73c2f83f5351cd4804 commit e011f68951f2f4d012e63f73c2f83f5351cd4804 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Thu Sep 17 14:19:01 2015 + Parser: enhance quality of parsing the part state names. Summary: added ability parsing different cases of usage "description" and "desc" keywords. Now support descriptions without names - those states will be defined as "default". For keyword "description" attribute "state" non mandatory. Examples of support syntax: desc {"state_name";} desc {image.normal: "img";} <- "default" 0.0; description {state: "state_name"; ...} description {"state_name";...} description {image.normal: "img";} <- "default" 0.0; @fix T2680 Reviewers: Hermet Maniphest Tasks: T2680 Differential Revision: https://phab.enlightenment.org/D2969 --- src/lib/edc_parser.c | 48 +++- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 39bf4ff..66be0ad 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -254,17 +254,47 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) //we got a description! if (desc_idx != -1) { - p += DESC_LEN[desc_idx]; - char *name_begin = strstr(p, QUOT_UTF8); - if (!name_begin) goto end; - char *state = strstr(p, STATE); - if ((desc_idx == 1) && (!state || state > name_begin)) + desc_name = DEF_STATE_NAME; /* By default state will be */ + desc_name_len = DEF_STATE_LEN;/* recognized as "default" 0.0*/ + value_convert = 0; + + p += DESC_LEN[desc_idx]; /* skip keyword */ + p = strstr(p, "{"); + if (!p) goto end; + char *end_brace = strstr(p, "}"); /*Limit size of text for processing*/ + if (!end_brace) + goto end; + + /* proccessing for "description" keyword with "state" attribute */ + if (desc_idx == 1) { - desc_name = DEF_STATE_NAME; - desc_name_len = DEF_STATE_LEN; - value_convert = 0; - continue; + char *state = strstr(p, STATE); + if (!state || state > end_brace) /* if name of state didn't find, */ + continue; /* description will recognized as default 0.0*/ + else + p += 5; /*5 is strlen("state");*/ } + + char *name_begin = strstr(p, QUOT_UTF8); + if (!name_begin) + continue; + char *end_range = strstr(p, ";"); + if (!end_range) goto end; + + if ((name_begin > end_brace) || /* if string placed outside desc block*/ + (name_begin > end_range) || + (end_range > end_brace)) +continue; + + /* Exception cases like: desc {image.normal: "img";} */ + int alpha_present = 0; + for (char *string_itr = name_begin; (string_itr > p) && (!alpha_present); string_itr--) +alpha_present = isalpha((int)*string_itr); + + if (alpha_present && desc_idx == 0) +continue; + + /*Extract state name and value */ name_begin += QUOT_UTF8_LEN; p = name_begin; char *name_end = strstr(p, QUOT_UTF8); --
[EGIT] [tools/enventor] master 01/01: Highlight: apply disable/enable the highlight status for all groups.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=abe5ef0aa6ed913bc804d60439e691bd0b5fe5a4 commit abe5ef0aa6ed913bc804d60439e691bd0b5fe5a4 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 15 15:41:08 2015 + Highlight: apply disable/enable the highlight status for all groups. The highlight feature is provided for global usage (it means, that disabling highlighting will turn off it for ALL parts in ALL groups). This patch add management the highlight feature status for cases when the highlight was enabled when one group was active and disable in another group. --- src/lib/enventor_smart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 11296e3..60e3a45 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -102,6 +102,8 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, double state_value, } if (edit_part_highlight_get(pd->ed)) view_part_highlight_set(VIEW_DATA, part_name); + else + view_part_highlight_set(VIEW_DATA, NULL); if (!state_name) { --
[EGIT] [tools/enventor] master 01/02: Fix compilation warnings for enventor library.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c8fdf43e9a6556d0cce62ace9f65aa262c18dbb3 commit c8fdf43e9a6556d0cce62ace9f65aa262c18dbb3 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 15 17:39:51 2015 + Fix compilation warnings for enventor library. --- src/lib/ctxpopup.c | 5 +++-- src/lib/edc_editor.c | 10 +- src/lib/edj_viewer.c | 2 -- src/lib/enventor_smart.c | 7 --- src/lib/template.c | 1 + 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c index 7330d32..72acad0 100644 --- a/src/lib/ctxpopup.c +++ b/src/lib/ctxpopup.c @@ -91,7 +91,7 @@ slider_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) else { //if the last digit number is 0 then round up. - double val = elm_slider_value_get(slider); + val = elm_slider_value_get(slider); snprintf(buf, sizeof(buf), " %0.2f", val); double round_down = atof(buf); snprintf(buf, sizeof(buf), " %0.1f", val); @@ -196,7 +196,8 @@ entry_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) } static void -toggle_changed_cb(void *data, Evas_Object *obj, void *event_info) +toggle_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { ctxpopup_data *ctxdata = data; Evas_Object *box = elm_object_content_get(ctxdata->ctxpopup); diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 419b950..cbc5ac3 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -663,13 +663,13 @@ void edit_text_insert(edit_data *ed, const char *text) { const char *selection = elm_entry_selection_get(ed->en_edit); - selection = elm_entry_markup_to_utf8(selection); - if (!selection) + char *selection_utf8 = elm_entry_markup_to_utf8(selection); + if (!selection_utf8) { elm_entry_entry_set(ed->en_edit, text); return; } - int lenght = strlen(selection); + int lenght = strlen(selection_utf8); int pos_from = elm_entry_cursor_pos_get(ed->en_edit) - lenght; Evas_Object *tb = elm_entry_textblock_get(ed->en_edit); @@ -688,7 +688,7 @@ edit_text_insert(edit_data *ed, const char *text) Evas_Textblock_Cursor *c_2 = evas_object_textblock_cursor_new(tb); evas_textblock_cursor_pos_set(c_2, pos_from + lenght); /* delete replaced text, and make diff into redoundo module */ - redoundo_text_push(ed->rd, selection, pos_from, lenght, EINA_FALSE); + redoundo_text_push(ed->rd, selection_utf8, pos_from, lenght, EINA_FALSE); evas_textblock_cursor_range_delete(c_1, c_2); evas_textblock_cursor_free(c_1); @@ -696,7 +696,7 @@ edit_text_insert(edit_data *ed, const char *text) evas_textblock_cursor_pos_set(cur, old_pos); elm_entry_calc_force(ed->en_edit); - free(selection); + free(selection_utf8); } static void diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index 16dc5e1..f65f05f 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -106,8 +106,6 @@ view_images_monitor_set(view_data *vd) Eina_List *imgs = edje_edit_images_list_get(vd->layout); Eina_List *paths = build_path_get(ENVENTOR_PATH_TYPE_IMAGE); - Eina_List *imgs_pathes = NULL; - //List up new image pathes and add monitors EINA_LIST_FOREACH(imgs, l, img) { diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 60e3a45..4b01a10 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -54,10 +54,11 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { /* Internal method implementation*/ /*/ static Eina_Bool -key_up_cb(void *data, int type EINA_UNUSED, void *ev) +key_up_cb(void *data, int type EINA_UNUSED, void *ev EINA_UNUSED) { Enventor_Object_Data *pd = data; pd->key_down = EINA_FALSE; + return ECORE_CALLBACK_DONE; } static Eina_Bool @@ -67,10 +68,10 @@ key_down_cb(void *data, int type EINA_UNUSED, void *ev) Ecore_Event_Key *event = ev; Eina_Bool ret; - eo_do_ret(pd->obj, ret, enventor_obj_focus_get()); + ret = enventor_object_focus_get(pd->obj); if (!ret) return ECORE_CALLBACK_PASS_ON; - if (pd->key_down) return; + if (pd->key_down) return ECORE_CALLBACK_PASS_ON; pd->key_down = EINA_TRUE; if (autocomp_event_dispatch(event->key)) return ECORE_CALLBACK_DONE; diff --git a/src/lib/template.c b/src/lib/template.c index 365d085..f5200f9 100644 --- a/src/lib/template.c +++ b/src/lib/template.c @@ -186,6 +186,7 @@ template_part_insert(edit_data *ed, Edje_Part_Type part_type, case EDJE_PART_TYPE_MESH_NODE: case EDJE_PART_TYPE_LIGHT:
[EGIT] [tools/enventor] master 02/02: Fix compilation warnings for enventor application.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e2cc943e77088b6ce7f574b2d013980100cb8d02 commit e2cc943e77088b6ce7f574b2d013980100cb8d02 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 15 17:42:03 2015 + Fix compilation warnings for enventor application. --- src/bin/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/main.c b/src/bin/main.c index 45f30ea..a3bcb25 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -576,7 +576,7 @@ default_template_insert(app_data *ad) } static Eina_Bool -alt_func(app_data *ad, Evas_Event_Key_Down *event) +alt_func(app_data *ad EINA_UNUSED, Evas_Event_Key_Down *event) { if (evas_key_modifier_is_set(event->modifiers, "Shift") || evas_key_modifier_is_set(event->modifiers, "Ctrl")) --
[EGIT] [tools/enventor] master 01/01: Ctxpopup: dismiss ctxpopup after the candidate chosen.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1955c96144ef29b81fe2442d4b8c9d0e4f24144b commit 1955c96144ef29b81fe2442d4b8c9d0e4f24144b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 15:25:36 2015 + Ctxpopup: dismiss ctxpopup after the candidate chosen. Summary: Add the elm_ctxpopup_dismiss call inside the candidate select callback function. Delete unused function ctxpopup_candidate_selected_cb. Test Plan: change rel1.to param using candidate list. After select candidate - ctxpopup should be dismissed. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3043 --- src/lib/ctxpopup.c | 1 + src/lib/edc_editor.c | 7 --- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c index d507d70..7330d32 100644 --- a/src/lib/ctxpopup.c +++ b/src/lib/ctxpopup.c @@ -37,6 +37,7 @@ ctxpopup_it_cb(void *data, Evas_Object *obj, void *event_info) ctxdata->attr->prepend_str, text, ctxdata->attr->append_str); ctxdata->changed_cb(ctxdata->data, obj, ctxdata->candidate); + elm_ctxpopup_dismiss(obj); } static void diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 770ff00..a6beb09 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -335,13 +335,6 @@ ctxpopup_candidate_dismiss_cb(void *data, Evas_Object *obj, } static void -ctxpopup_candidate_selected_cb(void *data, Evas_Object *obj, void *event_info) -{ - edit_data *ed = data; - elm_ctxpopup_dismiss(obj); -} - -static void ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info) { edit_data *ed = data; --
[EGIT] [tools/enventor] master 01/01: Autocomp: bring the selected item in candidates list.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=778d3c48790b001d1c878c4cd10b469aef4fac52 commit 778d3c48790b001d1c878c4cd10b469aef4fac52 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 14:54:36 2015 + Autocomp: bring the selected item in candidates list. Summary: For cases when the autocomplete list contain a lot of items, that the list enables scrollbar. This make impossible to scroll last item by Down arrows. It is happens because the focus is not allow for elm_list widget. This patch bring selected item manually. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3040 --- src/lib/auto_comp.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 94d4950..b2b5b29 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -749,7 +749,11 @@ list_item_move(autocomp_data *ad, Eina_Bool up) Elm_Object_Item *it = elm_list_selected_item_get(ad->list); if (up) it = elm_list_item_prev(it); else it = elm_list_item_next(it); - if (it) elm_list_item_selected_set(it, EINA_TRUE); + if (it) + { +elm_list_item_selected_set(it, EINA_TRUE); +elm_list_item_bring_in(it); + } evas_object_smart_callback_add(entry, "unfocused", anchor_unfocused_cb, ad); --
[EGIT] [tools/enventor] master 01/01: Static analyze: "Value stored to 'var' during its initialization is never read"
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=19fdca437694e7430f620581b35c5a2d21f34c4a commit 19fdca437694e7430f620581b35c5a2d21f34c4a Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 15:36:17 2015 + Static analyze: "Value stored to 'var' during its initialization is never read" Summary: Fix clang static analyzer warning. @fix Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3045 --- src/lib/edc_editor.c | 2 -- src/lib/indent.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 767924d..a19c75d 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -578,8 +578,6 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, return; } - Evas_Object *textblock = elm_entry_textblock_get(obj); - Evas_Textblock_Cursor *cursor = evas_object_textblock_cursor_get(textblock); const char *str = elm_entry_entry_get(obj); char *text = elm_entry_markup_to_utf8(str); int cur_pos = elm_entry_cursor_pos_get(obj); diff --git a/src/lib/indent.c b/src/lib/indent.c index de64bca..f0b04d8 100644 --- a/src/lib/indent.c +++ b/src/lib/indent.c @@ -250,7 +250,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED, redoundo_data *rd = evas_object_data_get(entry, "redoundo"); char *utf8_ptr = utf8; - char *utf8_lexem = utf8_ptr; + char *utf8_lexem = NULL; char *utf8_end = utf8 + utf8_size; Eina_List *code_lines = NULL; Eina_Strbuf *buf = eina_strbuf_new(); --
[EGIT] [tools/enventor] master 01/01: Edc_editor: after insert candidate, move cursor to end of attribute,
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=78392731d433d676d6abe1a9442a6539de78d32b commit 78392731d433d676d6abe1a9442a6539de78d32b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 15:34:41 2015 + Edc_editor: after insert candidate, move cursor to end of attribute, Summary: This is correct behaviour for cursor placement after inserting candidate into edc code. Previously cursor was placed before ':'. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3044 --- src/lib/edc_editor.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index a6beb09..767924d 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -367,8 +367,6 @@ ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info) elm_entry_entry_insert(ed->en_edit, text); elm_entry_calc_force(ed->en_edit); - elm_entry_cursor_pos_set(ed->en_edit, cur_pos); - edit_changed_set(ed, EINA_TRUE); evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_CHANGED, (void *)text); --
[EGIT] [tools/enventor] master 01/01: Edc_editor: fix compile warning and clear code.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=17c4e71fc108cb32f8481de6e9a0af0d89a7a906 commit 17c4e71fc108cb32f8481de6e9a0af0d89a7a906 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 17:39:47 2015 + Edc_editor: fix compile warning and clear code. Reveret "Edc_editor: after insert candidate, move cursor to end of attribute", because it cause wrong behaviour. Clear code, make selection in entry by elm_entry_selection_set. --- src/lib/edc_editor.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index a19c75d..419b950 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -335,7 +335,8 @@ ctxpopup_candidate_dismiss_cb(void *data, Evas_Object *obj, } static void -ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info) +ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info) { edit_data *ed = data; const char *text = event_info; @@ -358,15 +359,14 @@ ctxpopup_candidate_changed_cb(void *data, Evas_Object *obj, void *event_info) } } - elm_entry_cursor_pos_set(ed->en_edit, cur_pos); - elm_entry_cursor_selection_begin(ed->en_edit); - elm_entry_cursor_pos_set(ed->en_edit, end_pos); - elm_entry_cursor_selection_end(ed->en_edit); + elm_entry_select_region_set(ed->en_edit, cur_pos, end_pos); redoundo_text_relative_push(ed->rd, text); elm_entry_entry_insert(ed->en_edit, text); elm_entry_calc_force(ed->en_edit); + elm_entry_cursor_pos_set(ed->en_edit, cur_pos); + edit_changed_set(ed, EINA_TRUE); evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_CHANGED, (void *)text); --
[EGIT] [tools/enventor] master 01/01: edc_parser: recognize keyword "offset" as changeable value.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9647ca44d232298d4f3d7dcf8b233ab47579ec0d commit 9647ca44d232298d4f3d7dcf8b233ab47579ec0d Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 14:22:25 2015 + edc_parser: recognize keyword "offset" as changeable value. Summary: Keyword "offset" added into list of arguments. This attribute is represented by two spinners with range -100..100. "offset" is used inside "relative" and "fill" blocks Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3027 --- src/lib/edc_parser.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 17960fc..39bf4ff 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -675,6 +675,21 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) attr.value.append_str = ATTR_APPEND_SEMICOLON; eina_inarray_push(td->attrs, ); + xy = eina_array_new(2); + eina_array_push(xy, eina_stringshare_add("X:")); + eina_array_push(xy, eina_stringshare_add("Y:")); + + memset(, 0x00, sizeof(parser_attr)); + attr.keyword = eina_stringshare_add("offset"); + attr.value.strs = xy; + attr.value.cnt = 2; + attr.value.min = -100; + attr.value.max = 100; + attr.value.type = ATTR_VALUE_INTEGER; + attr.value.prepend_str = ATTR_PREPEND_COLON; + attr.value.append_str = ATTR_APPEND_SEMICOLON; + eina_inarray_push(td->attrs, ); + //Type: Float xy = eina_array_new(2); eina_array_push(xy, eina_stringshare_add("X:")); --
[EGIT] [tools/enventor] master 01/01: Edc_editor: remove "cursor, changed, manual" callback.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=ae2d88fa7626486ab5f3859293fe4c6e130004b0 commit ae2d88fa7626486ab5f3859293fe4c6e130004b0 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Sep 14 14:34:42 2015 + Edc_editor: remove "cursor,changed,manual" callback. Summary: For the initiate synchronizing cursor position and the live view object was moved edit_view_sync into callback function for "cursor,changed" entry signal. It is neccessary, because keys "Page up" and "Page down" didn't initiate the signal "cursor,changed,manual". Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D3034 --- src/lib/edc_editor.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index e765a7c..770ff00 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -710,21 +710,13 @@ edit_text_insert(edit_data *ed, const char *text) free(selection); } - -static void -edit_cursor_changed_manual_cb(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - edit_data *ed = data; - edit_view_sync(ed); -} - static void edit_cursor_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { edit_data *ed = data; cur_line_pos_set(ed, EINA_FALSE); + edit_view_sync(ed); } static void @@ -1160,8 +1152,6 @@ edit_init(Evas_Object *enventor) elm_entry_line_wrap_set(en_edit, ELM_WRAP_NONE); evas_object_smart_callback_add(en_edit, "focused", edit_focused_cb, ed); evas_object_smart_callback_add(en_edit, "changed,user", edit_changed_cb, ed); - evas_object_smart_callback_add(en_edit, "cursor,changed,manual", - edit_cursor_changed_manual_cb, ed); evas_object_smart_callback_add(en_edit, "cursor,changed", edit_cursor_changed_cb, ed); evas_object_smart_callback_add(en_edit, "clicked,double", --
[EGIT] [core/efl] master 01/01: Edje_cc: check value for text.source attribute.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dbf7a0e368097bec5558b98ddf1ea8818e3e commit dbf7a0e368097bec5558b98ddf1ea8818e3e Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Sep 8 18:34:16 2015 +0900 Edje_cc: check value for text.source attribute. Summary: Add additional check for description.text.source and description.text.text_source attributes in TEXT part. For cases when as source uses non TEXT/TEXTBLOCK part serialization process should be stopped. This will cause segmentation fault on runtime. (see edje_text.c line 251) Reviewers: Hermet, raster, cedric, jpeg Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D3026 Signed-off-by: Jean-Philippe Andre <jp.an...@samsung.com> --- src/bin/edje/edje_cc_out.c | 37 + 1 file changed, 37 insertions(+) diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 6a85f66..f40687d 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -382,6 +382,35 @@ check_image_part_desc(Edje_Part_Collection *pc, Edje_Part *ep, } } +static void +check_text_part_desc(Edje_Part_Collection *pc, Edje_Part *ep, + Edje_Part_Description_Text *epd, Eet_File *ef) +{ + if (epd->text.id_source != -1) + { +if ((pc->parts[epd->text.id_source]->type != EDJE_PART_TYPE_TEXT) && +(pc->parts[epd->text.id_source]->type != EDJE_PART_TYPE_TEXTBLOCK)) + { + error_and_abort(ef, "Collection \"%s\" Part \"%s\" Description \"%s\" [%.3f]: " + "text.source point to a non TEXT part \"%s\"!", + pc->part, ep->name,epd->common.state.name, + epd->common.state.value, pc->parts[epd->text.id_source]->name); + } + } + + if (epd->text.id_text_source != -1) + { +if ((pc->parts[epd->text.id_text_source]->type != EDJE_PART_TYPE_TEXT) && +(pc->parts[epd->text.id_text_source]->type != EDJE_PART_TYPE_TEXTBLOCK)) + { + error_and_abort(ef, "Collection \"%s\" Part \"%s\" Description \"%s\" [%.3f]: " + "text.text_source point to a non TEXT part \"%s\"!", + pc->part, ep->name,epd->common.state.name, + epd->common.state.value, pc->parts[epd->text.id_text_source]->name); + } + } +} + /* This function check loops between groups. For example: > part in group A. It's source is B. @@ -502,6 +531,14 @@ check_part(Edje_Part_Collection *pc, Edje_Part *ep, Eet_File *ef) check_packed_items(pc, ep, ef); else if (ep->type == EDJE_PART_TYPE_GROUP) check_source_links(pc, ep, ef, group_path); + else if (ep->type == EDJE_PART_TYPE_TEXT) + { +check_text_part_desc(pc, ep, (Edje_Part_Description_Text*) ep->default_desc, ef); + +for (i = 0; i < ep->other.desc_count; ++i) + check_text_part_desc(pc, ep, (Edje_Part_Description_Text*) ep->other.desc[i], ef); + } + /* FIXME: When smart masks are supported, remove this check */ if (ep->clip_to_id != -1 && --
[EGIT] [tools/enventor] master 01/01: Edc_editor: enhance enventor_object_text insert API.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1fd611f4b617cc04b9f574ba94759d808af00ee0 commit 1fd611f4b617cc04b9f574ba94759d808af00ee0 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Sep 4 15:42:43 2015 +0900 Edc_editor: enhance enventor_object_text insert API. Summary: added edit_text_insert function, that shared for public use as enventor_object_text_insert This API provide functionality for text insert with support correct text replacement and redo/undo feature support. @fix T2691 Test Plan: Lunch Enventor. Open "Find/Replace" dialog. Fill "Find" field with exist string and fill "Replace with" field with any text. Press "Replace All". Close dialog window and check how work Ctrl+Z and Ctrl+R hotkey combinations. Reviewers: Hermet Maniphest Tasks: T2691 Differential Revision: https://phab.enlightenment.org/D3005 --- src/lib/edc_editor.c | 41 + src/lib/enventor_private.h | 1 + src/lib/enventor_smart.c | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 4b7e6d4..e765a7c 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -670,6 +670,47 @@ edit_selection_start_cb(void *data, Evas_Object *obj EINA_UNUSED, ed->select_pos = elm_entry_cursor_pos_get(ed->en_edit); } +void +edit_text_insert(edit_data *ed, const char *text) +{ + const char *selection = elm_entry_selection_get(ed->en_edit); + selection = elm_entry_markup_to_utf8(selection); + if (!selection) + { +elm_entry_entry_set(ed->en_edit, text); +return; + } + int lenght = strlen(selection); + int pos_from = elm_entry_cursor_pos_get(ed->en_edit) - lenght; + + Evas_Object *tb = elm_entry_textblock_get(ed->en_edit); + Evas_Textblock_Cursor *cur = evas_object_textblock_cursor_get(tb); + int old_pos = evas_textblock_cursor_pos_get(cur); + evas_textblock_cursor_pos_set(cur, pos_from + lenght); + + /* append replacement text, and add relative diff into redoundo module */ + evas_textblock_cursor_pos_set(cur, pos_from + lenght); + evas_textblock_cursor_text_append(cur, text); + redoundo_text_relative_push(ed->rd, text); + + Evas_Textblock_Cursor *c_1 = evas_object_textblock_cursor_new(tb); + evas_textblock_cursor_pos_set(c_1, pos_from); + + Evas_Textblock_Cursor *c_2 = evas_object_textblock_cursor_new(tb); + evas_textblock_cursor_pos_set(c_2, pos_from + lenght); + /* delete replaced text, and make diff into redoundo module */ + redoundo_text_push(ed->rd, selection, pos_from, lenght, EINA_FALSE); + evas_textblock_cursor_range_delete(c_1, c_2); + + evas_textblock_cursor_free(c_1); + evas_textblock_cursor_free(c_2); + evas_textblock_cursor_pos_set(cur, old_pos); + + elm_entry_calc_force(ed->en_edit); + free(selection); +} + + static void edit_cursor_changed_manual_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 82638a8..8347dc7 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -277,5 +277,6 @@ void edit_selection_clear(edit_data *ed); Eina_Bool edit_redoundo(edit_data *ed, Eina_Bool undo); void edit_disabled_set(edit_data *ed, Eina_Bool disabled); void edit_error_set(edit_data *ed, int line, const char *target); +void edit_text_insert(edit_data *ed, const char *text); #endif diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index a7b9f12..11296e3 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -524,7 +524,7 @@ EOLIAN static void _enventor_object_text_insert(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, const char *text) { - elm_entry_entry_insert(edit_entry_get(pd->ed), text); + edit_text_insert(pd->ed, text); } EOLIAN static void --
[EGIT] [tools/enventor] master 01/01: Candidate list: filter the generated program names.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=0a64eab88b711d1fdf7e03c6f4514a443b47e4fe commit 0a64eab88b711d1fdf7e03c6f4514a443b47e4fe Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Fri Sep 4 15:39:00 2015 +0900 Candidate list: filter the generated program names. Summary: for cases when candidate list contain names of programs, all generated names will be ignored. The generated name is started with: "program_0x" - template. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2970 --- src/lib/ctxpopup.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c index 71d7e88..d507d70 100644 --- a/src/lib/ctxpopup.c +++ b/src/lib/ctxpopup.c @@ -470,6 +470,9 @@ image_candidate_set(Evas_Object *ctxpopup, ctxpopup_data *ctxdata) static Eina_Bool program_candidate_set(Evas_Object *ctxpopup, ctxpopup_data *ctxdata) { + const char *PROGRAM_GEN = "program_0x"; + int PROGRAM_GEN_LEN = 10; + int candidate_cntr = 0; view_data *vd = edj_mgr_view_get(NULL); if (!vd) return EINA_FALSE; Eina_List *parts = view_programs_list_get(vd); @@ -477,13 +480,16 @@ program_candidate_set(Evas_Object *ctxpopup, ctxpopup_data *ctxdata) char *part; EINA_LIST_FOREACH(parts, l, part) { +if (!strncmp(part, PROGRAM_GEN, PROGRAM_GEN_LEN)) + continue; snprintf(ctxdata->candidate, sizeof(ctxdata->candidate), "\"%s\"", part); elm_ctxpopup_item_append(ctxpopup, ctxdata->candidate, NULL, ctxpopup_it_cb, ctxdata); +candidate_cntr++; } view_string_list_free(parts); - return EINA_TRUE; + return candidate_cntr ? EINA_TRUE : EINA_FALSE; } static Eina_Bool --
[EGIT] [core/efl] master 01/01: Edje_Entry: check selection before the cursor position change.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=41106fe20fe991e42633fbc9a9b7155db971cc90 commit 41106fe20fe991e42633fbc9a9b7155db971cc90 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Thu Aug 20 11:31:27 2015 +0900 Edje_Entry: check selection before the cursor position change. Summary: change position of the main textblock cursor in depends of the selection is present. Change cursor position to the start or end of selection only when selection is present. @fix Test Plan: Press Up and Down arrow keys on selected and normal text. For selected text: the entry cursor should be placed one line above or below selection block (in depends from pressed button). For normal text: the entry cursor should be placed one line above or below of the current cursor position. Reviewers: tasn, Hermet, herdsman Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2948 --- src/lib/edje/edje_entry.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 8b4f256..b7289b4 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -1461,7 +1461,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, _sel_start(en-cursor, rp-object, en); ev-event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } - else + else if (en-have_selection) { if (evas_textblock_cursor_compare(en-sel_start, en-sel_end) 0) evas_textblock_cursor_copy(en-sel_start, en-cursor); @@ -1497,7 +1497,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, _sel_start(en-cursor, rp-object, en); ev-event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } - else + else if (en-have_selection) { if (evas_textblock_cursor_compare(en-sel_start, en-sel_end) 0) evas_textblock_cursor_copy(en-sel_end, en-cursor); --
[EGIT] [tools/enventor] master 01/01: Edc_editor: run programs in case if name placed on new line.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=08a2d9d03855afe0b5959b08570d7e53b7c2ff3b commit 08a2d9d03855afe0b5959b08570d7e53b7c2ff3b Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Thu Aug 20 11:07:36 2015 +0900 Edc_editor: run programs in case if name placed on new line. Summary: launch programs in cases when program name is placed not in the same paragraph with program keyword. Now analyzes whole text, that placed after selected keyword, not only text inside the same paragraph. @fix Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2964 --- src/lib/edc_editor.c | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index e2db0e6..4b7e6d4 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -589,11 +589,16 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, Evas_Object *textblock = elm_entry_textblock_get(obj); Evas_Textblock_Cursor *cursor = evas_object_textblock_cursor_get(textblock); - const char *str = evas_textblock_cursor_paragraph_text_get(cursor); + const char *str = elm_entry_entry_get(obj); char *text = elm_entry_markup_to_utf8(str); - char *cur = strstr(text, selected); - - if (!strcmp(selected, program)) + int cur_pos = elm_entry_cursor_pos_get(obj); + char *cur = text + (cur_pos - strlen(selected)); + + /* TODO: improve parser_name_get, for recognize cases when name is absent. + * Because right now any text inside quotes that placed after selection is + * recognized as name. + */ + if (!strcmp(selected, program)) { program_run(ed, cur); } --
[EGIT] [tools/enventor] master 01/02: Autocomplete: support images subblock inside group block.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c33ba546f219f1c10b60fe24b2112b8df4647c45 commit c33ba546f219f1c10b60fe24b2112b8df4647c45 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Thu Aug 20 11:11:52 2015 +0900 Autocomplete: support images subblock inside group block. Summary: for cases when group block contain images subblock autocomplete feature works wrong if cursor placed below images subblock. Added support images inside group.Also added part to recognized keywords. @fix Reviewers: Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2955 --- data/autocomp/autocomp.src | 108 - 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index b9a6c61..68ea63a 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -358,6 +358,111 @@ group lexem struct { } } group lexem struct { +group nodes list { + group lexem struct { + group nodes list { + } + group txt var_array { + count 1; + value string string: %s: \\ COMP;; + } + value cursor_offset int: 7 + value line_back int: 0; + group name var_array { + count 1; + value string string: image; + } + } + group lexem struct { + group nodes list { + group lexem struct { +group nodes list { +} +group txt var_array { +count 1; +value string string: %s: \\;; +} +value cursor_offset int: 2; +value line_back int: 0; +group name var_array { + count 1; + value string string: name; +} + } + group lexem struct { +group nodes list { + group lexem struct { + group nodes list { + } + group txt var_array { + count 1; + value string string: %s: \\ COMP;; + } + value cursor_offset int: 7; + value line_back int: 0; + group name var_array { + count 1; + value string string: image; + } + } + group lexem struct { + group nodes list { + } + group txt var_array { + count 1; + value string string: %s: ;; + } + value cursor_offset int: 1; + value line_back int: 0; + group name var_array { + count 1; + value string string: size; + } + } +} +group txt var_array { +count 3; +value string string: %s {br/; +value string string:br/; +value string string: }; +} +value cursor_offset int: 2 +value line_back int: 1; +group name var_array { + count 1; + value string string: image
[EGIT] [tools/enventor] master 02/02: Edc parser: recognize description block without state name.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=cd062d9564868385e3173aa5a7e75048ff5a7dc2 commit cd062d9564868385e3173aa5a7e75048ff5a7dc2 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Thu Aug 20 11:19:15 2015 +0900 Edc parser: recognize description block without state name. Summary: In cases when keyword description is used without state name(it mean that state will have default 0.0 name) - parser is fail to recognize correct name of that description and all others that placed below. This make impossible to switching between groups and part descriptions, that placed below description without state name. @fix Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2954 --- src/lib/edc_parser.c | 16 ++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index ece12e7..17960fc 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -134,6 +134,10 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) box, table, external }; const char *DESC[2] = { desc, description }; const int DESC_LEN[2] = { 4, 11 }; + const char *STATE = state; + const char *DEF_STATE_NAME = default; + const int DEF_STATE_LEN = 7; + cur_name_td *td = data; char *utf8 = td-utf8; @@ -244,8 +248,8 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) { //description? or desc? int desc_idx = -1; - if (!strncmp(p, DESC[0], DESC_LEN[0])) desc_idx = 0; - else if (!strncmp(p, DESC[1], DESC_LEN[1])) desc_idx = 1; + if (!strncmp(p, DESC[1], DESC_LEN[1])) desc_idx = 1; + else if (!strncmp(p, DESC[0], DESC_LEN[0])) desc_idx = 0; //we got a description! if (desc_idx != -1) @@ -253,6 +257,14 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) p += DESC_LEN[desc_idx]; char *name_begin = strstr(p, QUOT_UTF8); if (!name_begin) goto end; + char *state = strstr(p, STATE); + if ((desc_idx == 1) (!state || state name_begin)) +{ + desc_name = DEF_STATE_NAME; + desc_name_len = DEF_STATE_LEN; + value_convert = 0; + continue; +} name_begin += QUOT_UTF8_LEN; p = name_begin; char *name_end = strstr(p, QUOT_UTF8); --
[EGIT] [tools/enventor] master 01/01: Build: marks line, that contain error in edc_editor.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9c66f6fcf00258cd347b0ce17f5e74da3da9564a commit 9c66f6fcf00258cd347b0ce17f5e74da3da9564a Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Aug 11 13:18:07 2015 +0900 Build: marks line, that contain error in edc_editor. Summary: parse error messages from edje_cc, and marked by underline the mistaken line. In cases for messages that does not contain line numbers, trying to parse name of wrong parameter. Trying to searching the parsed name in edc code, and highlight the first entity. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2791 --- data/themes/default/theme_ext.edc | 2 ++ src/lib/edc_editor.c | 51 +-- src/lib/enventor_private.h| 1 + src/lib/enventor_smart.c | 41 --- 4 files changed, 89 insertions(+), 6 deletions(-) diff --git a/data/themes/default/theme_ext.edc b/data/themes/default/theme_ext.edc index 78be780..5173170 100644 --- a/data/themes/default/theme_ext.edc +++ b/data/themes/default/theme_ext.edc @@ -14,6 +14,7 @@ #define ENABLED_TEXTBLOCK_TAGS \ tag: em + font_style=Oblique; \ tag: hilight + font_weight=Bold style=glow glow_color=#3399ff80;\ + tag: error + underline=single underline_color=#ff underline2_color=#ff; \ tag: link + color=#3399ff underline=on underline_color=#3399ff; \ tag: preedit + underline=on underline_color=#3399ff;\ tag: preedit_sel + backing=on backing_color=#00 color=#ff; \ @@ -47,6 +48,7 @@ #define DISABLED_TEXTBLOCK_TAGS\ tag: em + font_style=Oblique; \ tag: hilight + font_weight=Bold style=glow glow_color=#3399ff20;\ + tag: error + underline=double underline_color=#ff underline2_color=#ff; \ tag: link + color=#101820 shadow_color=#66aaff28 underline=on underline_color=#101820; \ tag: preedit + underline=on underline_color=#3399ff88; \ tag: preedit_sel + backing=on backing_color=#00 color=#88; \ diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index ea5367d..e2db0e6 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -36,6 +36,7 @@ struct editor_s int cur_line; int line_max; + int error_line; int syntax_color_lock; Evas_Coord scroller_h; @@ -49,6 +50,7 @@ struct editor_s double font_scale; const char *font_name; const char *font_style; + const char *error_target; Eina_Bool edit_changed : 1; Eina_Bool linenumber : 1; @@ -137,6 +139,39 @@ edit_font_apply(edit_data *ed, const char *font_name, const char *font_style) } static void +error_highlight(edit_data *ed, Evas_Object *tb) +{ + Evas_Textblock_Cursor *cur1 = evas_object_textblock_cursor_new(tb); + if (ed-error_line) + { +evas_textblock_cursor_line_set(cur1, ed-error_line); +evas_textblock_cursor_line_char_first(cur1); +while(evas_textblock_cursor_content_get(cur1)[0] == ' ') + evas_textblock_cursor_char_next(cur1); +evas_object_textblock_text_markup_prepend(cur1, error); +evas_textblock_cursor_line_char_last(cur1); +evas_object_textblock_text_markup_prepend(cur1, /error); + } + else if (ed-error_target) + { +const char *ptr = NULL; +const char *par = NULL; +while (evas_textblock_cursor_paragraph_next(cur1)) + { + par = evas_textblock_cursor_paragraph_text_get(cur1); + if (par (ptr = strstr(par, ed-error_target))) +break; + } +evas_textblock_cursor_paragraph_char_first(cur1); +while(evas_textblock_cursor_content_get(cur1)[0] == ' ') + evas_textblock_cursor_char_next(cur1); +evas_object_textblock_text_markup_prepend(cur1, error); +evas_textblock_cursor_paragraph_char_last(cur1); +evas_object_textblock_text_markup_prepend(cur1, /error); + } + evas_textblock_cursor_free(cur1); +} +static void syntax_color_apply(edit_data *ed, Eina_Bool partial) { Evas_Object *tb = elm_entry_textblock_get(ed-en_edit); @@ -162,7 +197,7 @@ syntax_color_apply(edit_data *ed, Eina_Bool partial) But it can avoid entry_object_text_escaped_set() in Edje. Logically that's unnecessary in this case. */ evas_object_textblock_text_markup_set(tb, translated); - + error_highlight(ed, tb); entry_recover(ed, pos); } @@ -213,7 +248,7 @@ syntax_color_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) But it can avoid entry_object_text_escaped_set() in Edje. Logically that's unnecessary in this case. */ evas_object_textblock_text_markup_set(tb
[EGIT] [tools/enventor] master 01/01: Ctxpopup hide on focus out.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a310bbd9a430d74cc74ab5a92d3a1ad820d11c49 commit a310bbd9a430d74cc74ab5a92d3a1ad820d11c49 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Fri Jun 26 13:39:20 2015 +0900 Ctxpopup hide on focus out. Summary: On keypress up or down button doesn't need to allow focus to the ctxpopup. @fix T2522 Reviewers: Hermet Maniphest Tasks: T2522 Differential Revision: https://phab.enlightenment.org/D2765 --- src/lib/auto_comp.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 9a4701f..068de2a 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -665,7 +665,6 @@ list_item_move(autocomp_data *ad, Eina_Bool up) { Evas_Object *entry = edit_entry_get(ad-ed); evas_object_smart_callback_del(entry, unfocused, anchor_unfocused_cb); - elm_object_focus_allow_set(ad-list, EINA_TRUE); Elm_Object_Item *it = elm_list_selected_item_get(ad-list); if (up) it = elm_list_item_prev(it); --
[EGIT] [tools/enventor] master 01/01: Correct handling ecore key modificators.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9cc1fb443ecff4aa1122aefe8a6d6003af4627bb commit 9cc1fb443ecff4aa1122aefe8a6d6003af4627bb Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Fri Jun 26 13:49:43 2015 +0900 Correct handling ecore key modificators. Summary: Macro EVENT_KEY_MODIFIER_CHECK_OR_RET provide possibility to check, if only one modifier pressed. Reviewers: Hermet Projects: #enventor Differential Revision: https://phab.enlightenment.org/D2759 --- src/bin/main.c | 15 ++- src/include/common.h | 6 ++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 9232106..621ac04 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -151,10 +151,8 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void *ev) app_data *ad = data; Evas_Coord x, y, w, h; - if ((event-modifiers (ECORE_EVENT_MODIFIER_SHIFT | ECORE_EVENT_MODIFIER_CTRL -| ECORE_EVENT_MODIFIER_ALT | ECORE_EVENT_MODIFIER_WIN)) - != ECORE_EVENT_MODIFIER_CTRL) - return ECORE_CALLBACK_PASS_ON; + if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers)) + return ECORE_CALLBACK_PASS_ON; //View Scale Evas_Object *view = enventor_object_live_view_get(ad-enventor); @@ -557,8 +555,8 @@ default_template_insert(app_data *ad) static Eina_Bool alt_func(Ecore_Event_Key *event) { - if (!(event-modifiers ECORE_EVENT_MODIFIER_ALT)) - return EINA_FALSE; + if (!EVENT_KEY_MODIFIER_CHECK(ALT, event-modifiers)) + return EINA_FALSE; //Full Edit View if (!strcmp(event-key, Left)) @@ -591,9 +589,8 @@ alt_func(Ecore_Event_Key *event) static Eina_Bool ctrl_func(app_data *ad, Ecore_Event_Key *event) { - if (!(event-modifiers ECORE_EVENT_MODIFIER_CTRL)) - return EINA_FALSE; - + if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers)) + return EINA_FALSE; //Save if (!strcmp(event-key, s) || !strcmp(event-key, S)) { diff --git a/src/include/common.h b/src/include/common.h index 81bb8ea..10eddb2 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -57,6 +57,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n #define ENVENTOR_CONFIG_VERSION 2 +#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \ + ((MASK ECORE_EVENT_MODIFIER_##NAME) \ + !((0xFF ^ ECORE_EVENT_MODIFIER_##NAME) (MASK 0x0F))) + + + #define ENVENTOR_BETA_API_SUPPORT 1 #include Enventor.h #include assert.h --
[EGIT] [tools/enventor] master 01/01: Fix compiler warnings.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=533994772f2dcf94d41027433c75c26fdb9b09a2 commit 533994772f2dcf94d41027433c75c26fdb9b09a2 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Wed Jun 24 11:27:25 2015 + Fix compiler warnings. Fix -Wuninitialized flag warnings. --- src/bin/menu.c | 7 +-- src/bin/text_setting.c | 2 +- src/lib/build.c| 4 ++-- src/lib/template.c | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/bin/menu.c b/src/bin/menu.c index ce8a7b2..caff93d 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -245,13 +245,16 @@ about_open(menu_data *md) char buf[PATH_MAX]; snprintf(buf, sizeof(buf), %s/about/ABOUT, elm_app_data_dir_get()); + Eina_Strbuf *strbuf = NULL; + Eina_Iterator *itr = NULL; + Eina_File *file = eina_file_open(buf, EINA_FALSE); if (!file) goto err; - Eina_Iterator *itr = eina_file_map_lines(file); + itr = eina_file_map_lines(file); if (!itr) goto err; - Eina_Strbuf *strbuf = eina_strbuf_new(); + strbuf = eina_strbuf_new(); if (!strbuf) goto err; Eina_File_Line *line; diff --git a/src/bin/text_setting.c b/src/bin/text_setting.c index 09913d1..8866728 100644 --- a/src/bin/text_setting.c +++ b/src/bin/text_setting.c @@ -549,10 +549,10 @@ static char * syntax_template_create(double font_scale) { text_setting_data *tsd = g_tsd; + char *syntax_template_str = NULL; char *syntax_template_format = syntax_template_format_create(); if (!syntax_template_format) goto syntax_template_create_err; - char *syntax_template_str = NULL; syntax_template_str = calloc(1, sizeof(char) * SYNTAX_TEMPLATE_MAX_LEN); if (!syntax_template_str) goto syntax_template_create_err; diff --git a/src/lib/build.c b/src/lib/build.c index 2ce1146..880cef9 100644 --- a/src/lib/build.c +++ b/src/lib/build.c @@ -77,7 +77,7 @@ build_cmd_set(build_data *bd) Eina_Strbuf *strbuf_snd = NULL; Eina_Strbuf *strbuf_fnt = NULL; Eina_Strbuf *strbuf_dat = NULL; - + Eina_Strbuf *strbuf = NULL; //Image strbuf_img = strbuf_path_get(bd, ENVENTOR_RES_IMAGE, -id ); if (!strbuf_img) goto err; @@ -91,7 +91,7 @@ build_cmd_set(build_data *bd) strbuf_dat = strbuf_path_get(bd, ENVENTOR_RES_DATA, -dd ); if (!strbuf_dat) goto err; - Eina_Strbuf *strbuf = eina_strbuf_new(); + strbuf = eina_strbuf_new(); if (!strbuf) { EINA_LOG_ERR(Failed to new strbuf); diff --git a/src/lib/template.c b/src/lib/template.c index 3999592..36f65ac 100644 --- a/src/lib/template.c +++ b/src/lib/template.c @@ -137,8 +137,8 @@ template_part_insert(edit_data *ed, Edje_Part_Type part_type, memset(p, ' ', space); p[space] = '\0'; - int line_cnt; - char **t; + int line_cnt = 0; + char **t = NULL; char buf[64]; switch(part_type) --
[EGIT] [tools/enventor] master 01/01: Autoindent: fix increase line numbers.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=c2d6bae122c0ef5a6838ab4d4bcb6a4f8fcd458e commit c2d6bae122c0ef5a6838ab4d4bcb6a4f8fcd458e Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Wed Jun 24 13:14:14 2015 +0900 Autoindent: fix increase line numbers. Summary: Function indent_insert_apply reutn count of inserted lines. It is provide increse line numbers correctly. @fix T2510 Reviewers: Hermet Maniphest Tasks: T2510 Differential Revision: https://phab.enlightenment.org/D2745 --- src/lib/edc_editor.c | 12 ++-- src/lib/enventor_private.h | 2 +- src/lib/indent.c | 18 -- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 6d9a9f0..44330ad 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -239,29 +239,29 @@ edit_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) if (info-insert) { +int increase = 0; if ((info-change.insert.plain_length == 1) (info-change.insert.content[0] == ' ')) return; if (!strcmp(info-change.insert.content, EOL)) { - edit_line_increase(ed, 1); + increase++; syntax_color = EINA_FALSE; } else { - int increase = + increase = parser_line_cnt_get(ed-pd, info-change.insert.content); - edit_line_increase(ed, increase); } if (ed-auto_indent) { -indent_insert_apply(syntax_indent_data_get(ed-sh), ed-en_edit, + increase = indent_insert_apply(syntax_indent_data_get(ed-sh), ed-en_edit, info-change.insert.content, ed-cur_line); - int increase = -parser_line_cnt_get(ed-pd, info-change.insert.content); edit_line_increase(ed, increase); } +else + edit_line_increase(ed, increase); } else diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 7ae7a97..477a8fd 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -129,7 +129,7 @@ indent_data *syntax_indent_data_get(syntax_helper *sh); indent_data *indent_init(Eina_Strbuf *strbuf); void indent_term(indent_data *id); int indent_space_get(indent_data *id, Evas_Object *entry); -void indent_insert_apply(indent_data *id, Evas_Object *entry, const char *insert, int cur_line); +int indent_insert_apply(indent_data *id, Evas_Object *entry, const char *insert, int cur_line); Eina_Bool indent_delete_apply(indent_data *id, Evas_Object *entry, const char *del, int cur_line); diff --git a/src/lib/indent.c b/src/lib/indent.c index a5ed761..3599bfc 100644 --- a/src/lib/indent.c +++ b/src/lib/indent.c @@ -231,10 +231,11 @@ indent_delete_apply(indent_data *id EINA_UNUSED, Evas_Object *entry, return EINA_FALSE; } -static void +static int indent_text_auto_format(indent_data *id EINA_UNUSED, Evas_Object *entry, const char *insert) { + int line_cnt = 0; char *utf8 = evas_textblock_text_markup_to_utf8(NULL, insert); int utf8_size = strlen(utf8); @@ -276,7 +277,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED, } free(utf8); - if (!code_lines) return; + if (!code_lines) return line_cnt; tb_cur_pos = evas_textblock_cursor_pos_get(cur_end); evas_textblock_cursor_pos_set(cur_start, tb_cur_pos - utf8_size); evas_textblock_cursor_range_delete(cur_start, cur_end); @@ -297,6 +298,7 @@ indent_text_auto_format(indent_data *id EINA_UNUSED, memset(p, 0x0, space); if (strstr(line, {)) space += TAB_SPACE; eina_stringshare_del(line); + line_cnt++; } frmt_buf = eina_strbuf_string_steal(buf); @@ -313,10 +315,10 @@ indent_text_auto_format(indent_data *id EINA_UNUSED, eina_strbuf_free(buf); free(frmt_buf); evas_textblock_cursor_free(cur_start); - return; + return line_cnt; } -void +int indent_insert_apply(indent_data *id, Evas_Object *entry, const char *insert, int cur_line) { @@ -325,12 +327,16 @@ indent_insert_apply(indent_data *id, Evas_Object *entry, const char *insert, { if (insert[0] == '}') indent_insert_bracket_case(id, entry, cur_line); +return 0; } else { if (!strcmp(insert, EOL)) - indent_insert_br_case(id, entry); + { +indent_insert_br_case(id, entry); +return 1; + } else - indent_text_auto_format(id, entry, insert); + return indent_text_auto_format(id, entry, insert); } } --
[EGIT] [tools/enventor] master 01/01: Autocomplete: add attribute dot for lexems.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=dc85cafc7d119056c123b5428508980a2d58ffdd commit dc85cafc7d119056c123b5428508980a2d58ffdd Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 23 08:16:01 2015 +0900 Autocomplete: add attribute dot for lexems. Summary: Attribute dot make possible to mark lexems, that can use the '.' symbol. Like image.normal: bla; This commit fix issue, when pressing '.' after any keyword was shown candidate list. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2709 --- data/autocomp/autocomp.src | 6 ++ src/lib/auto_comp.c| 12 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index 18ce6f4..d757a30 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -154,6 +154,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: images; + value dot int: 1; } group lexem struct { group nodes list { @@ -925,6 +926,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: image; + value dot int: 1; } group lexem struct { group nodes list { @@ -1219,6 +1221,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: rel1; + value dot int: 1; } group lexem struct { group nodes list { @@ -1287,6 +1290,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: rel2; + value dot int: 1; } group lexem struct { group nodes list { @@ -1533,6 +1537,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: text; + value dot int: 1; } group lexem struct { group nodes list { @@ -2364,6 +2369,7 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 1; value name string: images; + value dot int: 1; } group lexem struct { group nodes list { diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index ca2b3e2..b098173 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -18,6 +18,7 @@ typedef struct lexem_s int cursor_offset; int line_back; char *name; + int dot; } lexem; typedef struct autocomp_s @@ -35,6 +36,7 @@ typedef struct autocomp_s Eina_Bool initialized : 1; Eina_Bool enabled : 1; Ecore_Thread *cntx_lexem_thread; + Eina_Bool dot_candidate : 1; } autocomp_data; typedef struct ctx_lexem_thread_data_s @@ -70,6 +72,7 @@ eddc_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, cursor_offset, cursor_offset, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, line_back, line_back, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, name, name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, dot, dot, EET_T_INT); } static void @@ -267,8 +270,9 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) if (td-ad-cntx_lexem_thread == thread) td-ad-cntx_lexem_thread = NULL; - if (td-list_show td-result) + if (td-list_show || (td-result td-result-dot td-ad-dot_candidate)) candidate_list_show(td-ad); + td-ad-dot_candidate = EINA_FALSE; free(td-utf8); free(td); } @@ -279,10 +283,11 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) ctx_lexem_td *td = (ctx_lexem_td *)data; td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root; - if (td-list_show td-result) + if (td-list_show || (td-result td-result-dot td-ad-dot_candidate)) candidate_list_show(td-ad); if (td-ad-cntx_lexem_thread == thread
[EGIT] [tools/enventor] master 01/01: Autocomplete: fix memory leak.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=7020fec1f3dfb141e0d02f374bde5e0ad8f68dcb commit 7020fec1f3dfb141e0d02f374bde5e0ad8f68dcb Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 22 14:45:54 2015 +0900 Autocomplete: fix memory leak. Summary: When context_lexem_thread_cb is canceled - possible, that td-utf8 memory, that allocated at context_lexem_get didn't freed. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2726 --- src/lib/auto_comp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 211cd4c..ed8e884 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -209,8 +209,6 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) cur++; } - free(utf8); - if (quot_cnt % 2) { td-result = NULL; @@ -250,6 +248,7 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) if (td-list_show td-result) candidate_list_show(td-ad); + free(td-utf8); free(td); } @@ -263,6 +262,7 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) candidate_list_show(td-ad); if (td-ad-cntx_lexem_thread == thread) td-ad-cntx_lexem_thread = NULL; + free(td-utf8); free(td); } @@ -280,7 +280,7 @@ context_lexem_get(autocomp_data *ad, Evas_Object *entry, Eina_Bool list_show) ecore_thread_cancel(ad-cntx_lexem_thread); ctx_lexem_td *td = (ctx_lexem_td *)calloc(1, sizeof(ctx_lexem_td)); - td-utf8 = elm_entry_markup_to_utf8(text); + td-utf8 = elm_entry_markup_to_utf8(text); td-cur_pos = elm_entry_cursor_pos_get(entry); td-ad = ad; td-result = NULL; --
[EGIT] [tools/enventor] master 01/01: Hotkeys: fix work ctrl_l key with num lock.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=02af80d3ba2b5c10e5c44dd8f6c8fddef505268c commit 02af80d3ba2b5c10e5c44dd8f6c8fddef505268c Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 22 14:49:17 2015 +0900 Hotkeys: fix work ctrl_l key with num lock. Summary: Need to check CTRL_L and ALT_L bits in ECORE_EVENT_MODIFIER Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2722 --- src/bin/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index c9513f8..0860931 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -567,7 +567,7 @@ default_template_insert(app_data *ad) static Eina_Bool alt_func(app_data *ad, Ecore_Event_Key *event) { - if (event-modifiers != ECORE_EVENT_MODIFIER_ALT) + if (!(event-modifiers ECORE_EVENT_MODIFIER_ALT)) return EINA_FALSE; //Full Edit View @@ -601,7 +601,7 @@ alt_func(app_data *ad, Ecore_Event_Key *event) static Eina_Bool ctrl_func(app_data *ad, Ecore_Event_Key *event) { - if (event-modifiers != ECORE_EVENT_MODIFIER_CTRL) + if (!(event-modifiers ECORE_EVENT_MODIFIER_CTRL)) return EINA_FALSE; //Save --
[EGIT] [tools/enventor] master 01/01: Autopcomp: select first item in candidates list.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=708923f8ff9dd8eab7a5616f997a3c37e3a3e96e commit 708923f8ff9dd8eab7a5616f997a3c37e3a3e96e Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 22 13:59:50 2015 +0900 Autopcomp: select first item in candidates list. Reviewers: Hermet Maniphest Tasks: T2495 Differential Revision: https://phab.enlightenment.org/D2719 --- src/lib/auto_comp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 08b0db1..17fe989 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -449,18 +449,17 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj EINA_UNUSED, Eina_List *l; lexem *lexem_data; - Elm_Object_Item *it = NULL; EINA_LIST_FOREACH(ad-lexem_ptr-nodes, l, lexem_data) { if (!strncmp(lexem_data-name, ad-queue, ad-queue_pos)) { - it = elm_list_item_append(ad-list, lexem_data-name, + elm_list_item_append(ad-list, lexem_data-name, NULL, NULL, NULL, lexem_data); found = EINA_TRUE; } } - elm_list_item_selected_set(it, EINA_TRUE); + elm_list_item_selected_set(elm_list_first_item_get(ad-list), EINA_TRUE); evas_object_smart_callback_add(ad-list, unfocused, anchor_unfocused_cb, ad); evas_object_event_callback_add(ad-list, EVAS_CALLBACK_DEL, list_del_cb, ad); --
[EGIT] [tools/enventor] master 01/01: Autocomplete: fix segfault, caused by '.'
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=0dfeb6c1775eb4ce178bae4819dc1f6bfb4eef28 commit 0dfeb6c1775eb4ce178bae4819dc1f6bfb4eef28 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Wed Jun 17 17:02:58 2015 +0900 Autocomplete: fix segfault, caused by '.' Summary: When '.' typed without keyword, function context_lexem_thread is returning NULL pointer to the lexem node. This cause segfault, when the lexem node is used for prepare the candidates list in candidate_list_show function. Reviewers: Hermet Maniphest Tasks: T2504 Differential Revision: https://phab.enlightenment.org/D2712 --- src/lib/auto_comp.c | 11 +-- 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index d7ee4a9..08b0db1 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -169,7 +169,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) } memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); - strncpy(stack[depth], help_ptr, help_end_ptr - help_ptr + 1); + strncpy(stack[depth], help_ptr, context_len); depth++; } if (*cur == '.') @@ -199,12 +199,11 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) { dot_lex = EINA_FALSE; memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); - depth--; + if (depth 0) depth--; } if (*cur == '}') { memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); - memset(stack[depth], 0x0, 40); if (depth 0) depth--; } cur++; @@ -245,11 +244,11 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) { ctx_lexem_td *td = (ctx_lexem_td *)data; - td-ad-lexem_ptr = td-result; + td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root; if (td-ad-cntx_lexem_thread == thread) td-ad-cntx_lexem_thread = NULL; - if (td-list_show) + if (td-list_show td-result) candidate_list_show(td-ad); free(td); } @@ -260,7 +259,7 @@ context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) ctx_lexem_td *td = (ctx_lexem_td *)data; td-ad-lexem_ptr = td-result ? td-result : (lexem *)td-ad-lexem_root; - if (td-list_show) + if (td-list_show td-result) candidate_list_show(td-ad); if (td-ad-cntx_lexem_thread == thread) td-ad-cntx_lexem_thread = NULL; --
[EGIT] [tools/enventor] master 01/01: Autocomplete: show list of the candidates after '.'.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=b4af164c8ae930d0f778187f39ba0ca2819171a5 commit b4af164c8ae930d0f778187f39ba0ca2819171a5 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 16 16:53:23 2015 +0900 Autocomplete: show list of the candidates after '.'. Summary: In case, when user typed keyword and add '.' symbol, will be shown list of possible keywords. For example: rel1. - will be shown list: relative, offset, to, to_x, to_y. Depends D2648 @fix T2178 Reviewers: Hermet, Jaehyun Subscribers: jpeg Projects: #enventor Maniphest Tasks: T2178 Differential Revision: https://phab.enlightenment.org/D2651 --- src/lib/auto_comp.c | 75 +++-- 1 file changed, 67 insertions(+), 8 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 2c90043..d7ee4a9 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -7,6 +7,8 @@ #define QUEUE_SIZE 20 #define COMPSET_PAIR_MINIMUM 1 +#define MAX_CONTEXT_STACK 20 +#define MAX_KEYWORD_LENGHT 40 typedef struct lexem_s { @@ -41,6 +43,7 @@ typedef struct ctx_lexem_thread_data_s int cur_pos; lexem *result; autocomp_data *ad; + Eina_Bool list_show; } ctx_lexem_td; static autocomp_data *g_ad = NULL; @@ -49,6 +52,9 @@ static autocomp_data *g_ad = NULL; /* Internal method implementation*/ /*/ static Eet_Data_Descriptor *lex_desc = NULL; +static void candidate_list_show(autocomp_data *ad); +static void queue_reset(autocomp_data *ad); +static void entry_anchor_off(autocomp_data *ad); static void eddc_init(void) @@ -100,6 +106,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) ctx_lexem_td *td = (ctx_lexem_td *)data; Eina_Bool find_flag = EINA_FALSE; + Eina_Bool dot_lex = EINA_FALSE; Eina_List *l = NULL; Eina_List *nodes = td-ad-lexem_root-nodes; td-result = (lexem *)td-ad-lexem_root; @@ -113,7 +120,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) char *cur = utf8; char *end = cur + cur_pos; - char stack[20][40]; + char stack[MAX_CONTEXT_STACK][MAX_KEYWORD_LENGHT]; int depth = 0; char *help_ptr = NULL; char *help_end_ptr = NULL; @@ -121,6 +128,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) const char *quot = QUOT_UTF8; const int quot_len = QUOT_UTF8_LEN; int quot_cnt = 0; + int context_len = 0; while (cur cur = end) { @@ -153,12 +161,49 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) if (help_ptr != utf8) help_ptr++; - memset(stack[depth], 0x0, 40); + context_len = help_end_ptr - help_ptr + 1; + if (context_len = MAX_KEYWORD_LENGHT) + { + cur++; + continue; + } + + memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); strncpy(stack[depth], help_ptr, help_end_ptr - help_ptr + 1); depth++; } +if (*cur == '.') + { + Eina_Bool alpha_present = EINA_FALSE; + help_end_ptr = cur - 1; + for (help_ptr = help_end_ptr; help_ptr isalnum(*help_ptr); help_ptr--) +if (isalpha(*help_ptr)) alpha_present = EINA_TRUE; + if ((!alpha_present) || (!strncmp(help_ptr, quot, quot_len))) + { + cur++; + continue; + } + if (help_ptr != utf8) help_ptr++; + context_len = help_end_ptr - help_ptr + 1; + if (context_len = MAX_KEYWORD_LENGHT) + { + cur++; + continue; + } + memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); + strncpy(stack[depth], help_ptr, context_len); + depth++; + dot_lex = EINA_TRUE; + } +if ((*cur == ';') dot_lex) + { + dot_lex = EINA_FALSE; + memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); + depth--; + } if (*cur == '}') { + memset(stack[depth], 0x0, MAX_KEYWORD_LENGHT); memset(stack[depth], 0x0, 40); if (depth 0) depth--; } @@ -201,7 +246,11 @@ context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) ctx_lexem_td *td = (ctx_lexem_td *)data; td-ad-lexem_ptr = td-result; - td-ad-cntx_lexem_thread = NULL; + if (td-ad-cntx_lexem_thread == thread) + td-ad-cntx_lexem_thread = NULL; + + if (td-list_show) + candidate_list_show(td-ad); free(td); } @@ -210,13 +259,16
[EGIT] [tools/enventor] master 01/01: Parser: recognize comments in code.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=ee415fa135e706c603a384b009177ae0fb86b5d2 commit ee415fa135e706c603a384b009177ae0fb86b5d2 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 16 13:38:06 2015 +0900 Parser: recognize comments in code. Summary: For cur_state_get in parser module and context_lexem_get in auto complete module add abiliti to recognize commented lines. fix T2482 Reviewers: Hermet, Jaehyun, jpeg Reviewed By: jpeg Maniphest Tasks: T2482 Differential Revision: https://phab.enlightenment.org/D2677 --- src/lib/auto_comp.c | 19 +-- src/lib/edc_parser.c | 23 --- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index d50cc72..2c90043 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -122,11 +122,26 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) const int quot_len = QUOT_UTF8_LEN; int quot_cnt = 0; - while (cur = end) + while (cur cur = end) { if ((cur!=end) (!strncmp(cur, quot, quot_len))) quot_cnt++; +//Check inside comment +if (*cur == '/') + { + if (cur[1] == '/') + { + cur = strchr(cur, '\n'); + continue; + } + else if (cur[1] == '*') + { + cur = strstr(cur, */); + continue; + } + } + if (*cur == '{') { for (help_end_ptr = cur; @@ -145,7 +160,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) if (*cur == '}') { memset(stack[depth], 0x0, 40); - depth--; + if (depth 0) depth--; } cur++; } diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index 8078415..cb583e9 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -260,7 +260,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) td-group_name = NULL; td-state_name = NULL; - while (p = end) + while (p p = end) { //Skip range if (!strncmp(p, quot, quot_len)) @@ -277,6 +277,20 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) p++; continue; } +//Check inside comment +if (*p == '/') + { + if (p[1] == '/') + { + p = strchr(p, '\n'); + continue; + } + else if (p[1] == '*') + { + p = strstr(p, */); + continue; + } + } //Check whether outside of description or part or group if ((*p == '}') (p end)) @@ -337,8 +351,11 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } value++; } - value_convert = atof(value_buf); - free(value_buf); + if (value_buf) +{ + value_convert = atof(value_buf); + free(value_buf); +} continue; } //Check Group in --
[EGIT] [tools/enventor] master 01/01: Autocomplete: make search context run in additional thread
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=59d6ce59cd8ca45e23b52f99d65c4f757e316033 commit 59d6ce59cd8ca45e23b52f99d65c4f757e316033 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 16 13:28:59 2015 +0900 Autocomplete: make search context run in additional thread Summary: Now parsing and actualizing context of current cursor position happens in additional thread. @fix T2467 Reviewers: Jaehyun, Hermet Projects: #enventor Maniphest Tasks: T2467 Differential Revision: https://phab.enlightenment.org/D2648 --- src/lib/auto_comp.c | 93 - 1 file changed, 77 insertions(+), 16 deletions(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 9ff099a..d50cc72 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -32,8 +32,17 @@ typedef struct autocomp_s Eina_Bool anchor_visible : 1; Eina_Bool initialized : 1; Eina_Bool enabled : 1; + Ecore_Thread *cntx_lexem_thread; } autocomp_data; +typedef struct ctx_lexem_thread_data_s +{ + char *utf8; + int cur_pos; + lexem *result; + autocomp_data *ad; +} ctx_lexem_td; + static autocomp_data *g_ad = NULL; /*/ @@ -85,22 +94,22 @@ init_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) autocomp_load(ad); } -static lexem * -context_lexem_get(autocomp_data *ad, Evas_Object *entry, int cur_pos) +static void +context_lexem_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) { + ctx_lexem_td *td = (ctx_lexem_td *)data; Eina_Bool find_flag = EINA_FALSE; Eina_List *l = NULL; - Eina_List *nodes = ad-lexem_root-nodes; - lexem *data = (lexem *)ad-lexem_root; - if (cur_pos = 1) return data; + Eina_List *nodes = td-ad-lexem_root-nodes; + td-result = (lexem *)td-ad-lexem_root; + int cur_pos = td-cur_pos; + if (cur_pos = 1) return; - const char *text = elm_entry_entry_get(entry); - if (!text) return data; int i = 0; - char *utf8 = elm_entry_markup_to_utf8(text); - if (!utf8) return data; + if (!td-utf8) return; + char *utf8 = td-utf8; char *cur = utf8; char *end = cur + cur_pos; @@ -143,24 +152,76 @@ context_lexem_get(autocomp_data *ad, Evas_Object *entry, int cur_pos) free(utf8); - if (quot_cnt % 2) return NULL; + if (quot_cnt % 2) + { +td-result = NULL; +return; + } for (i = 0; i depth; i++) { find_flag = EINA_FALSE; -EINA_LIST_FOREACH(nodes, l, data) +EINA_LIST_FOREACH(nodes, l, td-result) { - if (!strncmp(stack[i], data-name, strlen(data-name))) + if (!strncmp(stack[i], td-result-name, strlen(td-result-name))) { - nodes = data-nodes; + nodes = td-result-nodes; l = NULL; find_flag = EINA_TRUE; break; } } -if (!find_flag) return NULL; +if (!find_flag) + { + td-result = NULL; + return; + } } - return data; + return; +} + +static void +context_lexem_thread_end_cb(void *data, Ecore_Thread *thread EINA_UNUSED) +{ + ctx_lexem_td *td = (ctx_lexem_td *)data; + + td-ad-lexem_ptr = td-result; + td-ad-cntx_lexem_thread = NULL; + free(td); +} + +static void +context_lexem_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) +{ + ctx_lexem_td *td = (ctx_lexem_td *)data; + + td-ad-lexem_ptr = (lexem *)td-ad-lexem_root; + td-ad-cntx_lexem_thread = NULL; + free(td); +} + +void +context_lexem_get(autocomp_data *ad, Evas_Object *entry) +{ + const char *text = elm_entry_entry_get(entry); + if (!text) + { +ad-lexem_ptr = (lexem *)ad-lexem_root; +return; + } + + if (ad-cntx_lexem_thread) + ecore_thread_cancel(ad-cntx_lexem_thread); + + ctx_lexem_td *td = (ctx_lexem_td *)calloc(1, sizeof(ctx_lexem_td)); + td-utf8 = elm_entry_markup_to_utf8(text); + td-cur_pos = elm_entry_cursor_pos_get(entry); + td-ad = ad; + td-result = NULL; + + ad-cntx_lexem_thread = ecore_thread_run(context_lexem_thread_cb, + context_lexem_thread_end_cb, + context_lexem_thread_cancel_cb, td); } static void @@ -176,7 +237,7 @@ context_changed(autocomp_data *ad, Evas_Object *edit) return; } - ad-lexem_ptr = context_lexem_get(ad, edit, cursor_position); + context_lexem_get(ad, edit); } static void --
[EGIT] [tools/enventor] master 01/01: autocomp.src: fix mistakes and add dependencies.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=f931b5e06f677fbd6d3b8e82a6ffb1ec10354eaf commit f931b5e06f677fbd6d3b8e82a6ffb1ec10354eaf Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 16 13:27:29 2015 +0900 autocomp.src: fix mistakes and add dependencies. Summary: Add suport blocks images and color_classes inside collections block. Fix position cursor for rel1 { to: ; }. Add RAW as default type for sound samples. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2706 --- data/autocomp/autocomp.src | 159 - 1 file changed, 156 insertions(+), 3 deletions(-) diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src index 5c7d782..0a7beec 100644 --- a/data/autocomp/autocomp.src +++ b/data/autocomp/autocomp.src @@ -305,7 +305,88 @@ group lexem struct { group nodes list { group lexem struct { group nodes list { -} + } + group txt var_array { + count 1 + value string string: name: \\;; + } + value cursor_offset int: 2; + value line_back int: 0; + value name string: name; +} +group lexem struct { + group nodes list { + } + group txt var_array { + count 1 + value string string: color: ;; + } + value cursor_offset int: 1; + value line_back int: 0; + value name string: color; +} +group lexem struct { + group nodes list { + } + group txt var_array { + count 1 + value string string: color2: ;; + } + value cursor_offset int: 1; + value line_back int: 0; + value name string: color2; +} +group lexem struct { + group nodes list { + } + group txt var_array { + count 1 + value string string: color3: ;; + } + value cursor_offset int: 1; + value line_back int: 0; + value name string: color3; +} + } + group txt var_array { + count 3; + value string string: color_class {br/; + value string string:br/; + value string string: }; + } + value cursor_offset int: 2; + value line_back int: 1; + value name string: color_class; + } + } + group txt var_array { + count 3; + value string string: color_classes {br/; + value string string:br/; + value string string: }; + } + value cursor_offset int: 2; + value line_back int: 1; + value name string: color_classes; +} +group lexem struct { + group nodes list { + group lexem struct { + group nodes list { + } + group txt var_array { + count 1; + value string string: image: \\ COMP;; + } + value cursor_offset int: 7 + value line_back int: 0; + value name string: image; + } + group lexem struct { + group nodes list { +group lexem struct { + group nodes list { + } group txt var_array { count 1; value string string: name: \\;; @@ -313,6 +394,78 @@ group lexem struct { value cursor_offset int: 2; value line_back int: 0; value name string: name
[EGIT] [tools/enventor] master 01/01: Edc parser: correct detection of current description.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=31d07e5590fe748c06b295b44751622332e99bcb commit 31d07e5590fe748c06b295b44751622332e99bcb Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 15 14:08:51 2015 +0900 Edc parser: correct detection of current description. Summary: Added check, if the entry cursor is go out of the description block, will be returned NULL description_name. Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D2681 --- src/lib/edc_parser.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index c4a932c..8078415 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -278,7 +278,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) continue; } -//Check whether outside of part or group +//Check whether outside of description or part or group if ((*p == '}') (p end)) { bracket--; @@ -286,6 +286,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) if (bracket == 1) group_name = NULL; else if (bracket == 3) part_name = NULL; + else if (bracket == 4) description_name = NULL; continue; } @@ -365,7 +366,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) group_name = eina_stringshare_add_length(group_name, group_name_len); if (description_name) description_name = eina_stringshare_add_length(description_name, description_name_len); - + td-part_name = part_name; td-group_name = group_name; td-state_name = description_name; --
[EGIT] [tools/enventor] master 01/01: Build: delete auto_com_code.h from library sources.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=216763a925ec79aebbd95ba3ce47f70023acca54 commit 216763a925ec79aebbd95ba3ce47f70023acca54 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Wed Jun 10 18:10:31 2015 + Build: delete auto_com_code.h from library sources. This causd fail to run make dist command. --- src/lib/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index d9ec05c..d12f9dd 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -28,7 +28,6 @@ includesdir = $(includedir)/enventor-@ENVENTOR_VERSION_MAJOR@ libenventor_la_SOURCES = \ enventor_private.h \ - auto_comp_code.h \ template_code.h \ enventor_main.c \ enventor_smart.c \ --
[EGIT] [tools/enventor] master 01/01: Edj viewer: support SPACER part highlighting.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e960a0df12f512b4ff10d3d06198ada31bfb1fed commit e960a0df12f512b4ff10d3d06198ada31bfb1fed Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 9 10:00:39 2015 + Edj viewer: support SPACER part highlighting. In edje library SPACER doesnt have Evas_Object, that represent part on canvas. Calculation position and size of the SPACER highlight should be corrected. For correcting geometry of highlight, uses current state of scroller(that contain layout object) and layout object. @fix T2464 --- src/lib/edj_viewer.c | 60 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index def547e..b7b739e 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -101,14 +101,52 @@ part_obj_geom_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, } Evas_Coord x, y, w , h; - evas_object_geometry_get(obj, x, y, w, h); - evas_object_move(part_highlight, x, y); - evas_object_resize(part_highlight, w, h); + if (edje_edit_part_type_get(vd-layout, vd-part_name) == EDJE_PART_TYPE_SPACER) + { +Evas_Coord scroller_x, scroller_y; +Evas_Coord scroller_region_x, scroller_region_y; +Evas_Object *scroller_edje = elm_layout_edje_get(vd-scroller); +// Clipper need, to clip the highlight object for the part SPACER, +// because position of the highlight object is calculated here, +// not in edje. In case, when the SPACER is placed outside of +// scroller region view, the highlight should be hided. +Evas_Object *clipper = + (Evas_Object *)edje_object_part_object_get(scroller_edje, clipper); + +elm_scroller_region_get(vd-scroller, scroller_region_x, +scroller_region_y, NULL, NULL); +evas_object_geometry_get(vd-scroller, scroller_x, scroller_y, + NULL, NULL); +evas_object_smart_member_add(part_highlight, vd-scroller); +edje_object_part_geometry_get(vd-layout, vd-part_name, x, y, w, h); + +evas_object_move(part_highlight, x + scroller_x - scroller_region_x + 1, + y + scroller_y - scroller_region_y + 1); +evas_object_resize(part_highlight, w, h); +evas_object_clip_set(part_highlight, clipper); + } + else + { +evas_object_geometry_get(obj, x, y, w, h); +evas_object_move(part_highlight, x, y); +evas_object_resize(part_highlight, w, h); + } vd-part_highlight = part_highlight; } static void +event_highlight_geom_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + view_data *vd = (view_data *) data; + if (!vd) return; + + if (edje_edit_part_type_get(vd-layout, vd-part_name) == EDJE_PART_TYPE_SPACER) + part_obj_geom_cb(vd, evas_object_evas_get(vd-layout), vd-part_obj, NULL); +} + +static void part_obj_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -281,6 +319,8 @@ event_layer_set(view_data *vd) layout_del_cb, rect); evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_MOVE, rect_mouse_move_cb, vd); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_WHEEL, + event_highlight_geom_cb, vd); vd-event_rect = rect; } @@ -433,7 +473,6 @@ view_part_highlight_set(view_data *vd, const char *part_name) Evas_Object *part_obj = (Evas_Object *) edje_object_part_object_get(vd-layout, part_name); - if (!part_obj) return; //Delete the previous part callbacks if (vd-part_obj) @@ -452,6 +491,19 @@ view_part_highlight_set(view_data *vd, const char *part_name) evas_object_event_callback_add(part_obj, EVAS_CALLBACK_DEL, part_obj_del_cb, vd); + evas_object_event_callback_del(vd-layout, EVAS_CALLBACK_RESIZE, + event_highlight_geom_cb); + evas_object_event_callback_del(vd-layout, EVAS_CALLBACK_MOVE, + event_highlight_geom_cb); + + if (!part_obj) + { +evas_object_event_callback_add(vd-layout, EVAS_CALLBACK_RESIZE, + event_highlight_geom_cb, vd); +evas_object_event_callback_add(vd-layout, EVAS_CALLBACK_MOVE, + event_highlight_geom_cb, vd); + } + vd-part_obj = part_obj; eina_stringshare_replace(vd-part_name, part_name); part_obj_geom_cb(vd, evas_object_evas_get(vd-layout), part_obj, NULL); --
[EGIT] [tools/enventor] master 01/01: Use eina_prefix for generation path to resource of enventor library.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=148ad69c3b05aeb882bb0e3fc421a911927ab890 commit 148ad69c3b05aeb882bb0e3fc421a911927ab890 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Fri Jun 5 11:25:30 2015 + Use eina_prefix for generation path to resource of enventor library. This way provide the ability to determine the runtime location of the library. Makes possible to use enventor library on the Windows platform. --- configure.ac| 3 --- src/lib/Makefile.am | 3 +-- src/lib/enventor_main.c | 9 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 4e5df10..890444a 100644 --- a/configure.ac +++ b/configure.ac @@ -110,9 +110,6 @@ EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx]) AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true]) AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true]) -ENVENTOR_DEFINE= -DENVENTOR_THEME_PATH=\\\${datadir}/enventor/themes/\\\ -AC_SUBST([ENVENTOR_DEFINE]) - AC_CONFIG_FILES([ Makefile src/Makefile diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 08ecafb..d9ec05c 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -14,8 +14,7 @@ AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\$(pkgdatadir)\ \ -DPACKAGE_LIB_DIR=\$(libdir)\ \ -I$(top_srcdir)/src/bin \ -I$(top_srcdir)/src/include \ - @ENVENTOR_CFLAGS@ \ - @ENVENTOR_DEFINE@ + @ENVENTOR_CFLAGS@ lib_LTLIBRARIES = libenventor.la diff --git a/src/lib/enventor_main.c b/src/lib/enventor_main.c index ab62ca5..e558aeb 100644 --- a/src/lib/enventor_main.c +++ b/src/lib/enventor_main.c @@ -23,6 +23,7 @@ const char SIG_FOCUSED[] = focused; static int _enventor_init_count = 0; static int _enventor_log_dom = -1; static Ecore_Event_Handler *_key_down_handler = NULL; +static Eina_Prefix *pfx = NULL; static Eina_Bool key_down_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev) @@ -94,9 +95,12 @@ enventor_init(int argc, char **argv) _enventor_log_dom = EINA_LOG_DOMAIN_GLOBAL; } - snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/enventor.edj, -ENVENTOR_THEME_PATH); + pfx = eina_prefix_new(NULL, enventor_init, ENVENTOR, enventor, NULL, + PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, + PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); + snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/themes/enventor.edj, +eina_prefix_data_get(pfx)); srand(time(NULL)); _key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, @@ -124,6 +128,7 @@ enventor_shutdown(void) eina_log_domain_unregister(_enventor_log_dom); _enventor_log_dom = -1; } + eina_prefix_free(pfx); elm_shutdown(); eio_shutdown(); --
[EGIT] [tools/enventor] master 01/01: Update README and ABOUT files.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=512e12c970793cc948f06b401f7d78b87019ad46 commit 512e12c970793cc948f06b401f7d78b87019ad46 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 1 14:57:49 2015 + Update README and ABOUT files. Update information accordingly to usage Enventor in CLI. --- README | 19 ++- data/about/ABOUT | 21 +++-- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/README b/README index c7f2c70..6f76720 100644 --- a/README +++ b/README @@ -74,20 +74,21 @@ Ctrl+End = Go to the Bottom line [Command Line Usage] enventor --help -enventor [input file] [-to] [-id image path] [-sd sound path] [-fd font path] [-dd data path] +enventor [input file] [output file] [--to] [--id image path] [--sd sound path] [--fd font path] [--dd data path] -input file = EDC file to open. If input file is skipped, Enventor will open a default template code with a temporary file. --to = Open template menu when you launch Enventor --id = image resources, that edc includes, path --sd = sound resources, that edc includes, path --fd = font resources, that edc includes, path --dd = data resources, that edc includes, path +-output file = EDJ file to store compiled file. If output file is skipped, Enventor will store binary file to the temporary directory. +--to = Open template menu when you launch Enventor +--id = image resources, that edc includes, path +--sd = sound resources, that edc includes, path +--fd = font resources, that edc includes, path +--dd = data resources, that edc includes, path Examples of Enventor command line usage: $ enventor -$ enventor -to -$ enventor newfile.edc -to -$ enventor sample.edc -id ./images -sd ./sounds +$ enventor --to +$ enventor newfile.edc --to +$ enventor sample.edc output.edj --id ./images --sd ./sounds [Developers] diff --git a/data/about/ABOUT b/data/about/ABOUT index cba0bac..e78b9da 100644 --- a/data/about/ABOUT +++ b/data/about/ABOUT @@ -56,20 +56,21 @@ Ctrl+End = Go to the Bottom line font_size=11b[Command Line Usage]/b/font_size enventor --help -enventor [input file] [-to] [-id image path] [-sd sound path] [-fd font path] [-dd data path] +enventor [input file] [output file] [--to] [--id image path] [--sd sound path] [--fd font path] [--dd data path] -input file = EDC file to open. If input file is skipped, Enventor will open a default template code with a temporary file. --to = Open template menu when you launch Enventor --id = image resources, that edc includes, path --sd = sound resources, that edc includes, path --fd = font resources, that edc includes, path --dd = data resources, that edc includes, path - +-output file = EDJ file to store compiled file. If output file is skipped, Enventor will store binary file to the temporary directory. +--to = Open template menu when you launch Enventor +--id = image resources, that edc includes, path +--sd = sound resources, that edc includes, path +--fd = font resources, that edc includes, path +--dd = data resources, that edc includes, path + Examples of Enventor command line usage: $ enventor -$ enventor -to -$ enventor newfile.edc -to -$ enventor sample.edc -id ./images -sd ./sounds +$ enventor --to +$ enventor newfile.edc --to +$ enventor sample.edc output.edj --id ./images --sd ./sounds font_size=11b[Developers]/b/font_size --
[EGIT] [tools/enventor] master 01/01: Command line arguments: fix ignoring resource pathes.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a247010813ccd5e5b79db6eff81e47b0283b634e commit a247010813ccd5e5b79db6eff81e47b0283b634e Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 1 13:24:21 2015 + Command line arguments: fix ignoring resource pathes. If application run with command like: enventor --id /path/images --fd /path/fonts Pathes will be used in application. @fix --- src/bin/main.c | 52 +--- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 91213bf..3ce2919 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -364,33 +364,31 @@ defaults: sprintf(edc_path, %s, (const char *)tmp_path); eina_tmpstr_del(tmp_path); } - else - { -char *s = NULL; -EINA_LIST_FREE(id, s) - { - *img_path = eina_list_append(*img_path, eina_stringshare_add(s)); - free(s); - } -id = NULL; -EINA_LIST_FREE(sd, s) - { - *snd_path = eina_list_append(*snd_path, eina_stringshare_add(s)); - free(s); - } -sd = NULL; -EINA_LIST_FREE(fd, s) - { - *fnt_path = eina_list_append(*fnt_path, eina_stringshare_add(s)); - free(s); - } -fd = NULL; -EINA_LIST_FREE(dd, s) - { - *dat_path = eina_list_append(*dat_path, eina_stringshare_add(s)); - free(s); - } - } + + char *s = NULL; + EINA_LIST_FREE(id, s) + { + *img_path = eina_list_append(*img_path, eina_stringshare_add(s)); + free(s); + } + id = NULL; + EINA_LIST_FREE(sd, s) + { + *snd_path = eina_list_append(*snd_path, eina_stringshare_add(s)); + free(s); + } + sd = NULL; + EINA_LIST_FREE(fd, s) + { + *fnt_path = eina_list_append(*fnt_path, eina_stringshare_add(s)); + free(s); + } + fd = NULL; + EINA_LIST_FREE(dd, s) + { + *dat_path = eina_list_append(*dat_path, eina_stringshare_add(s)); + free(s); + } ecore_getopt_list_free(id); ecore_getopt_list_free(fd); --
[EGIT] [tools/enventor] master 01/01: Support version fo the enventor config file.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=af56cdb083f23d514dc975dd64862514594aea8b commit af56cdb083f23d514dc975dd64862514594aea8b Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Tue Jun 2 10:03:25 2015 + Support version fo the enventor config file. Config data is checked on the versiob of config file. if the version is lower than current, then don't read the config data and instead open with default. On enventor close, config file is rewrited with new data. --- src/bin/config_data.c | 13 - src/include/common.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 4d0ae3e..a0ec542 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -18,6 +18,7 @@ typedef struct config_s Eina_List *syntax_color_list; + unsigned int version; float font_scale; double view_scale; double console_size; @@ -133,7 +134,7 @@ config_load(void) } else EINA_LOG_WARN(Cannot load a config file \%s\, buf); - //failed to load config file. set default values. + //failed to load config file, create default structure. if (!cd) { cd = calloc(1, sizeof(config_data)); @@ -142,6 +143,14 @@ config_load(void) EINA_LOG_ERR(Failed to allocate Memory!); return NULL; } + } + // loaded config is not compatile with current version of Enventor + if (cd-version ENVENTOR_CONFIG_VERSION) + { +cd-edc_img_path_list = NULL; +cd-edc_snd_path_list = NULL; +cd-edc_fnt_path_list = NULL; +cd-edc_dat_path_list = NULL; cd-font_scale = 1.0f; cd-view_scale = 1; cd-console_size = DEFAULT_CONSOLE_SIZE; @@ -154,6 +163,7 @@ config_load(void) cd-console = EINA_TRUE; cd-auto_complete = EINA_TRUE; cd-view_size_configurable = EINA_FALSE; +cd-version = ENVENTOR_CONFIG_VERSION; } g_cd = cd; @@ -218,6 +228,7 @@ eddc_init(void) edc_dat_path_list, edc_dat_path_list); EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd_base, config_data, syntax_color_list, syntax_color_list); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, version, version, EET_T_UINT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, font_name, font_name, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, font_style, font_style, diff --git a/src/include/common.h b/src/include/common.h index 699b9dc..b68d5cf 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -55,6 +55,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n #define REL2_X 0.75f #define REL2_Y 0.75f +#define ENVENTOR_CONFIG_VERSION 1 + #define ENVENTOR_BETA_API_SUPPORT 1 #include Enventor.h #include assert.h --
[EGIT] [tools/enventor] master 01/01: Fix generation path to theme, for enventor library.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=d6d69eb6c7cdd9f4dc6a11013b947c9aaa8d0b6c commit d6d69eb6c7cdd9f4dc6a11013b947c9aaa8d0b6c Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Wed Jun 3 18:55:34 2015 + Fix generation path to theme, for enventor library. In case when enventor library initialized by another application, function elm_app_data_get_dir() return data dir of the parent application. Now on precompilation stage (automake) path to enventor theme will be added to internal usage. It make no dependencies from parent application. @fix T1285 --- configure.ac| 3 +++ src/lib/Makefile.am | 3 ++- src/lib/enventor_main.c | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 890444a..4e5df10 100644 --- a/configure.ac +++ b/configure.ac @@ -110,6 +110,9 @@ EFL_WITH_BIN([eolian-cxx], [eolian-cxx], [eolian_cxx]) AM_CONDITIONAL([HAVE_EOLIAN_GEN], [true]) AM_CONDITIONAL([HAVE_EOLIAN_CXX], [true]) +ENVENTOR_DEFINE= -DENVENTOR_THEME_PATH=\\\${datadir}/enventor/themes/\\\ +AC_SUBST([ENVENTOR_DEFINE]) + AC_CONFIG_FILES([ Makefile src/Makefile diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index d9ec05c..08ecafb 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -14,7 +14,8 @@ AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\$(pkgdatadir)\ \ -DPACKAGE_LIB_DIR=\$(libdir)\ \ -I$(top_srcdir)/src/bin \ -I$(top_srcdir)/src/include \ - @ENVENTOR_CFLAGS@ + @ENVENTOR_CFLAGS@ \ + @ENVENTOR_DEFINE@ lib_LTLIBRARIES = libenventor.la diff --git a/src/lib/enventor_main.c b/src/lib/enventor_main.c index ab690a1..ab62ca5 100644 --- a/src/lib/enventor_main.c +++ b/src/lib/enventor_main.c @@ -94,8 +94,8 @@ enventor_init(int argc, char **argv) _enventor_log_dom = EINA_LOG_DOMAIN_GLOBAL; } - snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/themes/enventor.edj, -elm_app_data_dir_get()); + snprintf(EDJE_PATH, sizeof(EDJE_PATH), %s/enventor.edj, +ENVENTOR_THEME_PATH); srand(time(NULL)); --
[EGIT] [tools/enventor] master 01/01: Save dialog: support save edj files.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=59a5faf6e0c59257fc0daddd1539f2a0d747eb24 commit 59a5faf6e0c59257fc0daddd1539f2a0d747eb24 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Mon Jun 1 16:30:14 2015 + Save dialog: support save edj files. In case when user types filename.edj binary file will be compiled into that place, which chosen in fileselector. --- src/bin/menu.c | 55 +++ 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/src/bin/menu.c b/src/bin/menu.c index f8b7eab..6fe0365 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -392,6 +392,8 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info) { menu_data *md = data; const char *selected = event_info; + Eina_Bool is_edc = EINA_FALSE; + Eina_Bool is_edj = EINA_FALSE; eina_stringshare_refplace((md-last_accessed_path), elm_fileselector_path_get(obj)); @@ -402,13 +404,14 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info) return; } - //Filter to read only edc extension file. - char *ext = strrchr(selected, '.'); - if (!ext || strcmp(ext, .edc)) + //Filter to read only edc or edj extensions file. + is_edc = eina_str_has_extension(selected, edc); + is_edj = eina_str_has_extension(selected, edj); + if (!is_edc !is_edj) { elm_object_part_text_set(md-fileselector_layout, elm.text.msg, - Support only .edc file.); + Support only .edc or .edj file.); elm_object_signal_emit(md-fileselector_layout, elm,action,msg,show, ); return; @@ -424,24 +427,36 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info) return; } - config_edc_path_set(selected); - - Eina_List *list = eina_list_append(NULL, config_edj_path_get()); - enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, list); - eina_list_free(list); - - if (!enventor_object_save(md-enventor, selected)) + if (is_edc) { -char buf[PATH_MAX]; -snprintf(buf, sizeof(buf), Failed to save: %s., selected); -elm_object_part_text_set(md-fileselector_layout, - elm.text.msg, buf); -elm_object_signal_emit(md-fileselector_layout, - elm,action,msg,show, ); -return; +config_edc_path_set(selected); +Eina_List *list = eina_list_append(NULL, config_edj_path_get()); +enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, list); +eina_list_free(list); +if (!enventor_object_save(md-enventor, selected)) + { + char buf[PATH_MAX]; + snprintf(buf, sizeof(buf), Failed to save: %s., selected); + elm_object_part_text_set(md-fileselector_layout, + elm.text.msg, buf); + elm_object_signal_emit(md-fileselector_layout, +elm,action,msg,show, ); + return; + } +enventor_object_file_set(md-enventor, selected); +base_title_set(selected); } - enventor_object_file_set(md-enventor, selected); - base_title_set(selected); + else if (is_edj) + { +Eina_List *edj_pathes = NULL; +edj_pathes = eina_list_append(edj_pathes, selected); +enventor_object_path_set(md-enventor, ENVENTOR_OUT_EDJ, edj_pathes); +enventor_object_modified_set(md-enventor, EINA_TRUE); +enventor_object_save(md-enventor, config_edc_path_get()); +eina_list_free(edj_pathes); + + } + file_mgr_reset(); fileselector_close(md); menu_close(md); --
[EGIT] [tools/enventor] master 01/01: edj viewer: update live view for different groups.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9ac6faaa9e8200acc9cf39cf48335bf82509dd33 commit 9ac6faaa9e8200acc9cf39cf48335bf82509dd33 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Thu May 28 09:23:11 2015 + edj viewer: update live view for different groups. This happens, because edj file is rewrited and descriptor lost. Reload all groups each time when edj file rewrited. @fix T2162 --- src/lib/edj_mgr.c | 12 src/lib/edj_viewer.c | 6 ++ src/lib/enventor_private.h | 2 ++ src/lib/enventor_smart.c | 4 +++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c index 9059c5c..055eb38 100644 --- a/src/lib/edj_mgr.c +++ b/src/lib/edj_mgr.c @@ -238,3 +238,15 @@ edj_mgr_view_scale_get(void) return em-view_scale; } +void +edj_mgr_all_views_reload(void) +{ + edj_mgr *em = g_em; + if (!em) return; + Eina_List *l = NULL; + edj_data *edj = NULL; + + EINA_LIST_FOREACH(em-edjs, l, edj) + view_obj_need_reload_set(edj-vd); +} + diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index c9c8ad7..def547e 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -389,6 +389,12 @@ view_obj_get(view_data *vd) } void +view_obj_need_reload_set(view_data *vd) +{ + vd-edj_reload_need = EINA_TRUE; +} + +void view_program_run(view_data *vd, const char *program) { if (!vd) return; diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index f030e4a..34fa7ac 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -160,6 +160,7 @@ Eina_Bool edj_mgr_reload_need_get(void); void edj_mgr_clear(void); void edj_mgr_view_scale_set(double scale); double edj_mgr_view_scale_get(void); +void edj_mgr_all_views_reload(void); /* redoundo */ @@ -193,6 +194,7 @@ Eina_List *view_part_states_list_get(view_data *vd, const char *part); Eina_List *view_program_targets_get(view_data *vd, const char *prog); void view_string_list_free(Eina_List *list); void view_part_state_set(view_data *vd, const char *part, const char *description, const double state); +void view_obj_need_reload_set(view_data *vd); /* template */ diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index a23dc97..43a92dc 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -81,7 +81,9 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, double state_value, { Enventor_Object_Data *pd = data; static Eina_Stringshare *prev_part_name = NULL; - + + edj_mgr_all_views_reload(); + if (pd-group_name != group_name) { view_data *vd = edj_mgr_view_get(group_name); --