/*
* Geeqie
- * Copyright (C) 2008 The Geeqie Team
+ * Copyright (C) 2008 - 2012 The Geeqie Team
*
* Authors: Vladimir Nadvornik, Laurent Monin
*
struct _ConfOptions
{
-
/* ui */
- gint progressive_key_scrolling;
- gint place_dialogs_under_mouse;
+ gboolean progressive_key_scrolling;
+ gboolean place_dialogs_under_mouse;
gboolean mousewheel_scrolls;
- gint show_icon_names;
- gint show_copy_path;
+ gboolean show_icon_names;
/* various */
- gint enable_metadata_dirs;
-
- gint tree_descend_subdirs;
+ gboolean tree_descend_subdirs;
- gint lazy_image_sync;
- gint update_on_time_change;
+ gboolean lazy_image_sync;
+ gboolean update_on_time_change;
- gint duplicates_similarity_threshold;
+ guint duplicates_similarity_threshold;
gint open_recent_list_maxsize;
gint dnd_icon_size;
- gint save_metadata_in_image_file;
-
- struct {
- gboolean restore_path;
- gboolean use_last_path;
- gchar *path;
- } startup;
+ gboolean save_window_positions;
+ gboolean tools_restore_state;
/* file ops */
struct {
- gint enable_in_place_rename;
+ gboolean enable_in_place_rename;
- gint confirm_delete;
- gint enable_delete_key;
- gint safe_delete_enable;
+ gboolean confirm_delete;
+ gboolean enable_delete_key;
+ gboolean safe_delete_enable;
gchar *safe_delete_path;
gint safe_delete_folder_maxsize;
} file_ops;
/* image */
struct {
gboolean exif_rotate_enable;
+ gboolean exif_proof_rotate_enable;
guint scroll_reset_method;
gboolean fit_window_to_image;
gboolean limit_window_size;
gint tile_cache_max; /* in megabytes */
gint image_cache_max; /* in megabytes */
- gint dither_quality;
gboolean enable_read_ahead;
- gint zoom_mode;
+ ZoomMode zoom_mode;
gboolean zoom_2pass;
gboolean zoom_to_fit_allow_expand;
- gint zoom_quality;
+ guint zoom_quality;
gint zoom_increment; /* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
+ gboolean use_clutter_renderer;
- gint use_custom_border_color;
+ gboolean use_custom_border_color_in_fullscreen;
+ gboolean use_custom_border_color;
GdkColor border_color;
-
- gint read_buffer_size; /* bytes to read from file per read() */
- gint idle_read_loop_count; /* the number of bytes to read per idle call (define x image.read_buffer_size) */
} image;
/* thumbnails */
struct {
gint max_width;
gint max_height;
- gint enable_caching;
- gint cache_into_dirs;
- gint fast;
- gint use_xvpics;
- gint spec_standard;
- gint quality;
+ gboolean enable_caching;
+ gboolean cache_into_dirs;
+ gboolean use_xvpics;
+ gboolean spec_standard;
+ guint quality;
+ gboolean use_exif;
} thumbnails;
/* file filtering */
struct {
- gint show_hidden_files;
- gint show_dot_directory;
- gint disable;
+ gboolean show_hidden_files;
+ gboolean show_dot_directory;
+ gboolean disable;
} file_filter;
+ struct {
+ gchar *ext;
+ } sidecar;
+
/* collections */
struct {
- gint rectangular_selection;
+ gboolean rectangular_selection;
} collections;
- /* editors */
- Editor editor[GQ_EDITOR_SLOTS];
-
/* shell */
struct {
gchar *path;
/* file sorting */
struct {
SortType method;
- gint ascending;
- gint case_sensitive; /* file sorting method (case) */
+ gboolean ascending;
+ gboolean case_sensitive; /* file sorting method (case) */
} file_sort;
/* slideshow */
struct {
gint delay; /* in tenths of a second */
- gint random;
- gint repeat;
+ gboolean random;
+ gboolean repeat;
} slideshow;
/* fullscreen */
struct {
gint screen;
- gint clean_flip;
- gint disable_saver;
- gint above;
+ gboolean clean_flip;
+ gboolean disable_saver;
+ gboolean above;
} fullscreen;
- /* histogram */
- struct {
- guint last_channel_mode;
- guint last_log_mode;
- } histogram;
-
/* image overlay */
struct {
- struct {
- guint state;
- gint show_at_startup;
- gchar *template_string;
- gint x;
- gint y;
- } common;
+ gchar *template_string;
+ gint x;
+ gint y;
} image_overlay;
- /* layout */
- struct {
- gchar *order;
- gint style;
-
- DirViewType dir_view_type;
- FileViewType file_view_type;
-
- gint show_thumbnails;
- gint show_marks;
- gboolean show_directory_date;
-
- struct {
- gint w;
- gint h;
- gint x;
- gint y;
- gint maximized;
- gint hdivider_pos;
- gint vdivider_pos;
- } main_window;
-
- struct {
- gint w;
- gint h;
- gint x;
- gint y;
- gint vdivider_pos;
- } float_window;
-
- struct {
- gint w;
- gint h;
- } properties_window;
-
- gint save_window_positions;
-
- gint tools_float;
- gint tools_hidden;
- gint tools_restore_state;
-
- gint toolbar_hidden;
-
- } layout;
-
- /* panels */
- struct {
- struct {
- gint enabled;
- gint width;
- } info;
-
- struct {
- gint enabled;
- gint width;
- } exif;
-
- struct {
- gint enabled;
- gint mode_state;
- gint action_state;
- gint selection_state;
- } sort;
- } panels;
-
/* properties dialog */
struct {
gchar *tabs_order;
/* color profiles */
struct {
- gint enabled;
+ gboolean enabled;
gint input_type;
gchar *input_file[COLOR_PROFILE_INPUTS];
gchar *input_name[COLOR_PROFILE_INPUTS];
- gint screen_type;
gchar *screen_file;
- gint use_image;
+ gboolean use_image;
+ gboolean use_x11_screen_profile;
} color_profile;
+ /* Helpers programs */
+ struct {
+ struct {
+ gchar *command_name;
+ gchar *command_line;
+ } html_browser;
+ } helpers;
+
+ /* Metadata */
+ struct {
+ gboolean enable_metadata_dirs;
+
+ gboolean save_in_image_file;
+ gboolean save_legacy_IPTC;
+ gboolean warn_on_write_problems;
+
+ gboolean save_legacy_format;
+
+ gboolean sync_grouped_files;
+
+ gboolean confirm_write;
+ gint confirm_timeout;
+ gboolean confirm_after_timeout;
+ gboolean confirm_on_image_change;
+ gboolean confirm_on_dir_change;
+ gboolean keywords_case_sensitive;
+ gboolean write_orientation;
+ } metadata;
+
+ /* Stereo */
+ struct {
+ gint mode;;
+ gint fsmode;
+ gboolean enable_fsmode;
+ gint fixed_w, fixed_h;
+ gint fixed_x1, fixed_y1;
+ gint fixed_x2, fixed_y2;
+ struct { /* options in this struct are packed to mode and fsmode entries */
+ gboolean mirror_right;
+ gboolean mirror_left;
+ gboolean flip_right;
+ gboolean flip_left;
+ gboolean swap;
+ gboolean temp_disable;
+ gboolean fs_mirror_right;
+ gboolean fs_mirror_left;
+ gboolean fs_flip_right;
+ gboolean fs_flip_left;
+ gboolean fs_swap;
+ gboolean fs_temp_disable;
+ } tmp;
+ } stereo;
};
ConfOptions *options;
+CommandLine *command_line;
ConfOptions *init_options(ConfOptions *options);
void setup_default_options(ConfOptions *options);
-void sync_options_with_current_state(ConfOptions *options);
+void save_options(ConfOptions *options);
+gboolean load_options(ConfOptions *options);
+
+void copy_layout_options(LayoutOptions *dest, const LayoutOptions *src);
+void free_layout_options_content(LayoutOptions *dest);
+LayoutOptions *init_layout_options(LayoutOptions *options);
#endif /* OPTIONS_H */
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */