Rename image-related options.
authorLaurent Monin <geeqie@norz.org>
Sat, 12 Apr 2008 15:04:58 +0000 (15:04 +0000)
committerLaurent Monin <geeqie@norz.org>
Sat, 12 Apr 2008 15:04:58 +0000 (15:04 +0000)
12 files changed:
src/globals.c
src/image.c
src/img-view.c
src/layout_image.c
src/main.c
src/pan-view.c
src/preferences.c
src/rcfile.c
src/slideshow.c
src/typedefs.h
src/view_file_icon.c
src/view_file_list.c

index e9b4b62..3ba2fcc 100644 (file)
@@ -50,15 +50,15 @@ ConfOptions *init_options(ConfOptions *options)
        options->safe_delete_path = NULL;
        options->safe_delete_size = 128;
        options->restore_tool = FALSE;
-       options->zoom_mode = ZOOM_RESET_ORIGINAL;
-       options->two_pass_zoom = TRUE;
-       options->scroll_reset_method = SCROLL_RESET_TOPLEFT;
-       options->fit_window = FALSE;
-       options->limit_window_size = FALSE;
-       options->zoom_to_fit_expands = TRUE;
-       options->max_window_size = 100;
-       options->limit_autofit_size = FALSE;
-       options->max_autofit_size = 100;
+       options->image.zoom_mode = ZOOM_RESET_ORIGINAL;
+       options->image.zoom_2pass = TRUE;
+       options->image.scroll_reset_method = SCROLL_RESET_TOPLEFT;
+       options->image.fit_window_to_image = FALSE;
+       options->image.limit_window_size = FALSE;
+       options->image.zoom_to_fit_allow_expand = TRUE;
+       options->image.max_window_size = 100;
+       options->image.limit_autofit_size = FALSE;
+       options->image.max_autofit_size = 100;
        options->thumbnails.max_width = DEFAULT_THUMB_WIDTH;
        options->thumbnails.max_height = DEFAULT_THUMB_HEIGHT;
        options->thumbnails.enable_caching = TRUE;
@@ -86,14 +86,14 @@ ConfOptions *init_options(ConfOptions *options)
        
        options->collections.rectangular_selection = FALSE;
        
-       options->tile_cache_max = 10;
+       options->image.tile_cache_max = 10;
        options->thumbnails.quality = (gint)GDK_INTERP_TILES;
-       options->zoom_quality = (gint)GDK_INTERP_BILINEAR;
-       options->dither_quality = (gint)GDK_RGB_DITHER_NORMAL;
+       options->image.zoom_quality = (gint)GDK_INTERP_BILINEAR;
+       options->image.dither_quality = (gint)GDK_RGB_DITHER_NORMAL;
        
-       options->zoom_increment = 5;
+       options->image.zoom_increment = 5;
        
-       options->enable_read_ahead = TRUE;
+       options->image.enable_read_ahead = TRUE;
        
        options->place_dialogs_under_mouse = FALSE;
        
@@ -124,7 +124,7 @@ ConfOptions *init_options(ConfOptions *options)
 
        options->lazy_image_sync = FALSE;
        options->update_on_time_change = TRUE;
-       options->exif_rotate_enable = TRUE;
+       options->image.exif_rotate_enable = TRUE;
 
        /* color profiles */
        options->color_profile.enabled = FALSE;
index adac6af..ab65bab 100644 (file)
@@ -427,13 +427,13 @@ static void image_post_process(ImageWindow *imd, gint clamp)
 
        if (!image_get_pixbuf(imd)) return;
 
