billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=d4c2c2339414eb5bf843c386da69dd2b5bb1c64a

commit d4c2c2339414eb5bf843c386da69dd2b5bb1c64a
Author: Boris Faure <bill...@gmail.com>
Date:   Tue Oct 14 22:57:22 2014 +0200

    reorganize config struct
---
 src/bin/config.c           | 31 ++++++++++++++++++++++---------
 src/bin/config.h           |  8 ++++----
 src/bin/gravatar.c         |  3 +++
 src/bin/options_behavior.c | 19 +++++++++++++++++++
 4 files changed, 48 insertions(+), 13 deletions(-)

diff --git a/src/bin/config.c b/src/bin/config.c
index 2717dfa..1e6d558 100644
--- a/src/bin/config.c
+++ b/src/bin/config.c
@@ -7,7 +7,7 @@
 #include "col.h"
 #include "utils.h"
 
-#define CONF_VER 3
+#define CONF_VER 4
 
 #define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min;}
 
@@ -158,6 +158,8 @@ config_init(void)
      (edd_base, Config, "bell_rings", bell_rings, EET_T_UCHAR);
    EET_DATA_DESCRIPTOR_ADD_LIST
      (edd_base, Config, "keys", keys, edd_keys);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_base, Config, "gravatar", gravatar, EET_T_UCHAR);
 }
 
 void
@@ -255,6 +257,8 @@ config_sync(const Config *config_src, Config *config)
    config->colors_use = config_src->colors_use;
    memcpy(config->colors, config_src->colors, sizeof(config->colors));
    config->mouse_over_focus = config_src->mouse_over_focus;
+   /* TODO: config->keys */
+   config->gravatar = config_src->gravatar;
 }
 
 static void
@@ -451,13 +455,16 @@ config_load(const char *key)
                   /* upgrade to v3 */
                   config->active_links = EINA_TRUE;
                   config->bell_rings = EINA_TRUE;
-                  config->version = 3;
                   /*pass through*/
-                case CONF_VER: /* 3 */
+                case 3:
                   if (eina_list_count(config->keys) == 0)
                     {
                        _add_default_keys(config);
                     }
+                  /*pass through*/
+                case CONF_VER: /* 4 */
+                  config->version = CONF_VER;
+                  config->gravatar = EINA_TRUE;
                   break;
                 default:
                   if (config->version < CONF_VER)
@@ -491,11 +498,13 @@ config_load(const char *key)
              config->helper.local.image = eina_stringshare_add("xdg-open");
              config->helper.inline_please = EINA_TRUE;
              config->scrollback = 2000;
-             config->tab_zoom = 0.5;
              config->theme = eina_stringshare_add("default.edj");
              config->background = NULL;
-             config->translucent = EINA_FALSE;
+             config->tab_zoom = 0.5;
+             config->vidmod = 0;
              config->opacity = 50;
+             config->cg_width = 80;
+             config->cg_height = 24;
              config->jump_on_change = EINA_TRUE;
              config->jump_on_keypress = EINA_TRUE;
              config->flicker_on_key = EINA_FALSE;
@@ -503,7 +512,7 @@ config_load(const char *key)
              config->disable_visual_bell = EINA_FALSE;
              config->bell_rings = EINA_TRUE;
              config->active_links = EINA_TRUE;
-             config->vidmod = 0;
+             config->translucent = EINA_FALSE;
              config->mute = EINA_FALSE;
              config->visualize = EINA_TRUE;
              config->urg_bell = EINA_TRUE;
@@ -513,10 +522,11 @@ config_load(const char *key)
              config->xterm_256color = EINA_FALSE;
              config->erase_is_del = EINA_FALSE;
              config->custom_geometry = EINA_FALSE;
+             config->drag_links = EINA_FALSE;
              config->login_shell = EINA_FALSE;
-             config->cg_width = 80;
-             config->cg_height = 24;
+             config->mouse_over_focus = EINA_TRUE;
              config->colors_use = EINA_FALSE;
