X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foptions.h;h=668cf5267e8b7310ecf6a6251e265b7f33d600ee;hb=refs%2Fheads%2Fmaster;hp=d9a5bbe23025813e7212f7b065c66026f3ac49d7;hpb=a6a63670a28ce5ef0a45f73218eeda83e031821d;p=geeqie.git diff --git a/src/options.h b/src/options.h index d9a5bbe2..4b338901 100644 --- a/src/options.h +++ b/src/options.h @@ -21,9 +21,33 @@ #ifndef OPTIONS_H #define OPTIONS_H -typedef struct _ConfOptions ConfOptions; +#include +#include +#include -struct _ConfOptions +#include "image.h" +#include "typedefs.h" + +struct SecureSaveInfo; + +#define COLOR_PROFILE_INPUTS 4 + +/** + * @enum DnDAction + * drag and drop default action + */ +enum DnDAction { + DND_ACTION_ASK, + DND_ACTION_COPY, + DND_ACTION_MOVE +}; + +enum ZoomStyle { + ZOOM_GEOMETRIC = 0, + ZOOM_ARITHMETIC = 1 +}; + +struct ConfOptions { /* ui */ gboolean progressive_key_scrolling; @@ -31,20 +55,23 @@ struct _ConfOptions gboolean place_dialogs_under_mouse; gboolean mousewheel_scrolls; gboolean image_lm_click_nav; + gboolean image_l_click_archive; gboolean image_l_click_video; gchar *image_l_click_video_editor; gboolean show_icon_names; gboolean show_star_rating; - gboolean show_guidelines; gboolean draw_rectangle; gboolean show_predefined_keyword_tree; gboolean overunderexposed; gboolean expand_menu_toolbar; + gboolean hamburger_menu; /* various */ gboolean tree_descend_subdirs; gboolean view_dir_list_single_click_enter; + gboolean circular_selection_lists; + gboolean lazy_image_sync; gboolean update_on_time_change; @@ -56,15 +83,18 @@ struct _ConfOptions gboolean sort_totals; gint open_recent_list_maxsize; + gint recent_folder_image_list_maxsize; gint dnd_icon_size; DnDAction dnd_default_action; gint clipboard_selection; + RectangleDrawAspectRatio rectangle_draw_aspect_ratio; gboolean save_window_positions; gboolean use_saved_window_positions_for_new_windows; gboolean save_window_workspace; gboolean tools_restore_state; gboolean save_dialog_window_positions; + gboolean hide_window_decorations; gboolean show_window_ids; gint log_window_lines; @@ -72,14 +102,18 @@ struct _ConfOptions gboolean marks_save; /**< save marks on exit */ gchar *marks_tooltips[FILEDATA_MARKS_SIZE]; + gboolean appimage_notifications; + gboolean with_rename; + gboolean collections_duplicates; gboolean collections_on_top; gboolean hide_window_in_fullscreen; + gboolean hide_osd_in_fullscreen; gchar *help_search_engine; /** - * \struct info_comment + * @struct info_comment * info sidebar component height */ struct { @@ -87,7 +121,7 @@ struct _ConfOptions } info_comment; /** - * \struct info_keywords + * @struct info_keywords * info sidebar component height */ struct { @@ -95,7 +129,7 @@ struct _ConfOptions } info_keywords; /** - * \struct info_title + * @struct info_title * info sidebar component height */ struct { @@ -103,13 +137,21 @@ struct _ConfOptions } info_title; /** - * \struct info_rating + * @struct info_rating * info sidebar component height */ struct { gint height; } info_rating; + /** + * @struct info_headline + * info sidebar component height + */ + struct { + gint height; + } info_headline; + /* file ops */ struct { gboolean enable_in_place_rename; @@ -127,8 +169,7 @@ struct _ConfOptions /* image */ struct { gboolean exif_rotate_enable; - gboolean exif_proof_rotate_enable; - guint scroll_reset_method; + ScrollReset scroll_reset_method; gboolean fit_window_to_image; gboolean limit_window_size; gint max_window_size; @@ -145,13 +186,15 @@ struct _ConfOptions gboolean zoom_to_fit_allow_expand; guint zoom_quality; gint zoom_increment; /**< 100 is 1.0, 5 is 0.05, 200 is 2.0, etc. */ - gboolean use_clutter_renderer; + ZoomStyle zoom_style; gboolean use_custom_border_color_in_fullscreen; gboolean use_custom_border_color; - GdkColor border_color; - GdkColor alpha_color_1; - GdkColor alpha_color_2; + GdkRGBA border_color; + GdkRGBA alpha_color_1; + GdkRGBA alpha_color_2; + + gint tile_size; } image; /* thumbnails */ @@ -164,9 +207,9 @@ struct _ConfOptions gboolean spec_standard; guint quality; gboolean use_exif; + gboolean use_color_management; gboolean use_ft_metadata; gint collection_preview; -// gboolean use_ft_metadata_small; } thumbnails; /* file filtering */ @@ -195,10 +238,7 @@ struct _ConfOptions /* file sorting */ struct { - SortType method; - gboolean ascending; gboolean case_sensitive; /**< file sorting method (case) */ - gboolean natural; } file_sort; /* slideshow */ @@ -277,18 +317,20 @@ struct _ConfOptions gboolean keywords_case_sensitive; gboolean write_orientation; gboolean sidecar_extended_name; + + gboolean check_spelling; } metadata; /* Stereo */ struct { - gint mode;; + gint mode; gint fsmode; gboolean enable_fsmode; gint fixed_w, fixed_h; gint fixed_x1, fixed_y1; gint fixed_x2, fixed_y2; /** - * \struct tmp + * @struct tmp * options in this struct are packed to mode and fsmode entries */ struct { @@ -307,8 +349,15 @@ struct _ConfOptions } tmp; } stereo; + /* External preview extraction */ + struct { + gboolean enable; + gchar *select; /**< path to executable */ + gchar *extract; /**< path to executable */ + } external_preview; + /** - * \struct cp_mv_rn + * @struct cp_mv_rn * copy move rename */ struct { @@ -323,6 +372,7 @@ struct _ConfOptions gboolean paused; gboolean line_wrap; gboolean timer_data; + gchar *action; /** Used with F1 key */ } log_window; /* star rating */ @@ -343,6 +393,24 @@ struct _ConfOptions gchar *template_string; } printer; + /* Threads */ + struct { + gint duplicates; + } threads; + + /* Selectable bars */ + struct { + gboolean menu_bar; + gboolean tool_bar; + gboolean status_bar; + } selectable_bars; + + /* Alternate similarity algorithm */ + struct { + gboolean enabled; + gboolean grayscale; /**< convert fingerprint to greyscale */ + } alternate_similarity_algorithm; + gchar *mouse_button_8; /**< user-definable mouse buttons */ gchar *mouse_button_9; /**< user-definable mouse buttons */ @@ -350,12 +418,34 @@ struct _ConfOptions gboolean read_metadata_in_idle; - gboolean disable_gpu; /**< GPU - see main.c */ - gboolean override_disable_gpu; /**< GPU - see main.c */ + gboolean disable_gpu; /**< GPU - see main.cc */ + gboolean override_disable_gpu; /**< GPU - see main.cc */ GList *disabled_plugins; }; +struct CommandLine +{ + int argc; + gchar **argv; + gboolean startup_blank; + gboolean startup_full_screen; + gboolean startup_in_slideshow; + gboolean startup_command_line_collection; + gboolean tools_hide; + gboolean tools_show; + gboolean log_window_show; + gchar *path; + gchar *file; + GList *cmd_list; + GList *collection_list; + gchar *geometry; + gchar *regexp; + gchar *log_file; + SecureSaveInfo *ssi; + gboolean new_instance; +}; + extern ConfOptions *options; extern CommandLine *command_line; @@ -364,6 +454,152 @@ void setup_default_options(ConfOptions *options); void save_options(ConfOptions *options); gboolean load_options(ConfOptions *options); + +enum StartUpPath { + STARTUP_PATH_CURRENT = 0, + STARTUP_PATH_LAST, + STARTUP_PATH_HOME, +}; + +enum SortActionType { + BAR_SORT_COPY = 0, + BAR_SORT_MOVE, + BAR_SORT_FILTER, + BAR_SORT_ACTION_COUNT +}; + +enum SortModeType { + BAR_SORT_MODE_FOLDER = 0, + BAR_SORT_MODE_COLLECTION, + BAR_SORT_MODE_COUNT +}; + +enum SortSelectionType { + BAR_SORT_SELECTION_IMAGE = 0, + BAR_SORT_SELECTION_SELECTED, + BAR_SORT_SELECTION_COUNT +}; + +struct LayoutOptions +{ + gchar *id; + + gchar *order; + gint style; + + DirViewType dir_view_type; + FileViewType file_view_type; + + struct { + SortType method; + gboolean ascend; + gboolean case_sensitive; + } dir_view_list_sort; + + struct { + SortType method; + gboolean ascend; + gboolean case_sensitive; + } file_view_list_sort; + + gboolean show_thumbnails; + gboolean show_marks; + gboolean show_file_filter; + gboolean show_directory_date; + gboolean show_info_pixel; + gboolean split_pane_sync; + gboolean ignore_alpha; + + struct { + gint w; + gint h; + gint x; + gint y; + gboolean 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 vdivider_pos; + } folder_window; + + struct { + gint w; + gint h; + } properties_window; + + struct { + guint state; + gint histogram_channel; + gint histogram_mode; + } image_overlay; + + GdkRectangle log_window; + + struct { + gint w; + gint h; + gint x; + gint y; + gint page_number; + } preferences_window; + + struct { + gint w; + gint h; + gint x; + gint y; + } search_window; + + struct { + gint w; + gint h; + gint x; + gint y; + } dupe_window; + + struct { + gint w; + gint h; + gint x; + gint y; + } advanced_exif_window; + + gboolean tools_float; + gboolean tools_hidden; + gboolean selectable_toolbars_hidden; + + struct { + gboolean info; + gboolean sort; + gboolean tools_float; + gboolean tools_hidden; + gboolean hidden; + } bars_state; + + gchar *home_path; + gchar *last_path; + + StartUpPath startup_path; + + gboolean animate; + gint workspace; + + SortActionType action; + SortModeType mode; + SortSelectionType selection; + gchar *filter_key; +}; + void copy_layout_options(LayoutOptions *dest, const LayoutOptions *src); void free_layout_options_content(LayoutOptions *dest); LayoutOptions *init_layout_options(LayoutOptions *options);