-       if (options->exif_rotate_enable ||
+       if (options->image.exif_rotate_enable ||
            (imd->color_profile_enable && imd->color_profile_use_image) )
                {
                exif = exif_read_fd(imd->image_fd, (imd->color_profile_enable && imd->color_profile_use_image));
                }
 
-       if (options->exif_rotate_enable && exif)
+       if (options->image.exif_rotate_enable && exif)
                {
                gint orientation;
 
@@ -938,7 +938,7 @@ static void image_change_real(ImageWindow *imd, FileData *fd,
 
        pixbuf = image_get_pixbuf(imd);
 
-       if (options->enable_read_ahead && imd->image_fd && pixbuf)
+       if (options->image.enable_read_ahead && imd->image_fd && pixbuf)
                {
                if (imd->il)
                        {
@@ -1090,7 +1090,7 @@ void image_attach_window(ImageWindow *imd, GtkWidget *window,
        imd->title_right = g_strdup(title_right);
        imd->title_show_zoom = show_zoom;
 
-       if (!options->fit_window) window = NULL;
+       if (!options->image.fit_window_to_image) window = NULL;
 
        pixbuf_renderer_set_parent((PixbufRenderer *)imd->pr, (GtkWindow *)window);
 
@@ -1663,7 +1663,7 @@ void image_to_root_window(ImageWindow *imd, gint scaled)
                pixbuf_renderer_get_scaled_size((PixbufRenderer *)imd->pr, &width, &height);
                }
 
-       pb = gdk_pixbuf_scale_simple(pixbuf, width, height, (GdkInterpType)options->zoom_quality);
+       pb = gdk_pixbuf_scale_simple(pixbuf, width, height, (GdkInterpType)options->image.zoom_quality);
 
        gdk_pixbuf_render_pixmap_and_mask (pb, &pixmap, NULL, 128);
        gdk_window_set_back_pixmap(rootwindow, pixmap, FALSE);
@@ -1715,17 +1715,17 @@ void image_set_selectable(ImageWindow *imd, gboolean selectable)
 
 static void image_options_set(ImageWindow *imd)
 {
-       g_object_set(G_OBJECT(imd->pr), "zoom_quality", options->zoom_quality,
-                                       "zoom_2pass", options->two_pass_zoom,
-                                       "zoom_expand", options->zoom_to_fit_expands,
-                                       "dither_quality", options->dither_quality,
-                                       "scroll_reset", options->scroll_reset_method,
-                                       "cache_display", options->tile_cache_max,
-                                       "window_fit", (imd->top_window_sync && options->fit_window),
-                                       "window_limit", options->limit_window_size,
-                                       "window_limit_value", options->max_window_size,
-                                       "autofit_limit", options->limit_autofit_size,
-                                       "autofit_limit_value", options->max_autofit_size,
+       g_object_set(G_OBJECT(imd->pr), "zoom_quality", options->image.zoom_quality,
+                                       "zoom_2pass", options->image.zoom_2pass,
+                                       "zoom_expand", options->image.zoom_to_fit_allow_expand,
+                                       "dither_quality", options->image.dither_quality,
+                                       "scroll_reset", options->image.scroll_reset_method,
+                                       "cache_display", options->image.tile_cache_max,
+                                       "window_fit", (imd->top_window_sync && options->image.fit_window_to_image),
+                                       "window_limit", options->image.limit_window_size,
+                                       "window_limit_value", options->image.max_window_size,
+                                       "autofit_limit", options->image.limit_autofit_size,
+                                       "autofit_limit_value", options->image.max_autofit_size,
 
                                        NULL);
 
index 67b57c6..7873480 100644 (file)
@@ -112,7 +112,7 @@ static void view_collection_step(ViewWindow *vw, gint next)
        if (next)
                {
                info = collection_next_by_info(cd, info);
-               if (options->enable_read_ahead)
+               if (options->image.enable_read_ahead)
                        {
                        read_ahead_info = collection_next_by_info(cd, info);
                        if (!read_ahead_info) read_ahead_info = collection_prev_by_info(cd, info);
@@ -121,7 +121,7 @@ static void view_collection_step(ViewWindow *vw, gint next)
        else
                {
                info = collection_prev_by_info(cd, info);
-               if (options->enable_read_ahead)
+               if (options->image.enable_read_ahead)
                        {
                        read_ahead_info = collection_prev_by_info(cd, info);
                        if (!read_ahead_info) read_ahead_info = collection_next_by_info(cd, info);
@@ -130,7 +130,7 @@ static void view_collection_step(ViewWindow *vw, gint next)
 
        if (info)
                {
-               image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, options->zoom_mode));
+               image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, options->image.zoom_mode));
 
                if (read_ahead_info) image_prebuffer_set(imd, read_ahead_info->fd);
                }
@@ -151,17 +151,17 @@ static void view_collection_step_to_end(ViewWindow *vw, gint last)
        if (last)
                {
                info = collection_get_last(cd);
-               if (options->enable_read_ahead) read_ahead_info = collection_prev_by_info(cd, info);
+               if (options->image.enable_read_ahead) read_ahead_info = collection_prev_by_info(cd, info);
                }
        else
                {
                info = collection_get_first(cd);
-               if (options->enable_read_ahead) read_ahead_info = collection_next_by_info(cd, info);
+               if (options->image.enable_read_ahead) read_ahead_info = collection_next_by_info(cd, info);
                }
 
        if (info)
                {
-               image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, options->zoom_mode));
+               image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, options->image.zoom_mode));
                if (read_ahead_info) image_prebuffer_set(imd, read_ahead_info->fd);
                }
 }
@@ -221,9 +221,9 @@ static void view_list_step(ViewWindow *vw, gint next)
 
        vw->list_pointer = work;
        fd = work->data;
-       image_change_fd(imd, fd, image_zoom_get_default(imd, options->zoom_mode));
+       image_change_fd(imd, fd, image_zoom_get_default(imd, options->image.zoom_mode));
 
-       if (options->enable_read_ahead && work_ahead)
+       if (options->image.enable_read_ahead && work_ahead)
                {
                FileData *next_fd = work_ahead->data;
                image_prebuffer_set(imd, next_fd);
@@ -252,9 +252,9 @@ static void view_list_step_to_end(ViewWindow *vw, gint last)
 
        vw->list_pointer = work;
        fd = work->data;
-       image_change_fd(imd, fd, image_zoom_get_default(imd, options->zoom_mode));
+       image_change_fd(imd, fd, image_zoom_get_default(imd, options->image.zoom_mode));
 
-       if (options->enable_read_ahead && work_ahead)
+       if (options->image.enable_read_ahead && work_ahead)
                {
                FileData *next_fd = work_ahead->data;
                image_prebuffer_set(imd, next_fd);
@@ -877,8 +877,8 @@ static ViewWindow *real_view_window_new(FileData *fd, GList *list, CollectionDat
                         G_CALLBACK(view_window_key_press_cb), vw);
        if (cd && info)
                {
-               image_change_from_collection(vw->imd, cd, info, image_zoom_get_default(NULL, options->zoom_mode));
-               if (options->enable_read_ahead)
+               image_change_from_collection(vw->imd, cd, info, image_zoom_get_default(NULL, options->image.zoom_mode));
+               if (options->image.enable_read_ahead)
                        {
                        CollectInfo * r_info = collection_next_by_info(cd, info);
                        if (!r_info) r_info = collection_prev_by_info(cd, info);
@@ -889,9 +889,9 @@ static ViewWindow *real_view_window_new(FileData *fd, GList *list, CollectionDat
                {
                view_window_set_list(vw, list);
                vw->list_pointer = vw->list;
-               image_change_fd(vw->imd, (FileData *)vw->list->data, image_zoom_get_default(NULL, options->zoom_mode));
+               image_change_fd(vw->imd, (FileData *)vw->list->data, image_zoom_get_default(NULL, options->image.zoom_mode));
 
-               if (options->enable_read_ahead)
+               if (options->image.enable_read_ahead)
                        {
                        GList *work = vw->list->next;
                        if (work) image_prebuffer_set(vw->imd, (FileData *)work->data);
@@ -899,7 +899,7 @@ static ViewWindow *real_view_window_new(FileData *fd, GList *list, CollectionDat
                }
        else
                {
-               image_change_fd(vw->imd, fd, image_zoom_get_default(NULL, options->zoom_mode));
+               image_change_fd(vw->imd, fd, image_zoom_get_default(NULL, options->image.zoom_mode));
                }
 
        if (image_zoom_get(vw->imd) == 0.0)
@@ -910,10 +910,10 @@ static ViewWindow *real_view_window_new(FileData *fd, GList *list, CollectionDat
                {
                pixbuf_renderer_get_scaled_size(PIXBUF_RENDERER(vw->imd->pr), &w, &h);
                }
-       if (options->limit_window_size)
+       if (options->image.limit_window_size)
                {
-               gint mw = gdk_screen_width() * options->max_window_size / 100;
-               gint mh = gdk_screen_height() * options->max_window_size / 100;
+               gint mw = gdk_screen_width() * options->image.max_window_size / 100;
+               gint mh = gdk_screen_height() * options->image.max_window_size / 100;
 
                if (w > mw) w = mw;
                if (h > mh) h = mh;
@@ -1351,10 +1351,10 @@ static void view_dir_list_do(ViewWindow *vw, GList *list, gint skip, gint recurs
 
                vw->list_pointer = vw->list;
                fd = vw->list->data;
-               image_change_fd(vw->imd, fd, image_zoom_get_default(vw->imd, options->zoom_mode));
+               image_change_fd(vw->imd, fd, image_zoom_get_default(vw->imd, options->image.zoom_mode));
 
                work = vw->list->next;
-               if (options->enable_read_ahead && work)
+               if (options->image.enable_read_ahead && work)
                        {
                        fd = work->data;
                        image_prebuffer_set(vw->imd, fd);
@@ -1362,7 +1362,7 @@ static void view_dir_list_do(ViewWindow *vw, GList *list, gint skip, gint recurs
                }
        else
                {
-               image_change_fd(vw->imd, NULL, image_zoom_get_default(vw->imd, options->zoom_mode));
+               image_change_fd(vw->imd, NULL, image_zoom_get_default(vw->imd, options->image.zoom_mode));
                }
 }
 
@@ -1481,7 +1481,7 @@ static void view_window_get_dnd_data(GtkWidget *widget, GdkDragContext *context,
 
                                if (source && info_list)
                                        {
-                                       image_change_from_collection(imd, source, info_list->data, image_zoom_get_default(imd, options->zoom_mode));
+                                       image_change_from_collection(imd, source, info_list->data, image_zoom_get_default(imd, options->image.zoom_mode));
                                        }
                                else
                                        {
@@ -1492,7 +1492,7 @@ static void view_window_get_dnd_data(GtkWidget *widget, GdkDragContext *context,
 
                                                vw->list_pointer = vw->list;
                                                }
-                                       image_change_fd(imd, fd, image_zoom_get_default(imd, options->zoom_mode));
+                                       image_change_fd(imd, fd, image_zoom_get_default(imd, options->image.zoom_mode));
                                        }
                                }
                        }
@@ -1598,7 +1598,7 @@ static void view_real_removed(ViewWindow *vw, FileData *fd, GList *ignore_list)
                        }
                if (image_get_fd(imd) == image_fd)
                        {
-                       image_change_fd(imd, NULL, image_zoom_get_default(imd, options->zoom_mode));
+                       image_change_fd(imd, NULL, image_zoom_get_default(imd, options->image.zoom_mode));
                        }
                }
 
@@ -1644,7 +1644,7 @@ static void view_real_removed(ViewWindow *vw, FileData *fd, GList *ignore_list)
                                fd = NULL;
                                }
 
-                       image_change_fd(imd, fd, image_zoom_get_default(imd, options->zoom_mode));
+                       image_change_fd(imd, fd, image_zoom_get_default(imd, options->image.zoom_mode));
                        }
                }
 
index 318ac1f..6b0d85c 100644 (file)
@@ -1111,7 +1111,7 @@ void layout_image_set_fd(LayoutWindow *lw, FileData *fd)
 
        image_get_scroll_center(lw->image, &sx, &sy);
 
-       image_change_fd(lw->image, fd, image_zoom_get_default(lw->image, options->zoom_mode));
+       image_change_fd(lw->image, fd, image_zoom_get_default(lw->image, options->image.zoom_mode));
 
        image_set_scroll_center(lw->image, sx, sy);
 
@@ -1135,7 +1135,7 @@ This should be handled at the caller: in vflist_select_image
                }
 */
        layout_image_set_fd(lw, fd);
-       if (options->enable_read_ahead) image_prebuffer_set(lw->image, read_ahead_fd);
+       if (options->image.enable_read_ahead) image_prebuffer_set(lw->image, read_ahead_fd);
 }
 
 void layout_image_set_index(LayoutWindow *lw, gint index)
@@ -1203,8 +1203,8 @@ static void layout_image_set_collection_real(LayoutWindow *lw, CollectionData *c
 {
        if (!layout_valid(&lw)) return;
 
-       image_change_from_collection(lw->image, cd, info, image_zoom_get_default(lw->image, options->zoom_mode));
-       if (options->enable_read_ahead)
+       image_change_from_collection(lw->image, cd, info, image_zoom_get_default(lw->image, options->image.zoom_mode));
+       if (options->image.enable_read_ahead)
                {
                CollectInfo *r_info;
                if (forward)
index 328bb3e..6bf27f2 100644 (file)
@@ -113,7 +113,7 @@ gint window_maximized(GtkWidget *window)
 
 gdouble get_zoom_increment(void)
 {
-       return ((options->zoom_increment != 0) ? (gdouble)options->zoom_increment / 10.0 : 1.0);
+       return ((options->image.zoom_increment != 0) ? (gdouble)options->image.zoom_increment / 10.0 : 1.0);
 }
 
 /*
index 4fefac5..0ab850e 100644 (file)
@@ -131,7 +131,7 @@ static void pan_queue_image_done_cb(ImageLoader *il, gpointer data)
 
                        tmp = pi->pixbuf;
                        pi->pixbuf = gdk_pixbuf_scale_simple(tmp, pi->width, pi->height,
-                                                            (GdkInterpType)options->zoom_quality);
+                                                            (GdkInterpType)options->image.zoom_quality);
                        g_object_unref(tmp);
                        }
 
index 5b1bb05..37ca6d7 100644 (file)
@@ -111,24 +111,24 @@ static void startup_path_set_current(GtkWidget *widget, gpointer data)
 static void zoom_mode_original_cb(GtkWidget *widget, gpointer data)
 {
        if (GTK_TOGGLE_BUTTON (widget)->active)
-               c_options->zoom_mode = ZOOM_RESET_ORIGINAL;
+               c_options->image.zoom_mode = ZOOM_RESET_ORIGINAL;
 }
 
 static void zoom_mode_fit_cb(GtkWidget *widget, gpointer data)
 {
        if (GTK_TOGGLE_BUTTON (widget)->active)
-               c_options->zoom_mode = ZOOM_RESET_FIT_WINDOW;
+               c_options->image.zoom_mode = ZOOM_RESET_FIT_WINDOW;
 }
 
 static void zoom_mode_none_cb(GtkWidget *widget, gpointer data)
 {
        if (GTK_TOGGLE_BUTTON (widget)->active)
-               c_options->zoom_mode = ZOOM_RESET_NONE;
+               c_options->image.zoom_mode = ZOOM_RESET_NONE;
 }
 
 static void zoom_increment_cb(GtkWidget *spin, gpointer data)
 {
-       c_options->zoom_increment = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * 10.0 + 0.01);
+       c_options->image.zoom_increment = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * 10.0 + 0.01);
 }
 
 static void slideshow_delay_cb(GtkWidget *spin, gpointer data)
@@ -189,14 +189,14 @@ static void config_window_apply(void)
        options->safe_delete_size = c_options->safe_delete_size;
        options->restore_tool = c_options->restore_tool;
        options->save_window_positions = c_options->save_window_positions;
-       options->zoom_mode = c_options->zoom_mode;
-       options->two_pass_zoom = c_options->two_pass_zoom;
-       options->fit_window = c_options->fit_window;
-       options->limit_window_size = c_options->limit_window_size;
-       options->zoom_to_fit_expands = c_options->zoom_to_fit_expands;
-       options->max_window_size = c_options->max_window_size;
-       options->limit_autofit_size = c_options->limit_autofit_size;
-       options->max_autofit_size = c_options->max_autofit_size;
+       options->image.zoom_mode = c_options->image.zoom_mode;
+       options->image.zoom_2pass = c_options->image.zoom_2pass;
+       options->image.fit_window_to_image = c_options->image.fit_window_to_image;
+       options->image.limit_window_size = c_options->image.limit_window_size;
+       options->image.zoom_to_fit_allow_expand = c_options->image.zoom_to_fit_allow_expand;
+       options->image.max_window_size = c_options->image.max_window_size;
+       options->image.limit_autofit_size = c_options->image.limit_autofit_size;
+       options->image.max_autofit_size = c_options->image.max_autofit_size;
        options->progressive_key_scrolling = c_options->progressive_key_scrolling;
        options->thumbnails.max_width = c_options->thumbnails.max_width;
        options->thumbnails.max_height = c_options->thumbnails.max_height;
@@ -224,14 +224,14 @@ static void config_window_apply(void)
 
        options->collections.rectangular_selection = c_options->collections.rectangular_selection;
 
-       options->tile_cache_max = c_options->tile_cache_max;
+       options->image.tile_cache_max = c_options->image.tile_cache_max;
 
        options->thumbnails.quality = c_options->thumbnails.quality;
-       options->zoom_quality = c_options->zoom_quality;
+       options->image.zoom_quality = c_options->image.zoom_quality;
 
-       options->zoom_increment = c_options->zoom_increment;
+       options->image.zoom_increment = c_options->image.zoom_increment;
 
-       options->enable_read_ahead = c_options->enable_read_ahead;
+       options->image.enable_read_ahead = c_options->image.enable_read_ahead;
 
        if (options->user_specified_window_background != c_options->user_specified_window_background
            || !gdk_color_equal(&options->window_background_color, &c_options->window_background_color))
@@ -254,7 +254,7 @@ static void config_window_apply(void)
                }
 
        options->update_on_time_change = c_options->update_on_time_change;
-       options->exif_rotate_enable = c_options->exif_rotate_enable;
+       options->image.exif_rotate_enable = c_options->image.exif_rotate_enable;
 
        options->dupe_custom_threshold = c_options->dupe_custom_threshold;
 
@@ -879,42 +879,42 @@ static void config_tab_image(GtkWidget *notebook)
        group = pref_group_new(vbox, FALSE, _("Zoom"), GTK_ORIENTATION_VERTICAL);
 
 #if 0
-       add_dither_menu(dither_quality, &c_options->dither_quality, _("Dithering method:"), group);
+       add_dither_menu(dither_quality, &c_options->image.dither_quality, _("Dithering method:"), group);
 #endif
        table = pref_table_new(group, 2, 1, FALSE, FALSE);
-       add_quality_menu(table, 0, 0, _("Quality:"), options->zoom_quality, &c_options->zoom_quality);
+       add_quality_menu(table, 0, 0, _("Quality:"), options->image.zoom_quality, &c_options->image.zoom_quality);
 
        pref_checkbox_new_int(group, _("Two pass zooming"),
-                             options->two_pass_zoom, &c_options->two_pass_zoom);
+                             options->image.zoom_2pass, &c_options->image.zoom_2pass);
 
        pref_checkbox_new_int(group, _("Allow enlargement of image for zoom to fit"),
-                             options->zoom_to_fit_expands, &c_options->zoom_to_fit_expands);
+                             options->image.zoom_to_fit_allow_expand, &c_options->image.zoom_to_fit_allow_expand);
 
        hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
        ct_button = pref_checkbox_new_int(hbox, _("Limit image size when autofitting (%):"),
-                                         options->limit_autofit_size, &c_options->limit_autofit_size);
+                                         options->image.limit_autofit_size, &c_options->image.limit_autofit_size);
        spin = pref_spin_new_int(hbox, NULL, NULL,
                                 10, 150, 1,
-                                options->max_autofit_size, &c_options->max_autofit_size);
+                                options->image.max_autofit_size, &c_options->image.max_autofit_size);
        pref_checkbox_link_sensitivity(ct_button, spin);
 
-       c_options->zoom_increment = options->zoom_increment;
+       c_options->image.zoom_increment = options->image.zoom_increment;
        spin = pref_spin_new(group, _("Zoom increment:"), NULL,
-                            0.1, 4.0, 0.1, 1, (double)options->zoom_increment / 10.0,
+                            0.1, 4.0, 0.1, 1, (double)options->image.zoom_increment / 10.0,
                             G_CALLBACK(zoom_increment_cb), NULL);
        gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS);
 
        group = pref_group_new(vbox, FALSE, _("When new image is selected:"), GTK_ORIENTATION_VERTICAL);
 
-       c_options->zoom_mode = options->zoom_mode;
+       c_options->image.zoom_mode = options->image.zoom_mode;
        button = pref_radiobutton_new(group, NULL, _("Zoom to original size"),
-                                     (options->zoom_mode == ZOOM_RESET_ORIGINAL),
+                                     (options->image.zoom_mode == ZOOM_RESET_ORIGINAL),
                                      G_CALLBACK(zoom_mode_original_cb), NULL);
        button = pref_radiobutton_new(group, button, _("Fit image to window"),
-                                     (options->zoom_mode == ZOOM_RESET_FIT_WINDOW),
+                                     (options->image.zoom_mode == ZOOM_RESET_FIT_WINDOW),
                                      G_CALLBACK(zoom_mode_fit_cb), NULL);
        button = pref_radiobutton_new(group, button, _("Leave Zoom at previous setting"),
-                                     (options->zoom_mode == ZOOM_RESET_NONE),
+                                     (options->image.zoom_mode == ZOOM_RESET_NONE),
                                      G_CALLBACK(zoom_mode_none_cb), NULL);
 
        group = pref_group_new(vbox, FALSE, _("Appearance"), GTK_ORIENTATION_VERTICAL);
@@ -930,9 +930,9 @@ static void config_tab_image(GtkWidget *notebook)
        pref_checkbox_new_int(group, _("Refresh on file change"),
                              options->update_on_time_change, &c_options->update_on_time_change);
        pref_checkbox_new_int(group, _("Preload next image"),
-                             options->enable_read_ahead, &c_options->enable_read_ahead);
+                             options->image.enable_read_ahead, &c_options->image.enable_read_ahead);
        pref_checkbox_new_int(group, _("Auto rotate image using Exif information"),
-                             options->exif_rotate_enable, &c_options->exif_rotate_enable);
+                             options->image.exif_rotate_enable, &c_options->image.exif_rotate_enable);
 }
 
 /* windows tab */
@@ -961,14 +961,14 @@ static void config_tab_windows(GtkWidget *notebook)
        group = pref_group_new(vbox, FALSE, _("Size"), GTK_ORIENTATION_VERTICAL);
 
        pref_checkbox_new_int(group, _("Fit window to image when tools are hidden/floating"),
-                             options->fit_window, &c_options->fit_window);
+                             options->image.fit_window_to_image, &c_options->image.fit_window_to_image);
 
        hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
        ct_button = pref_checkbox_new_int(hbox, _("Limit size when auto-sizing window (%):"),
-                                         options->limit_window_size, &c_options->limit_window_size);
+                                         options->image.limit_window_size, &c_options->image.limit_window_size);
        spin = pref_spin_new_int(hbox, NULL, NULL,
                                 10, 150, 1,
-                                options->max_window_size, &c_options->max_window_size);
+                                options->image.max_window_size, &c_options->image.max_window_size);
        pref_checkbox_link_sensitivity(ct_button, spin);
 
        group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL);
@@ -1374,7 +1374,7 @@ static void config_tab_advanced(GtkWidget *notebook)
                          0, 100, 1, options->dupe_custom_threshold, &c_options->dupe_custom_threshold);
 
        pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL,
-                         0, 128, 1, options->tile_cache_max, &c_options->tile_cache_max);
+                         0, 128, 1, options->image.tile_cache_max, &c_options->image.tile_cache_max);
 
        group =  pref_group_new(vbox, FALSE, _("Color profiles"), GTK_ORIENTATION_VERTICAL);
 #ifndef HAVE_LCMS
