Mercurial > geeqie.yaz
diff src/options.c @ 740:9b0ac8d58c89
Move setup_default_options() and sync_options_with_current_state() to options.[ch].
Pass ConfOptions * to these instead of directly using global variable.
Cleanup #include in main.c.
author | zas_ |
---|---|
date | Thu, 22 May 2008 23:09:53 +0000 |
parents | 8cc9f349c670 |
children | ae618ebec3e9 |
line wrap: on
line diff
--- a/src/options.c Thu May 22 22:49:07 2008 +0000 +++ b/src/options.c Thu May 22 23:09:53 2008 +0000 @@ -12,8 +12,17 @@ #include "main.h" #include "options.h" +#include "bar_exif.h" +#include "editors.h" +#include "filefilter.h" #include "histogram.h" /* HCHAN_RGB */ #include "image-overlay.h" /* OSD_SHOW_NOTHING */ +#include "info.h" +#include "layout.h" +#include "layout_image.h" +#include "ui_bookmark.h" +#include "ui_fileops.h" +#include "window.h" ConfOptions *init_options(ConfOptions *options) { @@ -145,3 +154,88 @@ return options; } + +void setup_default_options(ConfOptions *options) +{ + gchar *path; + gint i; + + for (i = 0; i < GQ_EDITOR_SLOTS; i++) + { + options->editor[i].name = NULL; + options->editor[i].command = NULL; + } + + editor_reset_defaults(); + + bookmark_add_default(_("Home"), homedir()); + path = g_build_filename(homedir(), "Desktop", NULL); + bookmark_add_default(_("Desktop"), path); + g_free(path); + path = g_build_filename(homedir(), GQ_RC_DIR_COLLECTIONS, NULL); + bookmark_add_default(_("Collections"), path); + g_free(path); + + g_free(options->file_ops.safe_delete_path); + options->file_ops.safe_delete_path = g_build_filename(homedir(), GQ_RC_DIR_TRASH, NULL); + + for (i = 0; i < COLOR_PROFILE_INPUTS; i++) + { + options->color_profile.input_file[i] = NULL; + options->color_profile.input_name[i] = NULL; + } + + set_default_image_overlay_template_string(&options->image_overlay.common.template_string); + sidecar_ext_add_defaults(); + options->layout.order = g_strdup("123"); + options->properties.tabs_order = g_strdup(info_tab_default_order()); + + options->shell.path = g_strdup(GQ_DEFAULT_SHELL_PATH); + options->shell.options = g_strdup(GQ_DEFAULT_SHELL_OPTIONS); + + for (i = 0; ExifUIList[i].key; i++) + ExifUIList[i].current = ExifUIList[i].default_value; +} + +void sync_options_with_current_state(ConfOptions *options) +{ + LayoutWindow *lw = NULL; + + if (layout_valid(&lw)) + { + options->layout.main_window.maximized = window_maximized(lw->window); + if (!options->layout.main_window.maximized) + { + layout_geometry_get(NULL, &options->layout.main_window.x, &options->layout.main_window.y, + &options->layout.main_window.w, &options->layout.main_window.h); + } + + options->image_overlay.common.state = image_osd_get(lw->image); + } + + layout_geometry_get_dividers(NULL, &options->layout.main_window.hdivider_pos, &options->layout.main_window.vdivider_pos); + + layout_views_get(NULL, &options->layout.dir_view_type, &options->layout.file_view_type); + + options->layout.show_thumbnails = layout_thumb_get(NULL); + options->layout.show_marks = layout_marks_get(NULL); + + layout_sort_get(NULL, &options->file_sort.method, &options->file_sort.ascending); + + layout_geometry_get_tools(NULL, &options->layout.float_window.x, &options->layout.float_window.y, + &options->layout.float_window.w, &options->layout.float_window.h, &options->layout.float_window.vdivider_pos); + layout_tools_float_get(NULL, &options->layout.tools_float, &options->layout.tools_hidden); + options->layout.toolbar_hidden = layout_toolbar_hidden(NULL); + + options->color_profile.enabled = layout_image_color_profile_get_use(NULL); + layout_image_color_profile_get(NULL, + &options->color_profile.input_type, + &options->color_profile.screen_type, + &options->color_profile.use_image); + + if (options->startup.restore_path && options->startup.use_last_path) + { + g_free(options->startup.path); + options->startup.path = g_strdup(layout_get_path(NULL)); + } +}