hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=386edb7ab55e2456c7bf5395070fcc425fc48cb8

commit 386edb7ab55e2456c7bf5395070fcc425fc48cb8
Author: Hermet Park <her...@hermet.pe.kr>
Date:   Fri Apr 22 16:22:53 2016 +0900

    edc_navigator: store/restore auto contraction mode.
---
 src/bin/config_data.c     | 18 ++++++++++++++++++
 src/bin/edc_navigator.c   | 15 +++++++--------
 src/include/common.h      |  2 +-
 src/include/config_data.h |  2 ++
 4 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 6b3b98e..b9c0391 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -42,6 +42,7 @@ typedef struct config_s
    Eina_Bool smart_undo_redo;
    Eina_Bool file_browser;
    Eina_Bool edc_navigator;
+   Eina_Bool auto_contract;
 } config_data;
 
 static config_data *g_cd = NULL;
@@ -189,6 +190,7 @@ config_load(void)
         cd->smart_undo_redo = EINA_FALSE;
         cd->file_browser = EINA_TRUE;
         cd->edc_navigator = EINA_TRUE;
+        cd->auto_contract = EINA_FALSE;
      }
 
    g_cd = cd;
@@ -310,6 +312,8 @@ eddc_init(void)
                                     file_browser, EET_T_UCHAR);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "edc_navigator",
                                     edc_navigator, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "auto_contract",
+                                    auto_contract, EET_T_UCHAR);
 }
 
 void
@@ -942,6 +946,20 @@ config_file_browser_get(void)
 }
 
 void
+config_auto_contract_set(Eina_Bool enabled)
+{
+   config_data *cd = g_cd;
+   cd->auto_contract = enabled;
+}
+
+Eina_Bool
+config_auto_contract_get(void)
+{
+   config_data *cd = g_cd;
+   return cd->auto_contract;
+}
+
+void
 config_edc_navigator_set(Eina_Bool enabled)
 {
    config_data *cd = g_cd;
diff --git a/src/bin/edc_navigator.c b/src/bin/edc_navigator.c
index b2c25bb..c83f865 100644
--- a/src/bin/edc_navigator.c
+++ b/src/bin/edc_navigator.c
@@ -27,8 +27,6 @@ typedef struct edc_navigator_s
    Elm_Genlist_Item_Class *programs_itc;
    Elm_Genlist_Item_Class *program_itc;
 
-   Eina_Bool auto_contract : 1;
-
 } navi_data;
 
 typedef enum
@@ -131,9 +129,10 @@ static void
 check_changed_cb(void *data, Evas_Object *obj, void *event_info)
 {
    navi_data *nd = data;
-   nd->auto_contract = elm_check_state_get(obj);
+   Eina_Bool auto_contract = elm_check_state_get(obj);
+   config_auto_contract_set(auto_contract);
 
-   if (!nd->auto_contract) return;
+   if (!auto_contract) return;
 
    // Contract all groups instantly.
    Eina_List *l;
@@ -778,7 +777,7 @@ programs_expand(programs_it *pit)
    sub_programs_update(pit->git->nd, pit);
 
    //If auto contraction is enabled, then close other parts
-   if (!(pit->git->nd->auto_contract)) return;
+   if (!config_auto_contract_get()) return;
 
    //Contract part states
    part_it *pit2;
@@ -1084,7 +1083,7 @@ part_expand(part_it *pit)
    states_update(pit->git->nd, pit);
 
    //If auto contraction is enabled, then close other parts and programs
-   if (!(pit->git->nd->auto_contract)) return;
+   if (!config_auto_contract_get()) return;
 
    //Contract other part states
    part_it *pit2;
@@ -1129,7 +1128,7 @@ group_expand(group_it *git)
    group_update(git->nd, git);
 
    //If auto contraction is enabled, then close other parts
-   if (!(git->nd->auto_contract)) return;
+   if (!config_auto_contract_get()) return;
 
    //Contract other groups
    group_it *git2;
@@ -1357,7 +1356,7 @@ edc_navigator_init(Evas_Object *parent)
    //Check for genlist option
    Evas_Object *check = elm_check_add(box);
    elm_object_text_set(check, "Automatic Contraction");
-   elm_check_state_set(check, EINA_FALSE);
+   elm_check_state_set(check, config_auto_contract_get());
    evas_object_smart_callback_add(check, "changed", check_changed_cb, nd);
    elm_object_focus_allow_set(check, EINA_FALSE);
    evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, 0);
diff --git a/src/include/common.h b/src/include/common.h
index 5736664..dc87c5d 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -54,7 +54,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
 
 #define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
 
-#define ENVENTOR_CONFIG_VERSION 8
+#define ENVENTOR_CONFIG_VERSION 9
 
 #define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
   ((MASK & ECORE_EVENT_MODIFIER_##NAME) && \
diff --git a/src/include/config_data.h b/src/include/config_data.h
index 3e0ca07..90d765e 100644
--- a/src/include/config_data.h
+++ b/src/include/config_data.h
@@ -63,3 +63,5 @@ void config_file_browser_set(Eina_Bool enabled);
 Eina_Bool config_file_browser_get(void);
 void config_edc_navigator_set(Eina_Bool enabled);
 Eina_Bool config_edc_navigator_get(void);
+void config_auto_contract_set(Eina_Bool enabled);
+Eina_Bool config_auto_contract_get(void);

-- 


Reply via email to