index e51cca7..fb03e76 100644 (file)
@@ -287,30 +287,35 @@ void save_options(void)
        write_bool_option(ssi, "tree_descend_folders", options->tree_descend_subdirs);
        write_bool_option(ssi, "lazy_image_sync", options->lazy_image_sync);
        write_bool_option(ssi, "update_on_time_change", options->update_on_time_change);
-       write_bool_option(ssi, "exif_auto_rotate", options->exif_rotate_enable);
+       write_bool_option(ssi, "exif_auto_rotate", options->image.exif_rotate_enable);
        secure_fputc(ssi, '\n');
 
        write_bool_option(ssi, "enable_startup_path", options->startup_path_enable);
        write_char_option(ssi, "startup_path", options->startup_path);
        secure_fputc(ssi, '\n');
 
-       secure_fprintf(ssi, "zoom_mode: ");
-       if (options->zoom_mode == ZOOM_RESET_ORIGINAL) secure_fprintf(ssi, "original\n");
-       if (options->zoom_mode == ZOOM_RESET_FIT_WINDOW) secure_fprintf(ssi, "fit\n");
-       if (options->zoom_mode == ZOOM_RESET_NONE) secure_fprintf(ssi, "dont_change\n");
-       write_bool_option(ssi, "two_pass_scaling", options->two_pass_zoom);
-       write_bool_option(ssi, "zoom_to_fit_allow_expand", options->zoom_to_fit_expands);
-       secure_fputc(ssi, '\n');
-
-       write_bool_option(ssi, "fit_window_to_image", options->fit_window);
-       write_bool_option(ssi, "limit_window_size", options->limit_window_size);
-       write_int_option(ssi, "max_window_size", options->max_window_size);
-       write_bool_option(ssi, "limit_autofit_size", options->limit_autofit_size);
-       write_int_option(ssi, "max_autofit_size", options->max_autofit_size);
+       secure_fprintf(ssi, "##### Image Options #####\n\n");
+
+       secure_fprintf(ssi, "image.zoom_mode: ");
+       if (options->image.zoom_mode == ZOOM_RESET_ORIGINAL) secure_fprintf(ssi, "original\n");
+       if (options->image.zoom_mode == ZOOM_RESET_FIT_WINDOW) secure_fprintf(ssi, "fit\n");
+       if (options->image.zoom_mode == ZOOM_RESET_NONE) secure_fprintf(ssi, "dont_change\n");
+       write_bool_option(ssi, "image.zoom_2pass", options->image.zoom_2pass);
+       write_bool_option(ssi, "image.zoom_to_fit_allow_expand", options->image.zoom_to_fit_allow_expand);
+       write_bool_option(ssi, "image.fit_window_to_image", options->image.fit_window_to_image);
+       write_bool_option(ssi, "image.limit_window_size", options->image.limit_window_size);
+       write_int_option(ssi, "image.max_window_size", options->image.max_window_size);
+       write_bool_option(ssi, "image.limit_autofit_size", options->image.limit_autofit_size);
+       write_int_option(ssi, "image.max_autofit_size", options->image.max_autofit_size);
+       write_int_option(ssi, "image.scroll_reset_method", options->image.scroll_reset_method);
+       write_int_option(ssi, "image_cache_size_max", options->image.tile_cache_max);
+       write_int_option(ssi, "image.zoom_quality", options->image.zoom_quality);
+       write_int_option(ssi, "image.dither_quality", options->image.dither_quality);
+       write_int_option(ssi, "image.zoom_increment", options->image.zoom_increment);
+       write_bool_option(ssi, "image.enable_read_ahead", options->image.enable_read_ahead);
        secure_fputc(ssi, '\n');
 
        write_bool_option(ssi, "progressive_keyboard_scrolling", options->progressive_key_scrolling);
