changeset 508:011a6be611c8

Move options stuff to options.{c,h} and remove globals.c
author zas_
date Thu, 24 Apr 2008 09:09:48 +0000
parents 135570a8bd96
children b78a91d0779e
files src/Makefile.am src/globals.c src/main.h src/options.c src/options.h src/typedefs.h
diffstat 6 files changed, 357 insertions(+), 348 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile.am	Thu Apr 24 08:53:39 2008 +0000
+++ b/src/Makefile.am	Thu Apr 24 09:09:48 2008 +0000
@@ -118,7 +118,6 @@
 	format_raw.h	\
 	fullscreen.c	\
 	fullscreen.h	\
-	globals.c	\
 	histogram.c	\
 	histogram.h	\
 	image.c		\
@@ -145,6 +144,8 @@
 	md5-util.h	\
 	menu.c		\
 	menu.h		\
+	options.c	\
+	options.h	\
 	pan-calendar.c	\
 	pan-folder.c	\
 	pan-grid.c	\
--- a/src/globals.c	Thu Apr 24 08:53:39 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Geeqie
- * (C) 2004 John Ellis
- * Copyright (C) 2008 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!
- */
-
-
-#include "main.h"
-
-
-ConfOptions *init_options(ConfOptions *options)
-{
-	if (!options) options = g_new0(ConfOptions, 1);
-
-	options->collections.rectangular_selection = FALSE;
-
-	options->color_profile.enabled = FALSE;
-	options->color_profile.input_type = 0;
-	options->color_profile.screen_file = NULL;
-	options->color_profile.screen_type = 0;
-	options->color_profile.use_image = TRUE;
-
-	options->dnd_icon_size = 48;
-	options->duplicates_similarity_threshold = 99;
-	options->enable_metadata_dirs = FALSE;
-
-	options->file_filter.disable = FALSE;
-	options->file_filter.show_dot_directory = FALSE;
-	options->file_filter.show_hidden_files = FALSE;
-
-	options->file_ops.confirm_delete = TRUE;
-	options->file_ops.enable_delete_key = TRUE;
-	options->file_ops.enable_in_place_rename = TRUE;
-	options->file_ops.safe_delete_enable = FALSE;
-	options->file_ops.safe_delete_folder_maxsize = 128;
-	options->file_ops.safe_delete_path = NULL;
-
-	options->file_sort.ascending = TRUE;
-	options->file_sort.case_sensitive = FALSE;
-	options->file_sort.method = SORT_NAME;
-
-	options->fullscreen.above = FALSE;
-	options->fullscreen.clean_flip = FALSE;
-	options->fullscreen.disable_saver = TRUE;
-	options->fullscreen.screen = -1;
-
-	memset(&options->image.border_color, 0, sizeof(options->image.border_color));
-	options->image.dither_quality = (gint)GDK_RGB_DITHER_NORMAL;
-	options->image.enable_read_ahead = TRUE;
-	options->image.exif_rotate_enable = TRUE;
-	options->image.fit_window_to_image = FALSE;
-	options->image.idle_read_loop_count = IMAGE_LOADER_IDLE_READ_LOOP_COUNT_DEFAULT;
-	options->image.limit_autofit_size = FALSE;
-	options->image.limit_window_size = FALSE;
-	options->image.max_autofit_size = 100;
-	options->image.max_window_size = 100;
-	options->image.read_buffer_size = IMAGE_LOADER_READ_BUFFER_SIZE_DEFAULT;
-	options->image.scroll_reset_method = SCROLL_RESET_TOPLEFT;
-	options->image.tile_cache_max = 10;
-	options->image.use_custom_border_color = FALSE;
-	options->image.zoom_2pass = TRUE;
-	options->image.zoom_increment = 5;
-	options->image.zoom_mode = ZOOM_RESET_ORIGINAL;
-	options->image.zoom_quality = (gint)GDK_INTERP_BILINEAR;
-	options->image.zoom_to_fit_allow_expand = TRUE;
-
-	options->image_overlay.common.enabled = FALSE;
-	options->image_overlay.common.show_at_startup = FALSE;
-	options->image_overlay.common.template_string = NULL;
-
-	options->layout.dir_view_type = DIRVIEW_LIST;
-	options->layout.float_window.h = 450;
-	options->layout.float_window.vdivider_pos = -1;
-	options->layout.float_window.w = 260;
-	options->layout.float_window.x = 0;
-	options->layout.float_window.y = 0;
-	options->layout.main_window.h = 400;
-	options->layout.main_window.hdivider_pos = -1;
-	options->layout.main_window.maximized = FALSE;
-	options->layout.main_window.vdivider_pos = 200;
-	options->layout.main_window.w = 500;
-	options->layout.main_window.x = 0;
-	options->layout.main_window.y = 0;
-	options->layout.order = NULL;
-	options->layout.save_window_positions = FALSE;
-	options->layout.show_marks = FALSE;
-	options->layout.show_thumbnails = FALSE;
-	options->layout.style = 0;
-	options->layout.toolbar_hidden = FALSE;
-	options->layout.tools_float = FALSE;
-	options->layout.tools_hidden = FALSE;
-	options->layout.tools_restore_state = FALSE;
-	options->layout.view_as_icons = FALSE;
-
-	options->lazy_image_sync = FALSE;
-	options->mousewheel_scrolls = FALSE;
-	options->open_recent_list_maxsize = 10;
-	options->place_dialogs_under_mouse = FALSE;
-
-	options->panels.exif.enabled = FALSE;
-	options->panels.exif.width = PANEL_DEFAULT_WIDTH;
-	options->panels.info.enabled = FALSE;
-	options->panels.info.width = PANEL_DEFAULT_WIDTH;
-	options->panels.sort.action_state = 0;
-	options->panels.sort.enabled = FALSE;
-	options->panels.sort.mode_state = 0;
-	options->panels.sort.selection_state = 0;
-
-	options->progressive_key_scrolling = FALSE;
-	options->show_copy_path = FALSE;
-	options->show_icon_names = TRUE;
-
-	options->slideshow.delay = 150;
-	options->slideshow.random = FALSE;
-	options->slideshow.repeat = FALSE;
-
-	options->startup_path_enable = FALSE;
-	options->startup_path = NULL;
-
-	options->thumbnails.cache_into_dirs = FALSE;
-	options->thumbnails.enable_caching = TRUE;
-	options->thumbnails.fast = TRUE;
-	options->thumbnails.max_height = DEFAULT_THUMB_HEIGHT;
-	options->thumbnails.max_width = DEFAULT_THUMB_WIDTH;
-	options->thumbnails.quality = (gint)GDK_INTERP_TILES;
-	options->thumbnails.spec_standard = TRUE;
-	options->thumbnails.use_xvpics = TRUE;
-
-	options->tree_descend_subdirs = FALSE;
-	options->update_on_time_change = TRUE;
-
-	return options;
-}
--- a/src/main.h	Thu Apr 24 08:53:39 2008 +0000
+++ b/src/main.h	Thu Apr 24 09:09:48 2008 +0000
@@ -112,18 +112,7 @@
 
 
 #include "typedefs.h"
