bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/apps/extra.git/commit/?id=deb5e0b9a387394b1afca67139eafdefd4b5aede

commit deb5e0b9a387394b1afca67139eafdefd4b5aede
Author: Marcel Hollerbach <[email protected]>
Date:   Mon Jan 23 23:12:31 2017 +0100

    extra: add a option to get back to the default
---
 src/bin/extra_theme_selector.c | 32 +++++++++++++++++++++-----------
 src/lib/extra.c                | 10 ++++++++++
 src/lib/extra.h                |  2 ++
 3 files changed, 33 insertions(+), 11 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);
-
-        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);
-     }
+   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);
 
    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);
 /**
  * @}
  */

-- 


Reply via email to