-       write_int_option(ssi, "scroll_reset_method", options->scroll_reset_method);
        secure_fputc(ssi, '\n');
 
        write_bool_option(ssi, "thumbnails.enabled", options->thumbnails.enabled);
@@ -348,11 +353,6 @@ void save_options(void)
        write_bool_option(ssi, "mouse_wheel_scrolls", options->mousewheel_scrolls);
        write_bool_option(ssi, "in_place_rename", options->enable_in_place_rename);
        write_int_option(ssi, "open_recent_max", options->recent_list_max);
-       write_int_option(ssi, "image_cache_size_max", options->tile_cache_max);
-       write_int_option(ssi, "zoom_quality", options->zoom_quality);
-       write_int_option(ssi, "dither_quality", options->dither_quality);
-       write_int_option(ssi, "zoom_increment", options->zoom_increment);
-       write_bool_option(ssi, "enable_read_ahead", options->enable_read_ahead);
        write_bool_option(ssi, "display_dialogs_under_mouse", options->place_dialogs_under_mouse);
        secure_fputc(ssi, '\n');
 
@@ -544,39 +544,50 @@ void load_options(void)
                        "lazy_image_sync", value, options->lazy_image_sync);
                options->update_on_time_change = read_bool_option(f, option,
                        "update_on_time_change", value, options->update_on_time_change);
