From d4c2c2339414eb5bf843c386da69dd2b5bb1c64a Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Tue, 14 Oct 2014 22:57:22 +0200 Subject: [PATCH] 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 2717dfaa..1e6d558f 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 be3e5b3e..f933b280 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 1ac8f0b4..570b0632 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 1b8105f0..46d86a36 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) { @@ -474,6 +483,16 @@ options_behavior(Evas_Object *opbox, Evas_Object *term) evas_object_smart_callback_add(o, "changed", _cb_op_behavior_mouse_over_focus_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, _("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);