+             config->gravatar = EINA_TRUE;
              for (j = 0; j < 4; j++)
                {
                   for (i = 0; i < 12; i++)
@@ -530,7 +540,6 @@ config_load(const char *key)
                        config->colors[(j * 12) + i].a = aa;
                     }
                }
-             config->mouse_over_focus = EINA_TRUE;
              _add_default_keys(config);
           }
      }
@@ -606,6 +615,7 @@ config_fork(Config *config)
    CPY(temporary);
    SCPY(config_key);
    CPY(font_set);
+   CPY(gravatar);
 
    EINA_LIST_FOREACH(config->keys, l, key)
      {
@@ -620,6 +630,9 @@ config_fork(Config *config)
         eina_stringshare_ref(key->cb);
         config2->keys = eina_list_append(config2->keys, key2);
      }
+
+   CPY(gravatar);
+
    return config2;
 }
 
diff --git a/src/bin/config.h b/src/bin/config.h
index be3e5b3..f933b28 100644
--- a/src/bin/config.h
+++ b/src/bin/config.h
@@ -48,6 +48,9 @@ struct _Config
    const char       *background;
    double            tab_zoom;
    int               vidmod;
+   int               opacity;
+   int               cg_width;
+   int               cg_height;
    Eina_Bool         jump_on_keypress;
    Eina_Bool         jump_on_change;
    Eina_Bool         flicker_on_key;
@@ -56,7 +59,6 @@ struct _Config
    Eina_Bool         bell_rings;
    Eina_Bool         active_links;
    Eina_Bool         translucent;
-   int               opacity;
    Eina_Bool         mute;
    Eina_Bool         visualize;
    Eina_Bool         urg_bell;
@@ -69,11 +71,9 @@ struct _Config
    Eina_Bool         drag_links;
    Eina_Bool         login_shell;
    Eina_Bool         mouse_over_focus;
-   int               cg_width;
-   int               cg_height;
    Eina_Bool         colors_use;
+   Eina_Bool         gravatar;
    Config_Color      colors[(4 * 12)];
-   Eina_Bool         miniview;
    Eina_List        *keys;
 
    Eina_Bool         temporary; /* not in EET */
diff --git a/src/bin/gravatar.c b/src/bin/gravatar.c
index 1ac8f0b..570b063 100644
--- a/src/bin/gravatar.c
+++ b/src/bin/gravatar.c
@@ -66,6 +66,9 @@ gravatar_tooltip(Evas_Object *obj, Config *config, char 
*email)
    const char *url;
    Gravatar *g;
 
+   if (!config->gravatar)
+     return;
+
    g = calloc(sizeof(Gravatar), 1);
    if (!g) return;
    g->config = config;
diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c
index 1b8105f..46d86a3 100644
--- a/src/bin/options_behavior.c
+++ b/src/bin/options_behavior.c
@@ -289,6 +289,15 @@ _cb_op_behavior_mouse_over_focus_chg(void *data, 
Evas_Object *obj, void *event E
    config_save(config, NULL);
 }
 
+static void
+_cb_op_behavior_gravatar_chg(void *data, Evas_Object *obj, void *event 
EINA_UNUSED)
+{
+   Evas_Object *term = data;
+   Config *config = termio_config_get(term);
+   config->gravatar = elm_check_state_get(obj);
+   config_save(config, NULL);
+}
+
 void
 options_behavior(Evas_Object *opbox, Evas_Object *term)
 {
@@ -477,6 +486,16 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
    o = elm_check_add(bx);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
+   elm_object_text_set(o, _("Gravatar integration"));
+   elm_check_state_set(o, config->gravatar);
+   elm_box_pack_end(bx, o);
+   evas_object_show(o);
+   evas_object_smart_callback_add(o, "changed",
+                                  _cb_op_behavior_gravatar_chg, term);
+
+   o = elm_check_add(bx);
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
    elm_object_text_set(o, _("Always open at size:"));
    elm_check_state_set(o, config->custom_geometry);
    elm_box_pack_end(bx, o);

-- 


Reply via email to