-               options->exif_rotate_enable = read_bool_option(f, option,
-                       "exif_auto_rotate", value, options->exif_rotate_enable);
+               options->image.exif_rotate_enable = read_bool_option(f, option,
+                       "exif_auto_rotate", value, options->image.exif_rotate_enable);
 
                options->startup_path_enable = read_bool_option(f, option,
                        "enable_startup_path", value, options->startup_path_enable);
                options->startup_path = read_char_option(f, option,
                        "startup_path", value_all, options->startup_path);
 
-               if (strcasecmp(option, "zoom_mode") == 0)
+               if (strcasecmp(option, "image.zoom_mode") == 0)
                         {
-                        if (strcasecmp(value, "original") == 0) options->zoom_mode = ZOOM_RESET_ORIGINAL;
-                        if (strcasecmp(value, "fit") == 0) options->zoom_mode = ZOOM_RESET_FIT_WINDOW;
-                        if (strcasecmp(value, "dont_change") == 0) options->zoom_mode = ZOOM_RESET_NONE;
+                        if (strcasecmp(value, "original") == 0) options->image.zoom_mode = ZOOM_RESET_ORIGINAL;
+                        if (strcasecmp(value, "fit") == 0) options->image.zoom_mode = ZOOM_RESET_FIT_WINDOW;
+                        if (strcasecmp(value, "dont_change") == 0) options->image.zoom_mode = ZOOM_RESET_NONE;
                         }
