# HG changeset patch
# User nadvornik
# Date 1238876417 0
# Node ID ad501843447690d0f22ae0d28606fb3ee4b004df
# Parent e70bbc97acc5e5f16d54f677d7918fce388f21fa
moved options from Advanced tab to other tabs
TODO: add Advanced section on each tab
diff -r e70bbc97acc5 -r ad5018434476 src/preferences.c
--- a/src/preferences.c Sat Apr 04 19:10:49 2009 +0000
+++ b/src/preferences.c Sat Apr 04 20:20:17 2009 +0000
@@ -807,43 +807,6 @@
!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
}
-#if 0
-static void editor_default_ok_cb(GenericDialog *gd, gpointer data)
-{
- gint i;
-
- editor_reset_defaults();
- if (!configwindow) return;
-
- for (i = 0; i < GQ_EDITOR_SLOTS; i++)
- {
- if (i < GQ_EDITOR_GENERIC_SLOTS)
- gtk_entry_set_text(GTK_ENTRY(editor_name_entry[i]),
- (options->editor[i].name) ? options->editor[i].name : "");
- gtk_entry_set_text(GTK_ENTRY(editor_command_entry[i]),
- (options->editor[i].command) ? options->editor[i].command : "");
- }
-}
-
-static void editor_default_cb(GtkWidget *widget, gpointer data)
-{
- GenericDialog *gd;
-
- gd = generic_dialog_new(_("Reset editors"),
- "reset_filter", widget, TRUE,
- dummy_cancel_cb, NULL);
- generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset editors"),
- _("This will reset the edit commands to the defaults.\nContinue?"));
- generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, editor_default_ok_cb, TRUE);
- gtk_widget_show(gd->dialog);
-}
-
-static void editor_help_cb(GtkWidget *widget, gpointer data)
-{
- help_window_show("editors");
-}
-#endif
-
static void safe_delete_view_cb(GtkWidget *widget, gpointer data)
{
layout_set_path(NULL, gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry)));
@@ -1029,6 +992,25 @@
pref_checkbox_new_int(group, _("Random"), options->slideshow.random, &c_options->slideshow.random);
pref_checkbox_new_int(group, _("Repeat"), options->slideshow.repeat, &c_options->slideshow.repeat);
+
+ group = pref_group_new(vbox, FALSE, _("Image loading and caching"), GTK_ORIENTATION_VERTICAL);
+
+ pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL,
+ 0, 128, 1, options->image.tile_cache_max, &c_options->image.tile_cache_max);
+
+ pref_spin_new_int(group, _("Decoded image cache size (Mb):"), NULL,
+ 0, 1024, 1, options->image.image_cache_max, &c_options->image.image_cache_max);
+
+ pref_spin_new_int(group, _("Image read buffer size (bytes):"), NULL,
+ IMAGE_LOADER_READ_BUFFER_SIZE_MIN, IMAGE_LOADER_READ_BUFFER_SIZE_MAX, 512,
+ options->image.read_buffer_size, &c_options->image.read_buffer_size);
+
+ pref_spin_new_int(group, _("Image idle loop read count:"), NULL,
+ IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MIN, IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MAX, 1,
+ options->image.idle_read_loop_count, &c_options->image.idle_read_loop_count);
+
+
+
}
/* image tab */
@@ -1123,8 +1105,12 @@
GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *group;
+ GtkWidget *button;
GtkWidget *ct_button;
GtkWidget *spin;
+ GtkWidget *image_overlay_template_view;
+ GtkWidget *scrolled;
+ GtkTextBuffer *buffer;
vbox = scrolled_notebook_page(notebook, _("Windows"));
@@ -1147,6 +1133,70 @@
10, 150, 1,
options->image.max_window_size, &c_options->image.max_window_size);
pref_checkbox_link_sensitivity(ct_button, spin);
+
+ group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL);
+
+ c_options->fullscreen.screen = options->fullscreen.screen;
+ c_options->fullscreen.above = options->fullscreen.above;
+ hbox = fullscreen_prefs_selection_new(_("Location:"), &c_options->fullscreen.screen, &c_options->fullscreen.above);
+ gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gtk_widget_show(hbox);
+
+ pref_checkbox_new_int(group, _("Smooth image flip"),
+ options->fullscreen.clean_flip, &c_options->fullscreen.clean_flip);
+ pref_checkbox_new_int(group, _("Disable screen saver"),
+ options->fullscreen.disable_saver, &c_options->fullscreen.disable_saver);
+
+
+ group = pref_group_new(vbox, FALSE, _("Overlay Screen Display"), GTK_ORIENTATION_VERTICAL);
+
+ pref_label_new(group, _("Image overlay template"));
+
+ scrolled = gtk_scrolled_window_new(NULL, NULL);
+ gtk_widget_set_size_request(scrolled, 200, 150);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5);
+ gtk_widget_show(scrolled);
+
+ image_overlay_template_view = gtk_text_view_new();
+
+#if GTK_CHECK_VERSION(2,12,0)
+ gtk_widget_set_tooltip_markup(image_overlay_template_view,
+ _("%name% results in the filename of the picture.\n"
+ "Also available: %collection%, %number%, %total%, %date%,\n"
+ "%size% (filesize), %width%, %height%, %res% (resolution)\n"
+ "To access exif data use the exif name, e. g. %formatted.Camera% is the formatted camera name,\n"
+ "%Exif.Photo.DateTimeOriginal% the date of the original shot.\n"
+ "%formatted.Camera:20 notation will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.\n"
+ "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n"
+ "%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength% could show \"1/20s - 400 - 80 mm\" or \"1/200 - 80 mm\",\n"
+ "if there's no ISO information in the Exif data.\n"
+ "If a line is empty, it is removed. This allows to add lines that totally disappear when no data is available.\n"
+));
+#endif
+ gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view);
+ gtk_widget_show(image_overlay_template_view);
+
+ hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
+
+ button = pref_button_new(NULL, NULL, _("Defaults"), FALSE,
+ G_CALLBACK(image_overlay_default_template_cb), image_overlay_template_view);
+ gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+
+ button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE,
+ G_CALLBACK(image_overlay_help_cb), NULL);
+ gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(image_overlay_template_view));
+ if (options->image_overlay.template_string) gtk_text_buffer_set_text(buffer, options->image_overlay.template_string, -1);
+ g_signal_connect(G_OBJECT(buffer), "changed",
+ G_CALLBACK(image_overlay_template_view_changed_cb), image_overlay_template_view);
+
+
}
static GtkTreeModel *create_class_model(void)
@@ -1317,199 +1367,141 @@
gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
}
-#if 0
-/* editors tab */
-static void config_tab_editors(GtkWidget *notebook)
+
+/* metadata tab */
+static void config_tab_metadata(GtkWidget *notebook)
{
+ GtkWidget *vbox;
GtkWidget *hbox;
+ GtkWidget *group;
+ GtkWidget *ct_button;
+
+ vbox = scrolled_notebook_page(notebook, _("Metadata"));
+
+ group = pref_group_new(vbox, FALSE, _("Metadata"), GTK_ORIENTATION_VERTICAL);
+
+ pref_checkbox_new_int(group, _("Store metadata and cache files in source image's directory"),
+ options->metadata.enable_metadata_dirs, &c_options->metadata.enable_metadata_dirs);
+
+ ct_button = pref_checkbox_new_int(group, _("Store keywords and comments as XMP tags in image files"),
+ options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file);
+
+ hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE);
+ pref_checkbox_link_sensitivity(ct_button, hbox);
+
+ pref_checkbox_new_int(hbox, _("Store keywords and comments also in legacy IPTC tags"),
+ options->metadata.save_legacy_IPTC, &c_options->metadata.save_legacy_IPTC);
+
+ pref_checkbox_new_int(hbox, _("Warn if the image files are unwritable"),
+ options->metadata.warn_on_write_problems, &c_options->metadata.warn_on_write_problems);
+
+ pref_checkbox_new_int(hbox, _("Ask before writing to image files"),
+ options->metadata.confirm_write, &c_options->metadata.confirm_write);
+
+ pref_checkbox_new_int(group, _("Save metadata in GQview legacy metadata format"),
+ options->metadata.save_legacy_format, &c_options->metadata.save_legacy_format);
+
+ pref_checkbox_new_int(group, _("Write the same keywords and comment to all files in a group"),
+ options->metadata.sync_grouped_files, &c_options->metadata.sync_grouped_files);
+
+ ct_button = pref_checkbox_new_int(group, _("Write metadata after timeout"),
+ options->metadata.confirm_after_timeout, &c_options->metadata.confirm_after_timeout);
+
+ hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
+ pref_checkbox_link_sensitivity(ct_button, hbox);
+
+ pref_spin_new_int(hbox, _("Timeout (seconds):"), NULL, 0, 900, 1,
+ options->metadata.confirm_timeout, &c_options->metadata.confirm_timeout);
+
+ pref_checkbox_new_int(group, _("Write metadata on image change"),
+ options->metadata.confirm_on_image_change, &c_options->metadata.confirm_on_image_change);
+
+ pref_checkbox_new_int(group, _("Write metadata on directory change"),
+ options->metadata.confirm_on_dir_change, &c_options->metadata.confirm_on_dir_change);
+}
+
+/* metadata tab */
+static void config_tab_color(GtkWidget *notebook)
+{
GtkWidget *label;
GtkWidget *vbox;
- GtkWidget *button;
+ GtkWidget *group;
+ GtkWidget *tabcomp;
GtkWidget *table;
gint i;
- vbox = scrolled_notebook_page(notebook, _("Editors"));
+ vbox = scrolled_notebook_page(notebook, _("Color"));
- table = pref_table_new(vbox, 3, 9, FALSE, FALSE);
+ group = pref_group_new(vbox, FALSE, _("Color profiles"), GTK_ORIENTATION_VERTICAL);
+#ifndef HAVE_LCMS
+ gtk_widget_set_sensitive(pref_group_parent(group), FALSE);
+#endif
+
+ table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 2, FALSE, FALSE);
gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);
- label = pref_table_label(table, 0, 0, _("#"), 1.0);
+ label = pref_table_label(table, 0, 0, _("Type"), 0.0);
pref_label_bold(label, TRUE, FALSE);
label = pref_table_label(table, 1, 0, _("Menu name"), 0.0);
pref_label_bold(label, TRUE, FALSE);
- label = pref_table_label(table, 2, 0, _("Command Line"), 0.0);
+ label = pref_table_label(table, 2, 0, _("File"), 0.0);
pref_label_bold(label, TRUE, FALSE);
- for (i = 0; i < GQ_EDITOR_SLOTS; i++)
+ for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
{
GtkWidget *entry;
-
- if (i < GQ_EDITOR_GENERIC_SLOTS)
- {
- gchar *buf;
+ gchar *buf;
- buf = g_strdup_printf("%d", i+1);
- pref_table_label(table, 0, i+1, buf, 1.0);
- g_free(buf);
- entry = gtk_entry_new();
- gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH);
- gtk_widget_set_size_request(entry, 80, -1);
- if (options->editor[i].name)
- gtk_entry_set_text(GTK_ENTRY(entry), options->editor[i].name);
- }
- else
- {
- entry = gtk_label_new(options->editor[i].name);
- gtk_misc_set_alignment(GTK_MISC(entry), 0.0, 0.5);
- }
-
- gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i+1, i+2,
- GTK_FILL | GTK_SHRINK, 0, 0, 0);
- gtk_widget_show(entry);
- editor_name_entry[i] = entry;
+ buf = g_strdup_printf("Input %d:", i + COLOR_PROFILE_FILE);
+ pref_table_label(table, 0, i + 1, buf, 1.0);
+ g_free(buf);
entry = gtk_entry_new();
- gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_COMMAND_MAX_LENGTH);
- gtk_widget_set_size_request(entry, 160, -1);
- tab_completion_add_to_entry(entry, NULL, NULL);
- if (options->editor[i].command)
- gtk_entry_set_text(GTK_ENTRY(entry), options->editor[i].command);
- gtk_table_attach(GTK_TABLE(table), entry, 2, 3, i+1, i+2,
+ gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH);
+// gtk_widget_set_size_request(editor_name_entry[i], 30, -1);
+ if (options->color_profile.input_name[i])
+ {
+ gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]);
+ }
+ gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i + 1, i + 2,
GTK_FILL | GTK_EXPAND, 0, 0, 0);
gtk_widget_show(entry);
- editor_command_entry[i] = entry;
+ color_profile_input_name_entry[i] = entry;
+
+ tabcomp = tab_completion_new(&entry, options->color_profile.input_file[i], NULL, NULL);
+ tab_completion_add_select_button(entry, _("Select color profile"), FALSE);
+ gtk_widget_set_size_request(entry, 160, -1);
+ gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2,
+ GTK_FILL | GTK_EXPAND, 0, 0, 0);
+ gtk_widget_show(tabcomp);
+ color_profile_input_file_entry[i] = entry;
}
- hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
-
- button = pref_button_new(NULL, NULL, _("Defaults"), FALSE,
- G_CALLBACK(editor_default_cb), NULL);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE,
- G_CALLBACK(editor_help_cb), NULL);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-}
-#endif
-
-/* properties tab */
-static void config_tab_properties(GtkWidget *notebook)
-{
- GtkWidget *label;
- GtkWidget *vbox;
- GtkWidget *group;
- GtkWidget *table;
- gint i;
-
- vbox = scrolled_notebook_page(notebook, _("Properties"));
-
- group = pref_group_new(vbox, FALSE, _("Exif"),
- GTK_ORIENTATION_VERTICAL);
-
-
- pref_spacer(group, PREF_PAD_INDENT - PREF_PAD_SPACE);
- label = pref_label_new(group, _("What to show in properties dialog:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-
- table = pref_table_new(group, 2, 2, FALSE, FALSE);
-
-#if 0
- for (i = 0; ExifUIList[i].key; i++)
- {
- gchar *title;
-
- title = exif_get_description_by_key(ExifUIList[i].key);
- exif_item(table, 0, i, title, ExifUIList[i].current,
- &ExifUIList[i].temp);
- g_free(title);
- }
-#endif
+ pref_table_label(table, 0, COLOR_PROFILE_INPUTS + 1, _("Screen:"), 1.0);
+ tabcomp = tab_completion_new(&color_profile_screen_file_entry,
+ options->color_profile.screen_file, NULL, NULL);
+ tab_completion_add_select_button(color_profile_screen_file_entry, _("Select color profile"), FALSE);
+ gtk_widget_set_size_request(color_profile_screen_file_entry, 160, -1);
+ gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3,
+ COLOR_PROFILE_INPUTS + 1, COLOR_PROFILE_INPUTS + 2,
+ GTK_FILL | GTK_EXPAND, 0, 0, 0);
+ gtk_widget_show(tabcomp);
}
/* advanced entry tab */
-static void config_tab_advanced(GtkWidget *notebook)
+static void config_tab_behavior(GtkWidget *notebook)
{
- GtkWidget *label;
GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *group;
GtkWidget *button;
GtkWidget *tabcomp;
GtkWidget *ct_button;
- GtkWidget *table;
GtkWidget *spin;
- GtkWidget *image_overlay_template_view;
- GtkWidget *scrolled;
- GtkTextBuffer *buffer;
- gint i;
-
- vbox = scrolled_notebook_page(notebook, _("Advanced"));
-
- group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL);
-
- c_options->fullscreen.screen = options->fullscreen.screen;
- c_options->fullscreen.above = options->fullscreen.above;
- hbox = fullscreen_prefs_selection_new(_("Location:"), &c_options->fullscreen.screen, &c_options->fullscreen.above);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
- gtk_widget_show(hbox);
-
- pref_checkbox_new_int(group, _("Smooth image flip"),
- options->fullscreen.clean_flip, &c_options->fullscreen.clean_flip);
- pref_checkbox_new_int(group, _("Disable screen saver"),
- options->fullscreen.disable_saver, &c_options->fullscreen.disable_saver);
-
-
- group = pref_group_new(vbox, FALSE, _("Overlay Screen Display"), GTK_ORIENTATION_VERTICAL);
-
- pref_label_new(group, _("Image overlay template"));
-
- scrolled = gtk_scrolled_window_new(NULL, NULL);
- gtk_widget_set_size_request(scrolled, 200, 150);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5);
- gtk_widget_show(scrolled);
- image_overlay_template_view = gtk_text_view_new();
-
-#if GTK_CHECK_VERSION(2,12,0)
- gtk_widget_set_tooltip_markup(image_overlay_template_view,
- _("%name% results in the filename of the picture.\n"
- "Also available: %collection%, %number%, %total%, %date%,\n"
- "%size% (filesize), %width%, %height%, %res% (resolution)\n"
- "To access exif data use the exif name, e. g. %formatted.Camera% is the formatted camera name,\n"
- "%Exif.Photo.DateTimeOriginal% the date of the original shot.\n"
- "%formatted.Camera:20 notation will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.\n"
- "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n"
- "%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength% could show \"1/20s - 400 - 80 mm\" or \"1/200 - 80 mm\",\n"
- "if there's no ISO information in the Exif data.\n"
- "If a line is empty, it is removed. This allows to add lines that totally disappear when no data is available.\n"
-));
-#endif
- gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view);
- gtk_widget_show(image_overlay_template_view);
-
- hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
-
- button = pref_button_new(NULL, NULL, _("Defaults"), FALSE,
- G_CALLBACK(image_overlay_default_template_cb), image_overlay_template_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE,
- G_CALLBACK(image_overlay_help_cb), NULL);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(image_overlay_template_view));
- if (options->image_overlay.template_string) gtk_text_buffer_set_text(buffer, options->image_overlay.template_string, -1);
- g_signal_connect(G_OBJECT(buffer), "changed",
- G_CALLBACK(image_overlay_template_view_changed_cb), image_overlay_template_view);
+ vbox = scrolled_notebook_page(notebook, _("Behavior"));
group = pref_group_new(vbox, FALSE, _("Delete"), GTK_ORIENTATION_VERTICAL);
@@ -1579,125 +1571,11 @@
pref_checkbox_new_int(group, _("Mouse wheel scrolls image"),
options->mousewheel_scrolls, &c_options->mousewheel_scrolls);
- group = pref_group_new(vbox, FALSE, _("Metadata"), GTK_ORIENTATION_VERTICAL);
-
- pref_checkbox_new_int(group, _("Store metadata and cache files in source image's directory"),
- options->metadata.enable_metadata_dirs, &c_options->metadata.enable_metadata_dirs);
-
- ct_button = pref_checkbox_new_int(group, _("Store keywords and comments as XMP tags in image files"),
- options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file);
-
- hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE);
- pref_checkbox_link_sensitivity(ct_button, hbox);
-
- pref_checkbox_new_int(hbox, _("Store keywords and comments also in legacy IPTC tags"),
- options->metadata.save_legacy_IPTC, &c_options->metadata.save_legacy_IPTC);
-
- pref_checkbox_new_int(hbox, _("Warn if the image files are unwritable"),
- options->metadata.warn_on_write_problems, &c_options->metadata.warn_on_write_problems);
-
- pref_checkbox_new_int(hbox, _("Ask before writing to image files"),
- options->metadata.confirm_write, &c_options->metadata.confirm_write);
-
- pref_checkbox_new_int(group, _("Save metadata in GQview legacy metadata format"),
- options->metadata.save_legacy_format, &c_options->metadata.save_legacy_format);
-
- pref_checkbox_new_int(group, _("Write the same keywords and comment to all files in a group"),
- options->metadata.sync_grouped_files, &c_options->metadata.sync_grouped_files);
-
- ct_button = pref_checkbox_new_int(group, _("Write metadata after timeout"),
- options->metadata.confirm_after_timeout, &c_options->metadata.confirm_after_timeout);
-
- hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
- pref_checkbox_link_sensitivity(ct_button, hbox);
-
- pref_spin_new_int(hbox, _("Timeout (seconds):"), NULL, 0, 900, 1,
- options->metadata.confirm_timeout, &c_options->metadata.confirm_timeout);
-
- pref_checkbox_new_int(group, _("Write metadata on image change"),
- options->metadata.confirm_on_image_change, &c_options->metadata.confirm_on_image_change);
-
- pref_checkbox_new_int(group, _("Write metadata on directory change"),
- options->metadata.confirm_on_dir_change, &c_options->metadata.confirm_on_dir_change);
-
group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL);
pref_spin_new_int(group, _("Custom similarity threshold:"), NULL,
0, 100, 1, options->duplicates_similarity_threshold, (int *)&c_options->duplicates_similarity_threshold);
- group = pref_group_new(vbox, FALSE, _("Image loading and caching"), GTK_ORIENTATION_VERTICAL);
-
- pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL,
- 0, 128, 1, options->image.tile_cache_max, &c_options->image.tile_cache_max);
-
- pref_spin_new_int(group, _("Decoded image cache size (Mb):"), NULL,
- 0, 1024, 1, options->image.image_cache_max, &c_options->image.image_cache_max);
-
- pref_spin_new_int(group, _("Image read buffer size (bytes):"), NULL,
- IMAGE_LOADER_READ_BUFFER_SIZE_MIN, IMAGE_LOADER_READ_BUFFER_SIZE_MAX, 512,
- options->image.read_buffer_size, &c_options->image.read_buffer_size);
-
- pref_spin_new_int(group, _("Image idle loop read count:"), NULL,
- IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MIN, IMAGE_LOADER_IDLE_READ_LOOP_COUNT_MAX, 1,
- options->image.idle_read_loop_count, &c_options->image.idle_read_loop_count);
-
-
- group = pref_group_new(vbox, FALSE, _("Color profiles"), GTK_ORIENTATION_VERTICAL);
-#ifndef HAVE_LCMS
- gtk_widget_set_sensitive(pref_group_parent(group), FALSE);
-#endif
-
- table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 2, FALSE, FALSE);
- gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);
-
- label = pref_table_label(table, 0, 0, _("Type"), 0.0);
- pref_label_bold(label, TRUE, FALSE);
-
- label = pref_table_label(table, 1, 0, _("Menu name"), 0.0);
- pref_label_bold(label, TRUE, FALSE);
-
- label = pref_table_label(table, 2, 0, _("File"), 0.0);
- pref_label_bold(label, TRUE, FALSE);
-
- for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
- {
- GtkWidget *entry;
- gchar *buf;
-
- buf = g_strdup_printf("Input %d:", i + COLOR_PROFILE_FILE);
- pref_table_label(table, 0, i + 1, buf, 1.0);
- g_free(buf);
-
- entry = gtk_entry_new();
- gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH);
-// gtk_widget_set_size_request(editor_name_entry[i], 30, -1);
- if (options->color_profile.input_name[i])
- {
- gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]);
- }
- gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i + 1, i + 2,
- GTK_FILL | GTK_EXPAND, 0, 0, 0);
- gtk_widget_show(entry);
- color_profile_input_name_entry[i] = entry;
-
- tabcomp = tab_completion_new(&entry, options->color_profile.input_file[i], NULL, NULL);
- tab_completion_add_select_button(entry, _("Select color profile"), FALSE);
- gtk_widget_set_size_request(entry, 160, -1);
- gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2,
- GTK_FILL | GTK_EXPAND, 0, 0, 0);
- gtk_widget_show(tabcomp);
- color_profile_input_file_entry[i] = entry;
- }
-
- pref_table_label(table, 0, COLOR_PROFILE_INPUTS + 1, _("Screen:"), 1.0);
- tabcomp = tab_completion_new(&color_profile_screen_file_entry,
- options->color_profile.screen_file, NULL, NULL);
- tab_completion_add_select_button(color_profile_screen_file_entry, _("Select color profile"), FALSE);
- gtk_widget_set_size_request(color_profile_screen_file_entry, 160, -1);
- gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3,
- COLOR_PROFILE_INPUTS + 1, COLOR_PROFILE_INPUTS + 2,
- GTK_FILL | GTK_EXPAND, 0, 0, 0);
- gtk_widget_show(tabcomp);
#ifdef DEBUG
group = pref_group_new(vbox, FALSE, _("Debugging"), GTK_ORIENTATION_VERTICAL);
@@ -1776,9 +1654,9 @@
config_tab_image(notebook);
config_tab_windows(notebook);
config_tab_filtering(notebook);
-// config_tab_editors(notebook);
- config_tab_properties(notebook);
- config_tab_advanced(notebook);
+ config_tab_metadata(notebook);
+ config_tab_color(notebook);
+ config_tab_behavior(notebook);
gtk_widget_show(notebook);