diff options
-rw-r--r-- | meson.build | 10 | ||||
-rw-r--r-- | meson_options.txt | 6 | ||||
-rw-r--r-- | src/bin/elementary/meson.build | 6 | ||||
-rw-r--r-- | src/bin/elementary/test.c | 2 | ||||
-rw-r--r-- | src/bin/elementary/test_fileselector.c | 2 | ||||
-rw-r--r-- | src/bin/elementary/test_photo.c | 2 | ||||
-rw-r--r-- | src/edje_external/elementary/meson.build | 5 | ||||
-rw-r--r-- | src/edje_external/elementary/modules.inc | 2 | ||||
-rw-r--r-- | src/examples/elementary/filemvc.c | 8 | ||||
-rw-r--r-- | src/examples/elementary/fileselector_example.c | 2 | ||||
-rw-r--r-- | src/examples/elementary/meson.build | 5 | ||||
-rw-r--r-- | src/lib/efl/Efl_Config.h.in | 2 | ||||
-rw-r--r-- | src/lib/elementary/Elementary.h | 4 | ||||
-rw-r--r-- | src/lib/elementary/elm_icon.c | 20 | ||||
-rw-r--r-- | src/lib/elementary/elm_main.c | 2 | ||||
-rw-r--r-- | src/lib/elementary/elm_widget_icon.h | 3 | ||||
-rw-r--r-- | src/lib/elementary/meson.build | 11 | ||||
-rw-r--r-- | src/tests/elementary/elm_suite.c | 2 | ||||
-rw-r--r-- | src/tests/elementary/meson.build | 5 |
19 files changed, 87 insertions, 12 deletions
diff --git a/meson.build b/meson.build index ba34a9c311..267db9255e 100644 --- a/meson.build +++ b/meson.build @@ -345,9 +345,9 @@ subprojects = [ ['ephysics' ,['physics'] , false, true, false, false, false, false, true, ['eina', 'efl', 'eo'], []], ['edje' ,[] , false, true, true, false, true, true, true, ['evas', 'eo', 'efl', lua_pc_name], []], ['emotion' ,[] , true, true, false, false, true, true, true, ['eina', 'efl', 'eo'], []], - ['ethumb' ,[] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], - ['ethumb_client' ,[] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []], - ['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], + ['ethumb' ,['ethumb'] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], + ['ethumb_client' ,['ethumb'] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []], + ['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], ['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []], ['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', lua_pc_name], []], ['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []], @@ -375,12 +375,15 @@ efl_one_include_dirs = [] efl_one_sub_dirs = [] tmp_empty = declare_dependency() +efl_config_h = configuration_data() + foreach package : subprojects package_name = package[0] package_version_name = '-'.join(package_name.split('_')) + '-' + version_major automatic_pkgfile = true if package[1].length() == 0 or get_option(package[1][0]) config_h.set('HAVE_' + package_name.to_upper().underscorify(), '1') + efl_config_h.set('HAVE_' + package_name.to_upper().underscorify(), '1') dir_package_include = join_paths(dir_include, package_version_name) dir_package_modules = join_paths(dir_lib, package_name, 'modules') @@ -628,7 +631,6 @@ endif # Configure files # -efl_config_h = configuration_data() efl_config_h.set('EFL_VERSION_MAJOR', version_major) efl_config_h.set('EFL_VERSION_MINOR', version_minor) efl_config_h.set('EFL_VERSION_MICRO', version_micro) diff --git a/meson_options.txt b/meson_options.txt index f5ffb0e134..c2954e04d2 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -58,6 +58,12 @@ option('physics', description : 'Physics engine (bullet) in efl' ) +option('ethumb', + type : 'boolean', + value : true, + description : 'Library and service for thumbnail generation and caching' +) + option('eeze', type : 'boolean', value : true, diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build index 1d7aa75057..f703263770 100644 --- a/src/bin/elementary/meson.build +++ b/src/bin/elementary/meson.build @@ -128,7 +128,6 @@ elementary_test_src = [ 'test_sys_notify.c', 'test_systray.c', 'test_table.c', - 'test_thumb.c', 'test_toolbar.c', 'test_tooltip.c', 'test_transit.c', @@ -172,10 +171,15 @@ if sys_windows == false link_args += ['-rdynamic', '-fPIC'] package_c_args = package_c_args + ['-fPIC'] endif + if sys_windows == false and sys_sun == false link_args += ['-pie'] endif +if get_option('ethumb') + elementary_test_src += ['test_thumb.c'] +endif + elementary_test = executable('elementary_test', elementary_test_src, dependencies: [elementary, intl] + elementary_deps + elementary_pub_deps, diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index d0d374ece4..0661086cde 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -877,7 +877,9 @@ add_tests: ADD_TEST(NULL, "Images", "Photocam Icon", test_photocam_icon); ADD_TEST_EO(NULL, "Images", "Image Zoomable animation", test_image_zoomable_animated); ADD_TEST(NULL, "Images", "Photo", test_photo); +#ifdef HAVE_ETHUMB ADD_TEST(NULL, "Images", "Thumb", test_thumb); +#endif ADD_TEST(NULL, "Images", "Image", test_image); ADD_TEST(NULL, "Images", "Image Scale Type", test_image_scale_type); ADD_TEST(NULL, "Images", "Image Align", test_image_swallow_align); diff --git a/src/bin/elementary/test_fileselector.c b/src/bin/elementary/test_fileselector.c index 880162e9d2..722825cf25 100644 --- a/src/bin/elementary/test_fileselector.c +++ b/src/bin/elementary/test_fileselector.c @@ -549,7 +549,9 @@ test_fileselector(void *data EINA_UNUSED, */ setlocale(LC_ALL, ""); +#ifdef HAVE_ETHUMB elm_need_ethumb(); +#endif elm_need_efreet(); win = elm_win_util_standard_add("fileselector", "File Selector"); diff --git a/src/bin/elementary/test_photo.c b/src/bin/elementary/test_photo.c index 7a6e0baf53..34f2e7a5bf 100644 --- a/src/bin/elementary/test_photo.c +++ b/src/bin/elementary/test_photo.c @@ -42,7 +42,9 @@ test_photo(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf "wood_01.jpg" }; +#ifdef HAVE_ETHUMB elm_need_ethumb(); +#endif win = elm_win_util_standard_add("photo", "Photo"); elm_win_autodel_set(win, EINA_TRUE); diff --git a/src/edje_external/elementary/meson.build b/src/edje_external/elementary/meson.build index 033b54eab8..31ad3d53a5 100644 --- a/src/edje_external/elementary/meson.build +++ b/src/edje_external/elementary/meson.build @@ -34,12 +34,15 @@ edje_external_elementary = [ 'elm_slider.c', 'elm_slideshow.c', 'elm_spinner.c', - 'elm_thumb.c', 'elm_toolbar.c', 'elm_video.c', 'elm_web.c' ] +if get_option('ethumb') + edje_external_elementary += ['elm_thumb.c'] +endif + ecore_systemd_mod = shared_module('elementary', edje_external_elementary, dependencies: [edje, elementary, elementary_deps], diff --git a/src/edje_external/elementary/modules.inc b/src/edje_external/elementary/modules.inc index dbfead5183..2037184966 100644 --- a/src/edje_external/elementary/modules.inc +++ b/src/edje_external/elementary/modules.inc @@ -31,7 +31,9 @@ DEFINE_TYPE(segment_control) DEFINE_TYPE(slider) DEFINE_TYPE(slideshow) DEFINE_TYPE(spinner) +#ifdef HAVE_ETHUMB DEFINE_TYPE(thumb) +#endif DEFINE_TYPE(toolbar) DEFINE_TYPE(video) DEFINE_TYPE(web) diff --git a/src/examples/elementary/filemvc.c b/src/examples/elementary/filemvc.c index dfe73c8b2b..e33c8c2f3a 100644 --- a/src/examples/elementary/filemvc.c +++ b/src/examples/elementary/filemvc.c @@ -22,7 +22,9 @@ struct _Efl_Model_Test_Filemvc_Data Eo *treeview; Eo *formview; Eo *treemodel; +#ifdef HAVE_ETHUMB Evas_Object *thumb; +#endif char imagedefault_path[256]; }; typedef struct _Efl_Model_Test_Filemvc_Data Efl_Model_Test_Filemvc_Data; @@ -49,7 +51,9 @@ _list_selected_cb(void *data EINA_UNUSED, const Efl_Event *event) { Efl_Model_Test_Filemvc_Data *priv = data; Eo *child = event->info; +#ifdef HAVE_ETHUMB ethumb_client_file_free(elm_thumb_ethumb_client_get()); +#endif printf("LIST selected model\n"); elm_view_form_model_set(priv->formview, child); @@ -89,6 +93,7 @@ _label_init(Evas_Object *win, Evas_Object *box, const char *text) } +#ifdef HAVE_ETHUMB static void _thumb_error_cb(void *data, Evas_Object *o EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -97,6 +102,7 @@ _thumb_error_cb(void *data, Evas_Object *o EINA_UNUSED, void *event_info EINA_UN elm_thumb_file_set(priv->thumb, priv->imagedefault_path, NULL); elm_thumb_reload(priv->thumb); } +#endif EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) @@ -177,6 +183,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) elm_view_form_widget_add(priv.formview, "path", entry); /* Thumb widget */ +#ifdef HAVE_ETHUMB elm_need_ethumb(); priv.thumb = elm_thumb_add(win); _widget_init(priv.thumb); @@ -185,6 +192,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) elm_view_form_widget_add(priv.formview, "path", priv.thumb); evas_object_smart_callback_add(priv.thumb, "generate,error", _thumb_error_cb, &priv); evas_object_smart_callback_add(priv.thumb, "load,error", _thumb_error_cb, &priv); +#endif //showall evas_object_resize(win, 800, 400); diff --git a/src/examples/elementary/fileselector_example.c b/src/examples/elementary/fileselector_example.c index db6dbee256..fa13f2a27a 100644 --- a/src/examples/elementary/fileselector_example.c +++ b/src/examples/elementary/fileselector_example.c @@ -113,7 +113,9 @@ elm_main(int argc EINA_UNUSED, */ setlocale(LC_ALL, ""); +#ifdef HAVE_ETHUMB elm_need_ethumb(); /* let's have thumbnails of images on grid view */ +#endif elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("fileselector", "File Selector Example"); diff --git a/src/examples/elementary/meson.build b/src/examples/elementary/meson.build index 7abffa8a2f..563560efe9 100644 --- a/src/examples/elementary/meson.build +++ b/src/examples/elementary/meson.build @@ -90,7 +90,6 @@ examples = [ 'table_example_02', 'theme_example_01', 'theme_example_02', - 'thumb_example_01', 'toolbar_example_01', 'toolbar_example_02', 'toolbar_example_03', @@ -123,6 +122,10 @@ examples = [ 'efl_canvas_textblock_obstacles_example' ] +if get_option('ethumb') + examples += ['thumb_example_01'] +endif + foreach example : examples executable(example, example + '.c', dependencies: [elementary, ecore, eio, m]) endforeach diff --git a/src/lib/efl/Efl_Config.h.in b/src/lib/efl/Efl_Config.h.in index 3dbef96659..3f5937f1dd 100644 --- a/src/lib/efl/Efl_Config.h.in +++ b/src/lib/efl/Efl_Config.h.in @@ -14,4 +14,6 @@ #define EFL_VERSION_MICRO @EFL_VERSION_MICRO@ #define EFL_BUILD_ID "@EFL_BUILD_ID@" +#mesondefine HAVE_ETHUMB + #endif diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 1721be4f73..0ce8fd8e35 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -72,7 +72,9 @@ #include <Efreet.h> #include <Efreet_Mime.h> #include <Efreet_Trash.h> +#ifdef HAVE_ETHUMB #include <Ethumb_Client.h> +#endif #ifdef ELM_EMAP #include <EMap.h> @@ -225,7 +227,9 @@ ELM_API extern Elm_Version *elm_version; #include <elm_table.h> #include <elm_textpath.h> #include <elm_theme.h> +#ifdef HAVE_ETHUMB #include <elm_thumb.h> +#endif #include <elm_toolbar.h> #include <elm_transit.h> /* this is actually elm_video */ diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c index 9b28feada9..318692d546 100644 --- a/src/lib/elementary/elm_icon.c +++ b/src/lib/elementary/elm_icon.c @@ -20,11 +20,16 @@ static Eina_List *_elm_icon_retry = NULL; static int _icon_pending_request = 0; +#ifdef HAVE_ETHUMB static const char SIG_THUMB_DONE[] = "thumb,done"; static const char SIG_THUMB_ERROR[] = "thumb,error"; +#endif + static const Evas_Smart_Cb_Description _smart_callbacks[] = { +#ifdef HAVE_ETHUMB {SIG_THUMB_DONE, ""}, {SIG_THUMB_ERROR, ""}, +#endif {NULL, NULL} }; @@ -57,6 +62,7 @@ _icon_size_min_get(Evas_Object *icon) return MAX(16, MIN(w, h)); } +#ifdef HAVE_ETHUMB static void _icon_thumb_stop(Elm_Icon_Data *sd, void *ethumbd) @@ -266,6 +272,8 @@ _icon_thumb_apply_cb(void *data, return ECORE_CALLBACK_RENEW; } +#endif + static Eina_Bool _icon_freedesktop_set(Evas_Object *obj, const char *theme, @@ -484,6 +492,8 @@ _elm_icon_standard_resize_cb(void *data, eina_stringshare_del(refup); } +#ifdef HAVE_ETHUMB + static void _elm_icon_thumb_resize_cb(void *data, Evas *e EINA_UNUSED, @@ -496,12 +506,16 @@ _elm_icon_thumb_resize_cb(void *data, elm_icon_thumb_set(obj, sd->thumb.file.path, sd->thumb.file.key); } +#endif + EOLIAN static void _elm_icon_efl_canvas_group_group_add(Eo *obj, Elm_Icon_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); +#ifdef HAVE_ETHUMB priv->thumb.request = NULL; +#endif } EOLIAN static void @@ -509,6 +523,7 @@ _elm_icon_efl_canvas_group_group_del(Eo *obj, Elm_Icon_Data *sd) { eina_stringshare_del(sd->stdicon); +#ifdef HAVE_ETHUMB if (sd->thumb.request) { Ethumb_Client *ethumbd = elm_thumb_ethumb_client_get(); @@ -520,6 +535,7 @@ _elm_icon_efl_canvas_group_group_del(Eo *obj, Elm_Icon_Data *sd) eina_stringshare_del(sd->thumb.thumb.path); eina_stringshare_del(sd->thumb.thumb.key); ecore_event_handler_del(sd->thumb.eeh); +#endif _edje_signals_free(sd); @@ -859,6 +875,8 @@ elm_icon_thumb_set(Evas_Object *obj, const char *file, const char *group) evas_object_event_callback_del_full (obj, EVAS_CALLBACK_RESIZE, _elm_icon_standard_resize_cb, obj); + +#ifdef HAVE_ETHUMB evas_object_event_callback_del_full (obj, EVAS_CALLBACK_RESIZE, _elm_icon_thumb_resize_cb, obj); @@ -879,6 +897,8 @@ elm_icon_thumb_set(Evas_Object *obj, const char *file, const char *group) sd->thumb.eeh = ecore_event_handler_add (ELM_ECORE_EVENT_ETHUMB_CONNECT, _icon_thumb_apply_cb, obj); } +#endif + } ELM_API Eina_Bool diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 20e27eb662..f22a205259 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -946,7 +946,9 @@ elm_quicklaunch_shutdown(void) _elm_unneed_efreet(); _elm_unneed_e_dbus(); _elm_unneed_eldbus(); +#ifdef HAVE_ETHUMB _elm_unneed_ethumb(); +#endif _elm_unneed_web(); #ifdef HAVE_ELEMENTARY_EMAP diff --git a/src/lib/elementary/elm_widget_icon.h b/src/lib/elementary/elm_widget_icon.h index 929f7e3141..06290d6b95 100644 --- a/src/lib/elementary/elm_widget_icon.h +++ b/src/lib/elementary/elm_widget_icon.h @@ -25,6 +25,7 @@ struct _Elm_Icon_Data Evas_Object *obj; // the object itself const char *stdicon; +#ifdef HAVE_ETHUMB struct { struct @@ -41,7 +42,7 @@ struct _Elm_Icon_Data Eina_Bool retry : 1; } thumb; - +#endif struct { int requested_size; diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index a6eda13dc6..e7b49877e6 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -844,7 +844,6 @@ elementary_src = files([ 'elm_sys_notify_dbus.c', 'elm_table.c', 'elm_theme.c', - 'elm_thumb.c', 'elm_toolbar.c', 'elm_transit.c', 'elm_util.c', @@ -953,10 +952,16 @@ elementary_src = files([ 'efl_ui_spotlight_animation_manager.c', ]) -elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, eio, buildsystem] +elementary_deps = [emile, eo, efl, edje, emotion, ecore_imf, ecore_con, eldbus, efreet, eio, buildsystem] elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con, - edje, eldbus, efreet, ethumb_client, efl] + edje, eldbus, efreet, efl] elementary_ext_deps = [atspi, dl, intl, buildsystem_simple] + +if get_option('ethumb') + elementary_src += files('elm_thumb.c') + elementary_deps += [ethumb, ethumb_client] + elementary_pub_deps += ethumb_client +endif elm_options = configuration_data() config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root()) diff --git a/src/tests/elementary/elm_suite.c b/src/tests/elementary/elm_suite.c index d6aa4636e8..2a2289b6dc 100644 --- a/src/tests/elementary/elm_suite.c +++ b/src/tests/elementary/elm_suite.c @@ -22,7 +22,9 @@ static const Efl_Test_Case etc[] = { { "elm_actionslider", elm_test_actionslider}, { "elm_box", elm_test_box}, { "elm_table", elm_test_table}, +#ifdef HAVE_ETHUMB { "elm_thumb", elm_test_thumb}, +#endif { "elm_menu", elm_test_menu}, { "elm_photocam", elm_test_photocam}, { "elm_win", elm_test_win}, diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build index d46db7da6b..63fa722c50 100644 --- a/src/tests/elementary/meson.build +++ b/src/tests/elementary/meson.build @@ -38,7 +38,6 @@ elementary_suite_src = [ 'elm_test_actionslider.c', 'elm_test_box.c', 'elm_test_table.c', - 'elm_test_thumb.c', 'elm_test_menu.c', 'elm_test_photocam.c', 'elm_test_win.c', @@ -107,6 +106,10 @@ elementary_suite_src = [ 'elm_test_widget_basics.c' ] +if get_option('ethumb') + elementary_suite_src += ['elm_test_thumb.c'] +endif + elementary_suite = executable('elementary_suite', elementary_suite_src, dependencies: [check, eina, elementary, elementary_deps, intl], |