-               options->two_pass_zoom = read_bool_option(f, option,
-                       "two_pass_scaling", value, options->two_pass_zoom);
-               options->zoom_to_fit_expands = read_bool_option(f, option,
-                       "zoom_to_fit_allow_expand", value, options->zoom_to_fit_expands);
-
-               options->fit_window = read_bool_option(f, option,
-                       "fit_window_to_image", value, options->fit_window);
-               options->limit_window_size = read_bool_option(f, option,
-                       "limit_window_size", value, options->limit_window_size);
-               options->max_window_size = read_int_option(f, option,
-                       "max_window_size", value, options->max_window_size);
-               options->limit_autofit_size = read_bool_option(f, option,
-                       "limit_autofit_size", value, options->limit_autofit_size);
-               options->max_autofit_size = read_int_option(f, option,
-                       "max_autofit_size", value, options->max_autofit_size);
+               options->image.zoom_2pass = read_bool_option(f, option,
+                       "image.zoom_2pass", value, options->image.zoom_2pass);
+               options->image.zoom_to_fit_allow_expand = read_bool_option(f, option,
+                       "image.zoom_to_fit_allow_expand", value, options->image.zoom_to_fit_allow_expand);
+               options->image.fit_window_to_image = read_bool_option(f, option,
+                       "image.fit_window_to_image", value, options->image.fit_window_to_image);
+               options->image.limit_window_size = read_bool_option(f, option,
+                       "image.limit_window_size", value, options->image.limit_window_size);
+               options->image.max_window_size = read_int_option(f, option,
+                       "image.max_window_size", value, options->image.max_window_size);
+               options->image.limit_autofit_size = read_bool_option(f, option,
+                       "image.limit_autofit_size", value, options->image.limit_autofit_size);
+               options->image.max_autofit_size = read_int_option(f, option,
+                       "image.max_autofit_size", value, options->image.max_autofit_size);
+               options->image.scroll_reset_method = read_int_option(f, option,
+                       "image.scroll_reset_method", value, options->image.scroll_reset_method);
+               options->image.tile_cache_max = read_int_option(f, option,
+                       "image.cache_size_max", value, options->image.tile_cache_max);
+               options->image.zoom_quality = CLAMP(read_int_option(f, option,
+                       "image.zoom_quality", value, options->image.zoom_quality), GDK_INTERP_NEAREST, GDK_INTERP_HYPER);
+               options->image.dither_quality = CLAMP(read_int_option(f, option,
+                       "image.dither_quality", value, options->image.dither_quality), GDK_RGB_DITHER_NONE, GDK_RGB_DITHER_MAX);
+               options->image.zoom_increment = read_int_option(f, option,
+                       "image.zoom_increment", value, options->image.zoom_increment);
+               options->image.enable_read_ahead = read_bool_option(f, option,
+                       "image.enable_read_ahead", value, options->image.enable_read_ahead);
+
                options->progressive_key_scrolling = read_bool_option(f, option,
                        "progressive_keyboard_scrolling", value, options->progressive_key_scrolling);
