From b8af21128e64ab2ca52dad694afecbdded081e89 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 8 Sep 2019 19:41:16 +0200 Subject: [PATCH] config: simplify API --- src/bin/config.c | 18 +++++------------- src/bin/config.h | 7 +++---- src/bin/main.c | 2 +- src/bin/options_background.c | 10 +++++----- src/bin/options_behavior.c | 20 ++++++++++---------- src/bin/options_colors.c | 4 ++-- src/bin/options_font.c | 6 +++--- src/bin/options_helpers.c | 16 ++++++++-------- src/bin/options_keys.c | 4 ++-- src/bin/options_theme.c | 2 +- src/bin/options_video.c | 6 +++--- src/bin/win.c | 9 +++++---- 12 files changed, 48 insertions(+), 56 deletions(-) diff --git a/src/bin/config.c b/src/bin/config.c index b205b8f7..9cb4fa27 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -8,6 +8,7 @@ #include "utils.h" #define CONF_VER 22 +#define CONFIG_KEY "config" #define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min;} @@ -207,7 +208,7 @@ config_shutdown(void) } void -config_save(Config *config, const char *key) +config_save(Config *config) { Eet_File *ef; char buf[PATH_MAX], buf2[PATH_MAX]; @@ -221,7 +222,6 @@ config_save(Config *config, const char *key) main_config_sync(config); return; } - if (!key) key = config->config_key; config->font.orig_size = config->font.size; eina_stringshare_del(config->font.orig_name); config->font.orig_name = NULL; @@ -236,7 +236,7 @@ config_save(Config *config, const char *key) ef = eet_open(buf, EET_FILE_MODE_WRITE); if (ef) { - ok = eet_data_write(ef, edd_base, key, config, 1); + ok = eet_data_write(ef, edd_base, CONFIG_KEY, config, 1); eet_close(ef); if (ok) ecore_file_mv(buf, buf2); } @@ -581,21 +581,19 @@ config_new(void) Config * -config_load(const char *key) +config_load(void) { Eet_File *ef; char buf[PATH_MAX]; const char *cfgdir; Config *config = NULL; - EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); - cfgdir = _config_home_get(); snprintf(buf, sizeof(buf), "%s/terminology/config/standard/base.cfg", cfgdir); ef = eet_open(buf, EET_FILE_MODE_READ); if (ef) { - config = eet_data_read(ef, edd_base, key); + config = eet_data_read(ef, edd_base, CONFIG_KEY); eet_close(ef); if (config) { @@ -731,9 +729,6 @@ config_load(const char *key) config->font_set = 1; } - if (config) - config->config_key = eina_stringshare_add(key); /* not in eet */ - return config; } @@ -804,7 +799,6 @@ config_fork(const Config *config) CPY(mouse_over_focus); CPY(disable_focus_visuals); CPY(temporary); - SCPY(config_key); CPY(font_set); CPY(gravatar); CPY(notabs); @@ -851,8 +845,6 @@ config_del(Config *config) eina_stringshare_del(config->helper.local.video); eina_stringshare_del(config->helper.local.image); - eina_stringshare_del(config->config_key); /* not in eet */ - EINA_LIST_FREE(config->keys, key) { eina_stringshare_del(key->keyname); diff --git a/src/bin/config.h b/src/bin/config.h index e9e65c71..b74a4a9f 100644 --- a/src/bin/config.h +++ b/src/bin/config.h @@ -99,16 +99,15 @@ struct _Config Eina_Bool temporary; /* not in EET */ Eina_Bool font_set; /* not in EET */ - const char *config_key; /* not in EET, the key that config was loaded */ }; void config_init(void); void config_shutdown(void); void config_sync(const Config *config_src, Config *config); -void config_save(Config *config, const char *key); -Config *config_load(const char *key); +void config_save(Config *config); +Config *config_load(void); Config *config_fork(const Config *config); -Config *config_new(); +Config *config_new(void); void config_del(Config *config); void config_default_font_set(Config *config, Evas *evas); void config_reset_keys(Config *config); diff --git a/src/bin/main.c b/src/bin/main.c index 0cc1252b..b50dbbe5 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -582,7 +582,7 @@ elm_main(int argc, char **argv) config_init(); - _main_config = config_load("config"); + _main_config = config_load(); if (key_bindings_load(_main_config) < 0) { CRITICAL(_("Could not initialize key bindings.")); diff --git a/src/bin/options_background.c b/src/bin/options_background.c index a7d836e9..530ade15 100644 --- a/src/bin/options_background.c +++ b/src/bin/options_background.c @@ -77,7 +77,7 @@ _cb_op_video_trans_chg(void *data, config->translucent = elm_check_state_get(obj); elm_object_disabled_set(ctx->op_opacity, !config->translucent); main_trans_update(config); - config_save(config, NULL); + config_save(config); } static void @@ -92,7 +92,7 @@ _cb_op_video_opacity_chg(void *data, if (!config->translucent) return; main_trans_update(config); - config_save(config, NULL); + config_save(config); } static void @@ -227,12 +227,12 @@ _item_selected(void *data, // no background eina_stringshare_del(config->background); config->background = NULL; - config_save(config, NULL); + config_save(config); main_media_update(config); } else if (eina_stringshare_replace(&(config->background), item->path)) { - config_save(config, NULL); + config_save(config); main_media_update(config); } } @@ -505,7 +505,7 @@ _cb_grid_doubleclick(void *data, if (newfile) { eina_stringshare_replace(&(config->background), newfile); - config_save(config, NULL); + config_save(config); main_media_update(config); eina_stringshare_del(newfile); _bubble_show(ctx, _("Picture imported")); diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c index 72164720..4fb0c9b5 100644 --- a/src/bin/options_behavior.c +++ b/src/bin/options_behavior.c @@ -34,7 +34,7 @@ _cb_op_behavior_##_cfg_name(void *data, Evas_Object *obj, \ config->_cfg_name = elm_check_state_get(obj); \ termio_config_update(ctx->term); \ windows_update(); \ - config_save(config, NULL); \ + config_save(config); \ } CB(jump_on_change, 0); @@ -94,7 +94,7 @@ _cb_op_behavior_sback_chg(void *data, config->scrollback = (double) sback_double_to_expo_int(elm_slider_value_get(obj)); termio_config_update(ctx->term); - config_save(config, NULL); + config_save(config); } static void @@ -107,7 +107,7 @@ _cb_op_behavior_tab_zoom_slider_chg(void *data, config->tab_zoom = (double)(int)round(elm_slider_value_get(obj) * 10.0) / 10.0; termio_config_update(ctx->term); - config_save(config, NULL); + config_save(config); } static void @@ -124,7 +124,7 @@ _cb_op_behavior_custom_geometry_current_set(void *data, elm_spinner_value_set(ctx->op_w, config->cg_width); elm_spinner_value_set(ctx->op_h, config->cg_height); } - config_save(config, NULL); + config_save(config); } static void @@ -141,7 +141,7 @@ _cb_op_behavior_custom_geometry(void *data, config->cg_width = (int) elm_spinner_value_get(ctx->op_w); config->cg_height = (int) elm_spinner_value_get(ctx->op_h); } - config_save(config, NULL); + config_save(config); elm_object_disabled_set(ctx->op_w, !config->custom_geometry); elm_object_disabled_set(ctx->op_h, !config->custom_geometry); @@ -159,7 +159,7 @@ _cb_op_behavior_cg_width(void *data, if (config->custom_geometry) { config->cg_width = (int) elm_spinner_value_get(obj); - config_save(config, NULL); + config_save(config); } } @@ -174,7 +174,7 @@ _cb_op_behavior_cg_height(void *data, if (config->custom_geometry) { config->cg_height = (int) elm_spinner_value_get(obj); - config_save(config, NULL); + config_save(config); } } @@ -203,7 +203,7 @@ _cursors_changed_cb(void *data, Evas_Object *obj, termio_config_update(ctx->term); windows_update(); - config_save(config, NULL); + config_save(config); } static void @@ -224,7 +224,7 @@ _cb_op_hide_cursor_changed(void *data, config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0; elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE); } - config_save(config, NULL); + config_save(config); } static void @@ -240,7 +240,7 @@ _cb_hide_cursor_slider_chg(void *data, return; config->hide_cursor = value; - config_save(config, NULL); + config_save(config); } diff --git a/src/bin/options_colors.c b/src/bin/options_colors.c index 62b16406..4fbde83c 100644 --- a/src/bin/options_colors.c +++ b/src/bin/options_colors.c @@ -101,7 +101,7 @@ _cb_op_color_chg(void *data, config->colors[(j * 12) + i].b = b * a / 256; config->colors[(j * 12) + i].a = a; termio_config_update(ctx->term); - config_save(config, NULL); + config_save(config); return; } } @@ -184,7 +184,7 @@ _cb_op_reset(void *data, elm_colorselector_palette_item_color_get(ctx->curitem, &r, &g, &b, &a); elm_colorselector_color_set(ctx->colorsel, r, g, b, a); termio_config_update(term); - config_save(config, NULL); + config_save(config); } /* make color palettes wrap back. :) works with elm git. */ diff --git a/src/bin/options_font.c b/src/bin/options_font.c index 407694a5..d90e7e90 100644 --- a/src/bin/options_font.c +++ b/src/bin/options_font.c @@ -157,7 +157,7 @@ _cb_op_font_sel(void *data, elm_object_disabled_set(ctx->op_fsml, f->bitmap); elm_object_disabled_set(ctx->op_fontslider, f->bitmap); elm_object_disabled_set(ctx->op_fbig, f->bitmap); - config_save(config, NULL); + config_save(config); win_font_update(term); } @@ -176,7 +176,7 @@ _cb_op_fontsize_sel(void *data, config->font.size = size; _update_sizing(ctx); elm_genlist_realized_items_update(ctx->op_fontlist); - config_save(config, NULL); + config_save(config); win_font_update(term); } @@ -398,7 +398,7 @@ _cb_font_bolditalic(void *data, config->font.bolditalic = elm_check_state_get(obj); termio_config_update(ctx->term); - config_save(config, NULL); + config_save(config); } void diff --git a/src/bin/options_helpers.c b/src/bin/options_helpers.c index 00c29a7b..c33e3681 100644 --- a/src/bin/options_helpers.c +++ b/src/bin/options_helpers.c @@ -15,7 +15,7 @@ _cb_op_helper_inline_chg(void *data, Evas_Object *term = data; Config *config = termio_config_get(term); config->helper.inline_please = elm_check_state_get(obj); - config_save(config, NULL); + config_save(config); } static void @@ -38,7 +38,7 @@ _cb_op_helper_email_chg(void *data, config->helper.email = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -61,7 +61,7 @@ _cb_op_helper_url_image_chg(void *data, config->helper.url.image = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -84,7 +84,7 @@ _cb_op_helper_url_video_chg(void *data, config->helper.url.video = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -107,7 +107,7 @@ _cb_op_helper_url_general_chg(void *data, config->helper.url.general = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -130,7 +130,7 @@ _cb_op_helper_local_image_chg(void *data, config->helper.local.image = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -153,7 +153,7 @@ _cb_op_helper_local_video_chg(void *data, config->helper.local.video = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } static void @@ -176,7 +176,7 @@ _cb_op_helper_local_general_chg(void *data, config->helper.local.general = eina_stringshare_add(txt); free(txt); } - config_save(config, NULL); + config_save(config); } void diff --git a/src/bin/options_keys.c b/src/bin/options_keys.c index 3d784776..47f088f8 100644 --- a/src/bin/options_keys.c +++ b/src/bin/options_keys.c @@ -51,7 +51,7 @@ _shortcut_delete(void *data, eina_stringshare_del(cfg_key->cb); free(cfg_key); - config_save(ctx->config, NULL); + config_save(ctx->config); } static Evas_Object * @@ -152,7 +152,7 @@ _cb_key_up(void *data, evas_object_size_hint_min_set(bx, min_w, min_h); elm_box_pack_before(bx, bt, last); - config_save(ctx->config, NULL); + config_save(ctx->config); } else { diff --git a/src/bin/options_theme.c b/src/bin/options_theme.c index fb0af9ea..38fb0199 100644 --- a/src/bin/options_theme.c +++ b/src/bin/options_theme.c @@ -79,7 +79,7 @@ _cb_op_theme_sel(void *data, return; eina_stringshare_replace(&(config->theme), t->name); - config_save(config, NULL); + config_save(config); change_theme(termio_win_get(t->ctx->term), config); } diff --git a/src/bin/options_video.c b/src/bin/options_video.c index f3f83d38..c243a2c2 100644 --- a/src/bin/options_video.c +++ b/src/bin/options_video.c @@ -17,7 +17,7 @@ _cb_op_video_mute_chg(void *data, Config *config = termio_config_get(term); config->mute = elm_check_state_get(obj); main_media_mute_update(config); - config_save(config, NULL); + config_save(config); } static void @@ -29,7 +29,7 @@ _cb_op_video_visualize_chg(void *data, Config *config = termio_config_get(term); config->visualize = elm_check_state_get(obj); main_media_visualize_update(config); - config_save(config, NULL); + config_save(config); } static void @@ -43,7 +43,7 @@ _cb_op_video_vidmod_chg(void *data, if (v == config->vidmod) return; config->vidmod = v; main_media_update(config); - config_save(config, NULL); + config_save(config); } void diff --git a/src/bin/win.c b/src/bin/win.c index 3ad20801..0ec73ae9 100644 --- a/src/bin/win.c +++ b/src/bin/win.c @@ -244,7 +244,7 @@ _scale_done(void *data, ctx->term->wn->on_popover--; term_unref(ctx->term); elm_config_save(); - config_save(ctx->term->config, NULL); + config_save(ctx->term->config); free(ctx); } @@ -3937,7 +3937,7 @@ term_apply_shine(Term *term, int shine) { config->shine = shine; background_set_shine(config, term->bg); - config_save(config, NULL); + config_save(config); } } @@ -4715,7 +4715,8 @@ _set_alpha(Config *config, const char *val, Eina_Bool save) config->translucent = EINA_FALSE; main_trans_update(config); - if (save) config_save(config, NULL); + if (save) + config_save(config); } static void @@ -5015,7 +5016,7 @@ _cb_command(void *data, else eina_stringshare_replace(&(config->background), NULL); main_media_update(config); - config_save(config, NULL); + config_save(config); } } }