From deb5e0b9a387394b1afca67139eafdefd4b5aede Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 23 Jan 2017 23:12:31 +0100 Subject: [PATCH] extra: add a option to get back to the default --- src/bin/extra_theme_selector.c | 30 ++++++++++++++++++++---------- src/lib/extra.c | 10 ++++++++++ src/lib/extra.h | 2 ++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/bin/extra_theme_selector.c b/src/bin/extra_theme_selector.c index 4101639..f3fd5f2 100644 --- a/src/bin/extra_theme_selector.c +++ b/src/bin/extra_theme_selector.c @@ -77,22 +77,25 @@ _set_as_default(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_ extra_theme_use(candidate); } +static void +_back_to_default(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + extra_theme_reset(); +} + static Evas_Object* _action_button_create(Evas_Object *par, Extra_Theme *theme) { Evas_Object *install = NULL, *icon = NULL; - if (!extra_theme_default_get(theme)) - { - icon = elm_icon_add(par); - evas_object_show(icon); + icon = elm_icon_add(par); + evas_object_show(icon); - install = elm_button_add(par); - elm_object_part_content_set(install, "icon", icon); - evas_object_size_hint_weight_set(install, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(install, 1.0, 0.5); - evas_object_show(install); - } + install = elm_button_add(par); + elm_object_part_content_set(install, "icon", icon); + evas_object_size_hint_weight_set(install, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(install, 1.0, 0.5); + evas_object_show(install); if (!extra_theme_installed(theme) && extra_theme_installed_old(theme)) { @@ -115,6 +118,13 @@ _action_button_create(Evas_Object *par, Extra_Theme *theme) evas_object_smart_callback_add(install, "clicked", _set_as_default, theme); elm_object_text_set(install, "Set as default"); } + else if (extra_theme_installed(theme) && extra_theme_default_get(theme)) + { + //the theme is installed but not the default + elm_icon_standard_set(icon, "emblem-favorite"); + evas_object_smart_callback_add(install, "clicked", _back_to_default, theme); + elm_object_text_set(install, "Back to default"); + } return install; } diff --git a/src/lib/extra.c b/src/lib/extra.c index f63911f..337a031 100644 --- a/src/lib/extra.c +++ b/src/lib/extra.c @@ -515,6 +515,16 @@ extra_theme_use(Extra_Theme *t) ecore_timer_add(3, _enlightenment_restart, NULL); } +EAPI void +extra_theme_reset(void) +{ + elm_theme_set(NULL, "default"); + elm_config_all_flush(); + elm_config_save(); + + ecore_timer_add(3, _enlightenment_restart, NULL); +} + EAPI Eina_Bool extra_theme_default_get(Extra_Theme *t) { diff --git a/src/lib/extra.h b/src/lib/extra.h index 68a0472..7111d64 100644 --- a/src/lib/extra.h +++ b/src/lib/extra.h @@ -170,6 +170,8 @@ EAPI void extra_theme_download(Extra_Progress *progress, Extra_Theme *theme); EAPI void extra_theme_use(Extra_Theme *t); EAPI Eina_Bool extra_theme_default_get(Extra_Theme *t); EAPI Eina_Bool extra_theme_installed_old(Extra_Theme *t); + +EAPI void extra_theme_reset(void); /** * @} */