-               options->scroll_reset_method = read_int_option(f, option,
-                       "scroll_reset_method", value, options->scroll_reset_method);
+
 
                options->thumbnails.enabled = read_bool_option(f, option,
                        "thumbnails.enabled", value, options->thumbnails.enabled);
@@ -638,20 +649,6 @@ void load_options(void)
                options->recent_list_max = read_int_option(f, option,
                        "open_recent_max", value, options->recent_list_max);
 
-               options->tile_cache_max = read_int_option(f, option,
-                       "image_cache_size_max", value, options->tile_cache_max);
-
-               options->zoom_quality = CLAMP(read_int_option(f, option,
-                       "zoom_quality", value, options->zoom_quality), GDK_INTERP_NEAREST, GDK_INTERP_HYPER);
-               options->dither_quality = CLAMP(read_int_option(f, option,
-                       "dither_quality", value, options->dither_quality), GDK_RGB_DITHER_NONE, GDK_RGB_DITHER_MAX);
-
-               options->zoom_increment = read_int_option(f, option,
-                       "zoom_increment", value, options->zoom_increment);
-
-               options->enable_read_ahead = read_bool_option(f, option,
-                       "enable_read_ahead", value, options->enable_read_ahead);
-
                options->place_dialogs_under_mouse = read_bool_option(f, option,
                        "display_dialogs_under_mouse", value, options->place_dialogs_under_mouse);
 
