X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Frcfile.c;h=3fc9c59ca51bef8b1061f7dc3e2f30a06f91f89d;hb=30a7a60d8149a42effe57c5a57e5fe844ae647ce;hp=f9460daa8d3fc0774cf06eef5b6a572462c14600;hpb=7978f86304a572e67a6cdb56c3f6113724b0cdd2;p=geeqie.git diff --git a/src/rcfile.c b/src/rcfile.c index f9460daa..3fc9c59c 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -1,13 +1,22 @@ /* - * Geeqie - * (C) 2006 John Ellis - * Copyright (C) 2008 - 2012 The Geeqie Team + * Copyright (C) 2006 John Ellis + * Copyright (C) 2008 - 2016 The Geeqie Team * * Author: John Ellis * - * This software is released under the GNU General Public License (GNU GPL). - * Please read the included file COPYING for more information. - * This software comes with no warranty of any kind, use at your own risk! + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -34,6 +43,7 @@ #include "bar.h" #include "metadata.h" #include "bar_gps.h" +#include "dupe.h" /* @@ -148,6 +158,31 @@ gboolean read_int_option(const gchar *option, const gchar *label, const gchar *v return TRUE; } +void write_ushort_option(GString *str, gint indent, const gchar *label, guint16 n) +{ + g_string_append_printf(str, "%s = \"%uh\" ", label, n); +} + +gboolean read_ushort_option(const gchar *option, const gchar *label, const gchar *value, guint16 *n) +{ + if (g_ascii_strcasecmp(option, label) != 0) return FALSE; + if (!n) return FALSE; + + if (g_ascii_isdigit(value[0])) + { + *n = strtoul(value, NULL, 10); + } + else + { + if (g_ascii_strcasecmp(value, "true") == 0) + *n = 1; + else + *n = 0; + } + + return TRUE; +} + void write_uint_option(GString *str, gint indent, const gchar *label, guint n) { g_string_append_printf(str, "%s = \"%u\" ", label, n); @@ -274,22 +309,29 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_SEPARATOR(); WRITE_NL(); WRITE_BOOL(*options, tree_descend_subdirs); + WRITE_NL(); WRITE_BOOL(*options, view_dir_list_single_click_enter); WRITE_NL(); WRITE_BOOL(*options, lazy_image_sync); WRITE_NL(); WRITE_BOOL(*options, update_on_time_change); WRITE_SEPARATOR(); WRITE_NL(); WRITE_BOOL(*options, progressive_key_scrolling); + WRITE_NL(); WRITE_UINT(*options, keyboard_scroll_step); WRITE_NL(); WRITE_UINT(*options, duplicates_similarity_threshold); + WRITE_NL(); WRITE_UINT(*options, duplicates_match); + WRITE_NL(); WRITE_UINT(*options, duplicates_select_type); + WRITE_NL(); WRITE_BOOL(*options, duplicates_thumbnails); WRITE_NL(); WRITE_BOOL(*options, rot_invariant_sim); WRITE_SEPARATOR(); WRITE_NL(); WRITE_BOOL(*options, mousewheel_scrolls); + WRITE_NL(); WRITE_BOOL(*options, image_lm_click_nav); WRITE_NL(); WRITE_INT(*options, open_recent_list_maxsize); WRITE_NL(); WRITE_INT(*options, dnd_icon_size); WRITE_NL(); WRITE_BOOL(*options, place_dialogs_under_mouse); WRITE_NL(); WRITE_BOOL(*options, save_window_positions); + WRITE_NL(); WRITE_BOOL(*options, use_saved_window_positions_for_new_windows); WRITE_NL(); WRITE_BOOL(*options, tools_restore_state); /* File operations Options */ @@ -316,6 +358,7 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_NL(); WRITE_INT(*options, image.max_window_size); WRITE_NL(); WRITE_BOOL(*options, image.limit_autofit_size); WRITE_NL(); WRITE_INT(*options, image.max_autofit_size); + WRITE_NL(); WRITE_INT(*options, image.max_enlargement_size); WRITE_NL(); WRITE_UINT(*options, image.scroll_reset_method); WRITE_NL(); WRITE_INT(*options, image.tile_cache_max); WRITE_NL(); WRITE_INT(*options, image.image_cache_max); @@ -324,6 +367,8 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_NL(); WRITE_BOOL(*options, image.use_custom_border_color); WRITE_NL(); WRITE_BOOL(*options, image.use_custom_border_color_in_fullscreen); WRITE_NL(); WRITE_COLOR(*options, image.border_color); + WRITE_NL(); WRITE_COLOR(*options, image.alpha_color_1); + WRITE_NL(); WRITE_COLOR(*options, image.alpha_color_2); WRITE_NL(); WRITE_BOOL(*options, image.use_clutter_renderer); /* Thumbnails Options */ @@ -340,6 +385,7 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_NL(); WRITE_INT(*options, file_sort.method); WRITE_NL(); WRITE_BOOL(*options, file_sort.ascending); WRITE_NL(); WRITE_BOOL(*options, file_sort.case_sensitive); + WRITE_NL(); WRITE_BOOL(*options, file_sort.natural); /* Fullscreen Options */ WRITE_NL(); WRITE_INT(*options, fullscreen.screen); @@ -399,6 +445,7 @@ static void write_global_attributes(GString *outstr, gint indent) WRITE_NL(); WRITE_BOOL(*options, metadata.save_legacy_format); WRITE_NL(); WRITE_BOOL(*options, metadata.sync_grouped_files); WRITE_NL(); WRITE_BOOL(*options, metadata.confirm_write); + WRITE_NL(); WRITE_BOOL(*options, metadata.sidecar_extended_name); WRITE_NL(); WRITE_INT(*options, metadata.confirm_timeout); WRITE_NL(); WRITE_BOOL(*options, metadata.confirm_after_timeout); WRITE_NL(); WRITE_BOOL(*options, metadata.confirm_on_image_change); @@ -431,6 +478,7 @@ static void write_color_profile(GString *outstr, gint indent) WRITE_BOOL(options->color_profile, use_image); WRITE_INT(options->color_profile, input_type); WRITE_BOOL(options->color_profile, use_x11_screen_profile); + WRITE_INT(options->color_profile, render_intent); WRITE_STRING(">"); indent++; @@ -549,21 +597,28 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_BOOL(*options, show_icon_names)) continue; if (READ_BOOL(*options, tree_descend_subdirs)) continue; + if (READ_BOOL(*options, view_dir_list_single_click_enter)) continue; if (READ_BOOL(*options, lazy_image_sync)) continue; if (READ_BOOL(*options, update_on_time_change)) continue; if (READ_UINT_CLAMP(*options, duplicates_similarity_threshold, 0, 100)) continue; + if (READ_UINT_CLAMP(*options, duplicates_match, 0, DUPE_MATCH_NAME_CI)) continue; + if (READ_UINT_CLAMP(*options, duplicates_select_type, 0, DUPE_SELECT_GROUP2)) continue; + if (READ_BOOL(*options, duplicates_thumbnails)) continue; if (READ_BOOL(*options, rot_invariant_sim)) continue; if (READ_BOOL(*options, progressive_key_scrolling)) continue; + if (READ_UINT_CLAMP(*options, keyboard_scroll_step, 1, 32)) continue; if (READ_BOOL(*options, mousewheel_scrolls)) continue; + if (READ_BOOL(*options, image_lm_click_nav)) continue; if (READ_INT(*options, open_recent_list_maxsize)) continue; if (READ_INT(*options, dnd_icon_size)) continue; if (READ_BOOL(*options, place_dialogs_under_mouse)) continue; if (READ_BOOL(*options, save_window_positions)) continue; + if (READ_BOOL(*options, use_saved_window_positions_for_new_windows)) continue; if (READ_BOOL(*options, tools_restore_state)) continue; /* Properties dialog options */ @@ -578,6 +633,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_INT(*options, image.max_window_size)) continue; if (READ_BOOL(*options, image.limit_autofit_size)) continue; if (READ_INT(*options, image.max_autofit_size)) continue; + if (READ_INT(*options, image.max_enlargement_size)) continue; if (READ_UINT_CLAMP(*options, image.scroll_reset_method, 0, PR_SCROLL_RESET_COUNT - 1)) continue; if (READ_INT(*options, image.tile_cache_max)) continue; if (READ_INT(*options, image.image_cache_max)) continue; @@ -588,6 +644,8 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_BOOL(*options, image.use_custom_border_color)) continue; if (READ_BOOL(*options, image.use_custom_border_color_in_fullscreen)) continue; if (READ_COLOR(*options, image.border_color)) continue; + if (READ_COLOR(*options, image.alpha_color_1)) continue; + if (READ_COLOR(*options, image.alpha_color_2)) continue; if (READ_BOOL(*options, image.use_clutter_renderer)) continue; /* Thumbnails options */ @@ -605,6 +663,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_UINT(*options, file_sort.method)) continue; if (READ_BOOL(*options, file_sort.ascending)) continue; if (READ_BOOL(*options, file_sort.case_sensitive)) continue; + if (READ_BOOL(*options, file_sort.natural)) continue; /* File operations *options */ if (READ_BOOL(*options, file_ops.enable_in_place_rename)) continue; @@ -624,14 +683,14 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_CHAR(*options, image_overlay.template_string)) continue; if (READ_INT(*options, image_overlay.x)) continue; if (READ_INT(*options, image_overlay.y)) continue; - if (READ_INT(*options, image_overlay.text_red)) continue; - if (READ_INT(*options, image_overlay.text_green)) continue; - if (READ_INT(*options, image_overlay.text_blue)) continue; - if (READ_INT(*options, image_overlay.text_alpha)) continue; - if (READ_INT(*options, image_overlay.background_red)) continue; - if (READ_INT(*options, image_overlay.background_green)) continue; - if (READ_INT(*options, image_overlay.background_blue)) continue; - if (READ_INT(*options, image_overlay.background_alpha)) continue; + if (READ_USHORT(*options, image_overlay.text_red)) continue; + if (READ_USHORT(*options, image_overlay.text_green)) continue; + if (READ_USHORT(*options, image_overlay.text_blue)) continue; + if (READ_USHORT(*options, image_overlay.text_alpha)) continue; + if (READ_USHORT(*options, image_overlay.background_red)) continue; + if (READ_USHORT(*options, image_overlay.background_green)) continue; + if (READ_USHORT(*options, image_overlay.background_blue)) continue; + if (READ_USHORT(*options, image_overlay.background_alpha)) continue; if (READ_CHAR(*options, image_overlay.font)) continue; /* Slideshow options */ @@ -668,6 +727,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar ** if (READ_BOOL(*options, metadata.save_legacy_format)) continue; if (READ_BOOL(*options, metadata.sync_grouped_files)) continue; if (READ_BOOL(*options, metadata.confirm_write)) continue; + if (READ_BOOL(*options, metadata.sidecar_extended_name)) continue; if (READ_BOOL(*options, metadata.confirm_after_timeout)) continue; if (READ_INT(*options, metadata.confirm_timeout)) continue; if (READ_BOOL(*options, metadata.confirm_on_image_change)) continue; @@ -707,6 +767,7 @@ static void options_load_color_profiles(GQParserData *parser_data, GMarkupParseC if (READ_INT(options->color_profile, input_type)) continue; if (READ_CHAR(options->color_profile, screen_file)) continue; if (READ_BOOL(options->color_profile, use_x11_screen_profile)) continue; + if (READ_INT(options->color_profile, render_intent)) continue; log_printf("unknown attribute %s = %s\n", option, value); } @@ -1002,12 +1063,17 @@ static void options_parse_layout(GQParserData *parser_data, GMarkupParseContext options_parse_func_push(parser_data, options_parse_bar, NULL, lw->bar); } +#if 0 +/* FIXME: The sort manager and desktop files are set up in the idle loop. + * Setup is not yet completed when the layout is first displayed. + */ else if (g_ascii_strcasecmp(element_name, "bar_sort") == 0) { GtkWidget *bar = bar_sort_new_from_config(lw, attribute_names, attribute_values); layout_bar_sort_set(lw, bar); options_parse_func_push(parser_data, options_parse_leaf, NULL, NULL); } +#endif else if (g_ascii_strcasecmp(element_name, "toolbar") == 0) { options_parse_func_push(parser_data, options_parse_toolbar_and_statusbar, NULL, NULL);