-
-/*
- *----------------------------------------------------------------------------
- * globals
- *----------------------------------------------------------------------------
- */
-ConfOptions *init_options(ConfOptions *options); /* TODO: move to globals.h */
-
-ConfOptions *options;
-
-
-
+#include "options.h"
 
 /*
  *----------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/options.c	Thu Apr 24 09:09:48 2008 +0000
@@ -0,0 +1,137 @@
+/*
+ * Geeqie
+ * Copyright (C) 2008 The Geeqie Team
+ *
+ * Authors: Vladimir Nadvornik, Laurent Monin
+ *
+ * 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!
+ */
+
+#include "main.h"
+#include "options.h"
+
+ConfOptions *init_options(ConfOptions *options)
+{
+	if (!options) options = g_new0(ConfOptions, 1);
+
+	options->collections.rectangular_selection = FALSE;
+
+	options->color_profile.enabled = FALSE;
+	options->color_profile.input_type = 0;
+	options->color_profile.screen_file = NULL;
+	options->color_profile.screen_type = 0;
+	options->color_profile.use_image = TRUE;
+
+	options->dnd_icon_size = 48;
+	options->duplicates_similarity_threshold = 99;
+	options->enable_metadata_dirs = FALSE;
+
+	options->file_filter.disable = FALSE;
+	options->file_filter.show_dot_directory = FALSE;
+	options->file_filter.show_hidden_files = FALSE;
+
+	options->file_ops.confirm_delete = TRUE;
+	options->file_ops.enable_delete_key = TRUE;
+	options->file_ops.enable_in_place_rename = TRUE;
+	options->file_ops.safe_delete_enable = FALSE;
+	options->file_ops.safe_delete_folder_maxsize = 128;
+	options->file_ops.safe_delete_path = NULL;
+
+	options->file_sort.ascending = TRUE;
+	options->file_sort.case_sensitive = FALSE;
+	options->file_sort.method = SORT_NAME;
+
+	options->fullscreen.above = FALSE;
+	options->fullscreen.clean_flip = FALSE;
+	options->fullscreen.disable_saver = TRUE;
+	options->fullscreen.screen = -1;
+
+	memset(&options->image.border_color, 0, sizeof(options->image.border_color));
+	options->image.dither_quality = (gint)GDK_RGB_DITHER_NORMAL;
+	options->image.enable_read_ahead = TRUE;
+	options->image.exif_rotate_enable = TRUE;
+	options->image.fit_window_to_image = FALSE;
+	options->image.idle_read_loop_count = IMAGE_LOADER_IDLE_READ_LOOP_COUNT_DEFAULT;
+	options->image.limit_autofit_size = FALSE;
+	options->image.limit_window_size = FALSE;
+	options->image.max_autofit_size = 100;
+	options->image.max_window_size = 100;
+	options->image.read_buffer_size = IMAGE_LOADER_READ_BUFFER_SIZE_DEFAULT;
+	options->image.scroll_reset_method = SCROLL_RESET_TOPLEFT;
+	options->image.tile_cache_max = 10;
+	options->image.use_custom_border_color = FALSE;
+	options->image.zoom_2pass = TRUE;
+	options->image.zoom_increment = 5;
+	options->image.zoom_mode = ZOOM_RESET_ORIGINAL;
+	options->image.zoom_quality = (gint)GDK_INTERP_BILINEAR;
+	options->image.zoom_to_fit_allow_expand = TRUE;
+
+	options->image_overlay.common.enabled = FALSE;
+	options->image_overlay.common.show_at_startup = FALSE;
+	options->image_overlay.common.template_string = NULL;
+
+	options->layout.dir_view_type = DIRVIEW_LIST;
+	options->layout.float_window.h = 450;
+	options->layout.float_window.vdivider_pos = -1;
+	options->layout.float_window.w = 260;
+	options->layout.float_window.x = 0;
+	options->layout.float_window.y = 0;
+	options->layout.main_window.h = 400;
+	options->layout.main_window.hdivider_pos = -1;
+	options->layout.main_window.maximized = FALSE;
+	options->layout.main_window.vdivider_pos = 200;
+	options->layout.main_window.w = 500;
+	options->layout.main_window.x = 0;
+	options->layout.main_window.y = 0;
+	options->layout.order = NULL;
+	options->layout.save_window_positions = FALSE;
+	options->layout.show_marks = FALSE;
+	options->layout.show_thumbnails = FALSE;
+	options->layout.style = 0;
+	options->layout.toolbar_hidden = FALSE;
+	options->layout.tools_float = FALSE;
+	options->layout.tools_hidden = FALSE;
+	options->layout.tools_restore_state = FALSE;
+	options->layout.view_as_icons = FALSE;
+
+	options->lazy_image_sync = FALSE;
+	options->mousewheel_scrolls = FALSE;
+	options->open_recent_list_maxsize = 10;
+	options->place_dialogs_under_mouse = FALSE;
+
+	options->panels.exif.enabled = FALSE;
+	options->panels.exif.width = PANEL_DEFAULT_WIDTH;
+	options->panels.info.enabled = FALSE;
+	options->panels.info.width = PANEL_DEFAULT_WIDTH;
+	options->panels.sort.action_state = 0;
+	options->panels.sort.enabled = FALSE;
+	options->panels.sort.mode_state = 0;
+	options->panels.sort.selection_state = 0;
+
+	options->progressive_key_scrolling = FALSE;
+	options->show_copy_path = FALSE;
+	options->show_icon_names = TRUE;
+
+	options->slideshow.delay = 150;
+	options->slideshow.random = FALSE;
+	options->slideshow.repeat = FALSE;
+
+	options->startup_path_enable = FALSE;
+	options->startup_path = NULL;
+
+	options->thumbnails.cache_into_dirs = FALSE;
+	options->thumbnails.enable_caching = TRUE;
+	options->thumbnails.fast = TRUE;
+	options->thumbnails.max_height = DEFAULT_THUMB_HEIGHT;
+	options->thumbnails.max_width = DEFAULT_THUMB_WIDTH;
+	options->thumbnails.quality = (gint)GDK_INTERP_TILES;
+	options->thumbnails.spec_standard = TRUE;
+	options->thumbnails.use_xvpics = TRUE;
+
+	options->tree_descend_subdirs = FALSE;
+	options->update_on_time_change = TRUE;
+
+	return options;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/options.h	Thu Apr 24 09:09:48 2008 +0000
@@ -0,0 +1,217 @@
+/*
+ * Geeqie
+ * Copyright (C) 2008 The Geeqie Team
+ *
+ * Authors: Vladimir Nadvornik, Laurent Monin
+ *
+ * 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!
+ */
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+typedef struct _ConfOptions ConfOptions;
+
+struct _ConfOptions
+{
+
+	/* ui */
+	gint progressive_key_scrolling;
+	gint place_dialogs_under_mouse;
+	gint mousewheel_scrolls;
+	gint show_icon_names;
+	gint show_copy_path;
+
+	/* various */
+	gint startup_path_enable;
+	gchar *startup_path;
+	gint enable_metadata_dirs;
+
+	gint tree_descend_subdirs;
+
+	gint lazy_image_sync;
+	gint update_on_time_change;
+
+	gint duplicates_similarity_threshold;
+
+	gint open_recent_list_maxsize;
+	gint dnd_icon_size;
+
+	/* file ops */
+	struct {
+		gint enable_in_place_rename;
+
+		gint confirm_delete;
+		gint enable_delete_key;
+		gint safe_delete_enable;
+		gchar *safe_delete_path;
+		gint safe_delete_folder_maxsize;
+	} file_ops;
+
+	/* image */
+	struct {
+		gint exif_rotate_enable;
+		gint scroll_reset_method;
+		gint fit_window_to_image;
+		gint limit_window_size;
+		gint max_window_size;
+		gint limit_autofit_size;
+		gint max_autofit_size;
+
+		gint tile_cache_max;	/* in megabytes */
+		gint dither_quality;
+		gint enable_read_ahead;
+
+		gint zoom_mode;
+		gint zoom_2pass;
+		gint zoom_to_fit_allow_expand;
+		gint zoom_quality;
+		gint zoom_increment;	/* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
+
+		gint 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;
+	} thumbnails;
+
+	/* file filtering */
+	struct {
+		gint show_hidden_files;
+		gint show_dot_directory;
+		gint disable;
+	} file_filter;
+
+	/* collections */
+	struct {
+		gint rectangular_selection;
+	} collections;
+
+	/* editors */
+	gchar *editor_name[GQ_EDITOR_SLOTS];
+	gchar *editor_command[GQ_EDITOR_SLOTS];
+
+	/* file sorting */
+	struct {
+		SortType method;
+		gint ascending;
+		gint case_sensitive; /* file sorting method (case) */
+	} file_sort;
+
+	/* slideshow */
+	struct {
+		gint delay;	/* in tenths of a second */
+		gint random;
+		gint repeat;
+	} slideshow;
+
+	/* fullscreen */
+	struct {
+		gint screen;
+		gint clean_flip;
+		gint disable_saver;
+		gint above;
+	} fullscreen;
+
+	/* image overlay */
+	struct {
+		struct {
+			gint enabled;
+			gint show_at_startup;
+			gchar *template_string;
+		} common;
+	} image_overlay;
+
+	/* layout */
+	struct {
+		gchar *order;
+		gint style;
+
+		gint view_as_icons;
+		DirViewType dir_view_type;
+
+		gint show_thumbnails;
+		gint show_marks;
+
+		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;
+
+		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;
+
+
+	/* color profiles */
+	struct {
+		gint 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;
+
+	} color_profile;
+
+};
+
+ConfOptions *options;
+
+ConfOptions *init_options(ConfOptions *options);
+
+#endif /* OPTIONS_H */
--- a/src/typedefs.h	Thu Apr 24 08:53:39 2008 +0000
+++ b/src/typedefs.h	Thu Apr 24 09:09:48 2008 +0000
@@ -156,7 +156,6 @@
 
 typedef struct _SecureSaveInfo SecureSaveInfo;
 
-typedef struct _ConfOptions ConfOptions;
 
 struct _ImageLoader
 {
@@ -741,200 +740,5 @@
 	gint unlink_on_error; /**< whether to remove temporary file on save failure, TRUE by default */
 };
 
-struct _ConfOptions
-{
-
-	/* ui */
-	gint progressive_key_scrolling;
-	gint place_dialogs_under_mouse;
-	gint mousewheel_scrolls;
-	gint show_icon_names;
-	gint show_copy_path;
-
-	/* various */
-	gint startup_path_enable;
-	gchar *startup_path;
-	gint enable_metadata_dirs;
-
-	gint tree_descend_subdirs;
-
-	gint lazy_image_sync;
-	gint update_on_time_change;
-
-	gint duplicates_similarity_threshold;
-
-	gint open_recent_list_maxsize;
-	gint dnd_icon_size;
-
-	/* file ops */
-	struct {
-		gint enable_in_place_rename;
-
-		gint confirm_delete;
-		gint enable_delete_key;
-		gint safe_delete_enable;
-		gchar *safe_delete_path;
-		gint safe_delete_folder_maxsize;
-	} file_ops;
-
-	/* image */
-	struct {
-		gint exif_rotate_enable;
-		gint scroll_reset_method;
-		gint fit_window_to_image;
-		gint limit_window_size;
-		gint max_window_size;
-		gint limit_autofit_size;
-		gint max_autofit_size;
-
-		gint tile_cache_max;	/* in megabytes */
-		gint dither_quality;
-		gint enable_read_ahead;
-
-		gint zoom_mode;
-		gint zoom_2pass;
-		gint zoom_to_fit_allow_expand;
-		gint zoom_quality;
-		gint zoom_increment;	/* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
-
-		gint 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;
-	} thumbnails;
-
-	/* file filtering */
-	struct {
-		gint show_hidden_files;
-		gint show_dot_directory;
-		gint disable;
-	} file_filter;
-
-	/* collections */
-	struct {
-		gint rectangular_selection;
-	} collections;
-
-	/* editors */
-	gchar *editor_name[GQ_EDITOR_SLOTS];
-	gchar *editor_command[GQ_EDITOR_SLOTS];
-
-	/* file sorting */
-	struct {
-		SortType method;
-		gint ascending;
-		gint case_sensitive; /* file sorting method (case) */
-	} file_sort;
-
-	/* slideshow */
-	struct {
-		gint delay;	/* in tenths of a second */
-		gint random;
-		gint repeat;
-	} slideshow;
-
-	/* fullscreen */
-	struct {
-		gint screen;
-		gint clean_flip;
-		gint disable_saver;
-		gint above;
-	} fullscreen;
-
-	/* image overlay */
-	struct {
-		struct {
-			gint enabled;
-			gint show_at_startup;
-			gchar *template_string;
-		} common;
-	} image_overlay;
-
-	/* layout */
-	struct {
-		gchar *order;
-		gint style;
-
-		gint view_as_icons;
-		DirViewType dir_view_type;
-
-		gint show_thumbnails;
-		gint show_marks;
-
-		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;
-
-		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;
-
-
-	/* color profiles */
-	struct {
-		gint 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;
-
-	} color_profile;
-
-};
 
 #endif