index 7d92b97..f075fbf 100644 (file)
@@ -183,7 +183,7 @@ static gint slideshow_step(SlideShowData *ss, gint forward)
        if (ss->filelist)
                {
                ss->slide_fd = file_data_ref((FileData *)g_list_nth_data(ss->filelist, row));
-               image_change_fd(ss->imd, ss->slide_fd, image_zoom_get_default(ss->imd, options->zoom_mode));
+               image_change_fd(ss->imd, ss->slide_fd, image_zoom_get_default(ss->imd, options->image.zoom_mode));
                }
        else if (ss->cd)
                {
@@ -192,7 +192,7 @@ static gint slideshow_step(SlideShowData *ss, gint forward)
                info = g_list_nth_data(ss->cd->list, row);
                ss->slide_fd = file_data_ref(info->fd);
 
-               image_change_from_collection(ss->imd, ss->cd, info, image_zoom_get_default(ss->imd, options->zoom_mode));
+               image_change_from_collection(ss->imd, ss->cd, info, image_zoom_get_default(ss->imd, options->image.zoom_mode));
                }
        else
                {
@@ -200,7 +200,7 @@ static gint slideshow_step(SlideShowData *ss, gint forward)
 
                if (ss->from_selection)
                        {
-                       image_change_fd(ss->imd, ss->slide_fd, image_zoom_get_default(ss->imd, options->zoom_mode));
+                       image_change_fd(ss->imd, ss->slide_fd, image_zoom_get_default(ss->imd, options->image.zoom_mode));
                        layout_status_update_info(ss->layout, NULL);
                        }
                else
@@ -221,7 +221,7 @@ static gint slideshow_step(SlideShowData *ss, gint forward)
 
        /* read ahead */
 
-       if (options->enable_read_ahead)
+       if (options->image.enable_read_ahead)
                {
                gint r;
                if (forward)
index 2d0a9e5..9a05200 100644 (file)
@@ -782,22 +782,26 @@ struct _ConfOptions
        gint recent_list_max;
 
        /* image */
-       gint exif_rotate_enable;
-       gint zoom_mode;
-       gint two_pass_zoom;
-       gint scroll_reset_method;
-       gint fit_window;
-       gint limit_window_size;
-       gint zoom_to_fit_expands;
-       gint max_window_size;
-       gint limit_autofit_size;
-       gint max_autofit_size;
-       gint tile_cache_max;    /* in megabytes */
-       gint zoom_quality;
-       gint dither_quality;
-       gint zoom_increment;    /* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
-       gint enable_read_ahead;
-       
+       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. */
+       } image;
+
        gint user_specified_window_background;
        GdkColor window_background_color;
 
index 6542ec8..cb079f8 100644 (file)
@@ -380,7 +380,7 @@ static void vficon_send_layout_select(ViewFileIcon *vfi, IconData *id)
        cur_fd = layout_image_get_fd(vfi->layout);
        if (sel_fd == cur_fd) return; /* no change */
        
-       if (options->enable_read_ahead)
+       if (options->image.enable_read_ahead)
                {
                gint row;
 
index e00c873..5244d26 100644 (file)
@@ -848,7 +848,7 @@ static void vflist_select_image(ViewFileList *vfl, FileData *sel_fd)
        row = g_list_index(vfl->list, sel_fd);
        // FIXME sidecar data
 
-       if (sel_fd && options->enable_read_ahead && row >= 0)
+       if (sel_fd && options->image.enable_read_ahead && row >= 0)
                {
                if (row > g_list_index(vfl->list, cur_fd) &&
                    row + 1 < vflist_count(vfl, NULL))