#define EDITOR_NAME_MAX_LENGTH 32
#define EDITOR_COMMAND_MAX_LENGTH 1024
-static void image_overlay_set_text_colours();
+static void image_overlay_set_text_colors();
GtkWidget *keyword_text;
static void config_tab_keywords_save();
static GtkWidget *sidecar_ext_entry;
static GtkWidget *help_search_engine_entry;
+static GtkWidget *log_window_f1_entry;
+
#define CONFIG_WINDOW_DEF_WIDTH 700
#define CONFIG_WINDOW_DEF_HEIGHT 600
g_free(*option);
*option = nullptr;
- buf = gtk_entry_get_text(GTK_ENTRY(entry));
+ buf = gq_gtk_entry_get_text(GTK_ENTRY(entry));
if (buf && strlen(buf) > 0)
{
if (func)
if (options->image.use_custom_border_color != c_options->image.use_custom_border_color
|| options->image.use_custom_border_color_in_fullscreen != c_options->image.use_custom_border_color_in_fullscreen
- || !gdk_color_equal(&options->image.border_color, &c_options->image.border_color))
+ || !gdk_rgba_equal(&options->image.border_color, &c_options->image.border_color))
{
options->image.use_custom_border_color_in_fullscreen = c_options->image.use_custom_border_color_in_fullscreen;
options->image.use_custom_border_color = c_options->image.use_custom_border_color;
options->image_overlay.background_green = c_options->image_overlay.background_green;
options->image_overlay.background_blue = c_options->image_overlay.background_blue;
options->image_overlay.background_alpha = c_options->image_overlay.background_alpha;
+ options->image_overlay.font = c_options->image_overlay.font;
options->update_on_time_change = c_options->update_on_time_change;
options->duplicates_similarity_threshold = c_options->duplicates_similarity_threshold;
options->show_predefined_keyword_tree = c_options->show_predefined_keyword_tree;
options->expand_menu_toolbar = c_options->expand_menu_toolbar;
+ options->hamburger_menu = c_options->hamburger_menu;
+
+ options->selectable_bars.menu_bar = c_options->selectable_bars.menu_bar;
+ options->selectable_bars.tool_bar = c_options->selectable_bars.tool_bar;
+ options->selectable_bars.status_bar = c_options->selectable_bars.status_bar;
options->marks_save = c_options->marks_save;
options->with_rename = c_options->with_rename;
options->threads.duplicates = c_options->threads.duplicates > 0 ? c_options->threads.duplicates : -1;
+ options->alternate_similarity_algorithm.enabled = c_options->alternate_similarity_algorithm.enabled;
+ options->alternate_similarity_algorithm.grayscale = c_options->alternate_similarity_algorithm.grayscale;
+
#ifdef DEBUG
set_debug_level(debug_c);
+ config_entry_to_option(log_window_f1_entry, &options->log_window.action, nullptr);
#endif
#ifdef HAVE_LCMS
static void config_window_close_cb(GtkWidget *, gpointer)
{
- gtk_widget_destroy(configwindow);
+ gq_gtk_widget_destroy(configwindow);
configwindow = nullptr;
filter_store = nullptr;
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(quality_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(dnd_default_action_selection_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(clipboard_selection_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(zoom_style_selection_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(mouse_buttons_selection_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(thumb_size_menu_cb), NULL);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(stereo_mode_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(video_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
static void safe_delete_view_cb(GtkWidget *, gpointer)
{
- layout_set_path(nullptr, gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry)));
+ layout_set_path(nullptr, gq_gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry)));
}
static void safe_delete_clear_ok_cb(GenericDialog *, gpointer)
entry = gtk_entry_new();
gtk_widget_set_can_focus(entry, FALSE);
gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);
- if (options->file_ops.safe_delete_path) gtk_entry_set_text(GTK_ENTRY(entry), options->file_ops.safe_delete_path);
- gtk_box_pack_start(GTK_BOX(gd->vbox), entry, FALSE, FALSE, 0);
+ if (options->file_ops.safe_delete_path) gq_gtk_entry_set_text(GTK_ENTRY(entry), options->file_ops.safe_delete_path);
+ gq_gtk_box_pack_start(GTK_BOX(gd->vbox), entry, FALSE, FALSE, 0);
gtk_widget_show(entry);
gtk_widget_show(gd->dialog);
}
help_window_show("GuideOptionsOSD.html");
}
-static void image_overlay_set_font_cb(GtkWidget *widget, gpointer)
+static void font_activated_cb(GtkFontChooser *widget, gchar *fontname, gpointer)
{
- GtkWidget *dialog;
- char *font;
- PangoFontDescription *font_desc;
+ g_free(c_options->image_overlay.font);
+ c_options->image_overlay.font = g_strdup(fontname);
+ g_free(fontname);
- dialog = gtk_font_chooser_dialog_new("Image Overlay Font", GTK_WINDOW(gtk_widget_get_toplevel(widget)));
- gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), options->image_overlay.font);
+ gq_gtk_widget_destroy(GTK_WIDGET(widget));
+}
+
+static void font_response_cb(GtkDialog *dialog, gint response_id, gpointer)
+{
+ gchar *font;
+
+ g_free(c_options->image_overlay.font);
+ c_options->image_overlay.font = g_strdup(options->image_overlay.font);
- if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL)
+ if (response_id == GTK_RESPONSE_OK)
{
- font_desc = gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(dialog));
- font = pango_font_description_to_string(font_desc);
+ font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(dialog));
g_free(c_options->image_overlay.font);
c_options->image_overlay.font = g_strdup(font);
g_free(font);
}
- gtk_widget_destroy(dialog);
+ g_object_unref(dialog);
}
-static void image_overlay_set_text_colour_cb(GtkWidget *widget, gpointer)
+static void image_overlay_set_font_cb(GtkWidget *widget, gpointer)
{
GtkWidget *dialog;
- GdkRGBA colour;
-
- dialog = gtk_color_chooser_dialog_new("Image Overlay Text Colour", GTK_WINDOW(gtk_widget_get_toplevel(widget)));
- colour.red = options->image_overlay.text_red;
- colour.green = options->image_overlay.text_green;
- colour.blue = options->image_overlay.text_blue;
- colour.alpha = options->image_overlay.text_alpha;
- gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(dialog), &colour);
- gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(dialog), TRUE);
- if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL)
+ dialog = gtk_font_chooser_dialog_new("Image Overlay Font", GTK_WINDOW(gtk_widget_get_toplevel(widget)));
+ gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
+ gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), options->image_overlay.font);
+
+ g_signal_connect(dialog, "font-activated", G_CALLBACK(font_activated_cb), nullptr);
+ g_signal_connect(dialog, "response", G_CALLBACK(font_response_cb), nullptr);
+
+ gtk_widget_show(dialog);
+}
+
+static void text_color_activated_cb(GtkColorChooser *chooser, GdkRGBA *color, gpointer)
+{
+ c_options->image_overlay.text_red = color->red * 255;
+ c_options->image_overlay.text_green = color->green * 255;
+ c_options->image_overlay.text_blue = color->blue * 255;
+ c_options->image_overlay.text_alpha = color->alpha * 255;
+
+ gq_gtk_widget_destroy(GTK_WIDGET(chooser));
+}
+
+static void text_color_response_cb(GtkDialog *dialog, gint response_id, gpointer)
+{
+ GdkRGBA color;
+
+ c_options->image_overlay.text_red = options->image_overlay.text_red;
+ c_options->image_overlay.text_green = options->image_overlay.text_green;
+ c_options->image_overlay.text_blue = options->image_overlay.text_blue;
+ c_options->image_overlay.text_alpha = options->image_overlay.text_alpha;
+
+ if (response_id == GTK_RESPONSE_OK)
{
- gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(dialog), &colour);
- c_options->image_overlay.text_red = colour.red*255;
- c_options->image_overlay.text_green = colour.green*255;
- c_options->image_overlay.text_blue = colour.blue*255;
- c_options->image_overlay.text_alpha = colour.alpha*255;
+ gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(dialog), &color);
+ c_options->image_overlay.text_red = color.red * 255;
+ c_options->image_overlay.text_green = color.green * 255;
+ c_options->image_overlay.text_blue = color.blue * 255;
+ c_options->image_overlay.text_alpha = color.alpha * 255;
}
- gtk_widget_destroy(dialog);
-}
+ g_object_unref(dialog);
+}
-static void image_overlay_set_background_colour_cb(GtkWidget *widget, gpointer)
+static void image_overlay_set_text_color_cb(GtkWidget *widget, gpointer)
{
GtkWidget *dialog;
- GdkRGBA colour;
-
- dialog = gtk_color_chooser_dialog_new("Image Overlay Background Colour", GTK_WINDOW(gtk_widget_get_toplevel(widget)));
- colour.red = options->image_overlay.background_red;
- colour.green = options->image_overlay.background_green;
- colour.blue = options->image_overlay.background_blue;
- colour.alpha = options->image_overlay.background_alpha;
- gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(dialog), &colour);
+ GdkRGBA color;
+
+ dialog = gtk_color_chooser_dialog_new(_("Image Overlay Text Color"), GTK_WINDOW(gtk_widget_get_toplevel(widget)));
+ color.red = options->image_overlay.text_red;
+ color.green = options->image_overlay.text_green;
+ color.blue = options->image_overlay.text_blue;
+ color.alpha = options->image_overlay.text_alpha;
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(dialog), &color);
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(dialog), TRUE);
- if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL)
+ g_signal_connect(dialog, "color-activated", G_CALLBACK(text_color_activated_cb), nullptr);
+ g_signal_connect(dialog, "response", G_CALLBACK(text_color_response_cb), nullptr);
+
+ gtk_widget_show(dialog);
+}
+
+static void bg_color_activated_cb(GtkColorChooser *chooser, GdkRGBA *color, gpointer)
+{
+ c_options->image_overlay.background_red = color->red * 255;
+ c_options->image_overlay.background_green = color->green * 255;
+ c_options->image_overlay.background_blue = color->blue * 255;
+ c_options->image_overlay.background_alpha = color->alpha * 255;
+
+ gq_gtk_widget_destroy(GTK_WIDGET(chooser));
+}
+
+static void bg_color_response_cb(GtkDialog *dialog, gint response_id, gpointer)
+{
+ GdkRGBA color;
+
+ c_options->image_overlay.background_red = options->image_overlay.background_red;
+ c_options->image_overlay.background_green = options->image_overlay.background_green;
+ c_options->image_overlay.background_blue = options->image_overlay.background_blue;
+ c_options->image_overlay.background_alpha = options->image_overlay.background_alpha;
+
+ if (response_id == GTK_RESPONSE_OK)
{
- gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(dialog), &colour);
- c_options->image_overlay.background_red = colour.red*255;
- c_options->image_overlay.background_green = colour.green*255;
- c_options->image_overlay.background_blue = colour.blue*255;
- c_options->image_overlay.background_alpha = colour.alpha*255;
+ gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(dialog), &color);
+ c_options->image_overlay.background_red = color.red * 255;
+ c_options->image_overlay.background_green = color.green * 255;
+ c_options->image_overlay.background_blue = color.blue * 255;
+ c_options->image_overlay.background_alpha = color.alpha * 255;
}
- gtk_widget_destroy(dialog);
+ gq_gtk_widget_destroy(GTK_WIDGET(dialog));
+}
+
+static void image_overlay_set_background_color_cb(GtkWidget *widget, gpointer)
+{
+ GtkWidget *dialog;
+ GdkRGBA color;
+
+ dialog = gtk_color_chooser_dialog_new(_("Image Overlay Background Color"), GTK_WINDOW(gtk_widget_get_toplevel(widget)));
+ color.red = options->image_overlay.background_red;
+ color.green = options->image_overlay.background_green;
+ color.blue = options->image_overlay.background_blue;
+ color.alpha = options->image_overlay.background_alpha;
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(dialog), &color);
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(dialog), TRUE);
+
+ g_signal_connect(dialog, "color-activated", G_CALLBACK(bg_color_activated_cb), nullptr);
+ g_signal_connect(dialog, "response", G_CALLBACK(bg_color_response_cb), nullptr);
+
+ gtk_widget_show(dialog);
}
static void accel_store_populate()
GtkWidget *scrolled;
GtkWidget *viewport;
- scrolled = gtk_scrolled_window_new(nullptr, nullptr);
+ scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
viewport = gtk_viewport_new(nullptr, nullptr);
gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);
- gtk_container_add(GTK_CONTAINER(scrolled), viewport);
+ gq_gtk_container_add(GTK_WIDGET(scrolled), viewport);
gtk_widget_show(viewport);
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_container_add(GTK_CONTAINER(viewport), vbox);
+ gq_gtk_container_add(GTK_WIDGET(viewport), vbox);
gtk_widget_show(vbox);
return vbox;
{
if (pos == GTK_ENTRY_ICON_PRIMARY)
{
- gtk_entry_set_text(GTK_ENTRY(userdata), HELP_SEARCH_ENGINE);
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), HELP_SEARCH_ENGINE);
}
else
{
- gtk_entry_set_text(GTK_ENTRY(userdata), "");
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), "");
}
}
if (pos == GTK_ENTRY_ICON_PRIMARY)
{
rating_symbol = g_strdup_printf("U+%X", STAR_RATING_STAR);
- gtk_entry_set_text(GTK_ENTRY(userdata), rating_symbol);
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), rating_symbol);
g_free(rating_symbol);
}
else
{
- gtk_entry_set_text(GTK_ENTRY(userdata), "U+");
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), "U+");
gtk_widget_grab_focus(GTK_WIDGET(userdata));
gtk_editable_select_region(GTK_EDITABLE(userdata), 2, 2);
}
if (pos == GTK_ENTRY_ICON_PRIMARY)
{
rating_symbol = g_strdup_printf("U+%X", STAR_RATING_REJECTED);
- gtk_entry_set_text(GTK_ENTRY(userdata), rating_symbol);
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), rating_symbol);
g_free(rating_symbol);
}
else
{
- gtk_entry_set_text(GTK_ENTRY(userdata), "U+");
+ gq_gtk_entry_set_text(GTK_ENTRY(userdata), "U+");
gtk_widget_grab_focus(GTK_WIDGET(userdata));
gtk_editable_select_region(GTK_EDITABLE(userdata), 2, 2);
}
list = gtk_container_get_children(hbox);
hex_code_entry = static_cast<GtkEntry *>(g_list_nth_data(list, 2));
- hex_code_full = g_strdup(gtk_entry_get_text(hex_code_entry));
+ hex_code_full = g_strdup(gq_gtk_entry_get_text(hex_code_entry));
hex_code = g_strsplit(hex_code_full, "+", 2);
if (hex_code[0] && hex_code[1])
pref_label_new(hbox, g_strdup(str->str));
rating_symbol = g_strdup_printf("U+%X", options->star_rating.star);
star_rating_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(star_rating_entry), rating_symbol);
- gtk_box_pack_start(GTK_BOX(hbox), star_rating_entry, FALSE, FALSE, 0);
+ gq_gtk_entry_set_text(GTK_ENTRY(star_rating_entry), rating_symbol);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), star_rating_entry, FALSE, FALSE, 0);
gtk_entry_set_width_chars(GTK_ENTRY(star_rating_entry), 15);
gtk_widget_show(star_rating_entry);
button = pref_button_new(nullptr, nullptr, _("Set"),
G_CALLBACK(star_rating_star_test_cb), hbox);
gtk_widget_set_tooltip_text(button, _("Display selected character"));
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
gtk_widget_set_tooltip_text(star_rating_entry, _("Hexadecimal representation of a Unicode character. A list of all Unicode characters may be found on the Internet."));
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(star_rating_entry),
pref_label_new(hbox, g_strdup(str->str));
rating_symbol = g_strdup_printf("U+%X", options->star_rating.rejected);
star_rating_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(star_rating_entry), rating_symbol);
- gtk_box_pack_start(GTK_BOX(hbox), star_rating_entry, FALSE, FALSE, 0);
+ gq_gtk_entry_set_text(GTK_ENTRY(star_rating_entry), rating_symbol);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), star_rating_entry, FALSE, FALSE, 0);
gtk_entry_set_width_chars(GTK_ENTRY(star_rating_entry), 15);
gtk_widget_show(star_rating_entry);
button = pref_button_new(nullptr, nullptr, _("Set"),
G_CALLBACK(star_rating_rejected_test_cb), hbox);
gtk_widget_set_tooltip_text(button, _("Display selected character"));
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
gtk_widget_set_tooltip_text(star_rating_entry, _("Hexadecimal representation of a Unicode character. A list of all Unicode characters may be found on the Internet."));
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(star_rating_entry),
pref_spacer(group, PREF_PAD_GROUP);
- group = pref_group_new(vbox, FALSE, _("Expand menu and toolbar"), GTK_ORIENTATION_VERTICAL);
+ group = pref_group_new(vbox, FALSE, _("Menu style"), GTK_ORIENTATION_VERTICAL);
+
+ pref_checkbox_new_int(group, _("☰ style menu button (NOTE! Geeqie must be restarted for change to take effect)"),
+ options->hamburger_menu, &c_options->hamburger_menu);
+ gtk_widget_set_tooltip_text(group, _("Use a ☰ style menu button instead of the classic style across the top of the frame"));
+
+ pref_spacer(group, PREF_PAD_GROUP);
+
+ group = pref_group_new(vbox, FALSE, _("Expand toolbar"), GTK_ORIENTATION_VERTICAL);
- pref_checkbox_new_int(group, _("Expand menu and toolbar (NOTE! Geeqie must be restarted for change to take effect)"),
+ pref_checkbox_new_int(group, _("Expand menu/toolbar (NOTE! Geeqie must be restarted for change to take effect)"),
options->expand_menu_toolbar, &c_options->expand_menu_toolbar);
- gtk_widget_set_tooltip_text(group, _("Expand the menu and toolbar to the full width of the window"));
+ gtk_widget_set_tooltip_text(group, _("Expand the menu/toolbar to the full width of the window"));
+
+ pref_spacer(group, PREF_PAD_GROUP);
+
+ group = pref_group_new(vbox, FALSE, _("Hide Selectable Bars"), GTK_ORIENTATION_VERTICAL);
+
+ pref_checkbox_new_int(group, _("Menu bar"),
+ options->selectable_bars.menu_bar, &c_options->selectable_bars.menu_bar);
+
+ pref_checkbox_new_int(group, _("Tool bar"),
+ options->selectable_bars.tool_bar, &c_options->selectable_bars.tool_bar);
+
+ pref_checkbox_new_int(group, _("Status bar"),
+ options->selectable_bars.status_bar, &c_options->selectable_bars.status_bar);
+ gtk_widget_set_tooltip_text(group, _("The Hide Selectable Bars menu item (default keystroke is control-backtick) will toggle the display of the bars selected here"));
pref_spacer(group, PREF_PAD_GROUP);
group = pref_group_new(vbox, FALSE, _("On-line help search engine"), GTK_ORIENTATION_VERTICAL);
help_search_engine_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(help_search_engine_entry), options->help_search_engine);
- gtk_box_pack_start(GTK_BOX(group), help_search_engine_entry, FALSE, FALSE, 0);
+ gq_gtk_entry_set_text(GTK_ENTRY(help_search_engine_entry), options->help_search_engine);
+ gq_gtk_box_pack_start(GTK_BOX(group), help_search_engine_entry, FALSE, FALSE, 0);
gtk_widget_show(help_search_engine_entry);
gtk_widget_set_tooltip_text(help_search_engine_entry, _("The format varies between search engines, e.g the format may be:\nhttps://www.search_engine.com/search?q=site:geeqie.org/help\nhttps://www.search_engine.com/?q=site:geeqie.org/help"));
layout_valid(&lw);
tmp_id = lw->options.id;
- lw->options.id = g_strdup("lw_default");
+ lw->options.id = g_strdup("");
default_path = g_build_filename(get_rc_dir(), DEFAULT_WINDOW_LAYOUT, NULL);
save_default_layout_options_to_file(default_path, options, lw);
popover = gtk_popover_new(parent);
gtk_popover_set_position(GTK_POPOVER (popover), pos);
- gtk_container_add (GTK_CONTAINER(popover), child);
+ gq_gtk_container_add(GTK_WIDGET(popover), child);
gtk_container_set_border_width(GTK_CONTAINER (popover), 6);
gtk_widget_show (child);
GtkWidget *group;
GtkWidget *subgroup;
GtkWidget *button;
+ GtkWidget *checkbox;
GtkWidget *ct_button;
GtkWidget *spin;
ct_button = pref_checkbox_new_int(group, _("Remember session"),
options->save_window_positions, &c_options->save_window_positions);
- button = pref_checkbox_new_int(group, _("Use saved window positions also for new windows"),
+ checkbox = pref_checkbox_new_int(group, _("Use saved window positions also for new windows"),
options->use_saved_window_positions_for_new_windows, &c_options->use_saved_window_positions_for_new_windows);
- pref_checkbox_link_sensitivity(ct_button, button);
+ pref_checkbox_link_sensitivity(ct_button, checkbox);
- button = pref_checkbox_new_int(group, _("Remember window workspace"),
+ checkbox = pref_checkbox_new_int(group, _("Remember window workspace"),
options->save_window_workspace, &c_options->save_window_workspace);
- pref_checkbox_link_sensitivity(ct_button, button);
+ pref_checkbox_link_sensitivity(ct_button, checkbox);
pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"),
options->tools_restore_state, &c_options->tools_restore_state);
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);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
pref_checkbox_new_int(group, _("Smooth image flip"),
scrolled_pre_formatted = osd_new(PRE_FORMATTED_COLUMNS, image_overlay_template_view);
gtk_widget_set_size_request(scrolled_pre_formatted, 200, 150);
- gtk_box_pack_start(GTK_BOX(subgroup), scrolled_pre_formatted, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(subgroup), scrolled_pre_formatted, FALSE, FALSE, 0);
gtk_widget_show(scrolled_pre_formatted);
gtk_widget_show(subgroup);
pref_label_new(group, _("Image overlay template"));
- scrolled = gtk_scrolled_window_new(nullptr, nullptr);
+ scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
gtk_widget_set_size_request(scrolled, 200, 150);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
+ gq_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);
+ gq_gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5);
gtk_widget_show(scrolled);
gtk_widget_set_tooltip_markup(image_overlay_template_view,
_("Extensive formatting options are shown in the Help file"));
- gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view);
+ gq_gtk_container_add(GTK_WIDGET(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(nullptr, GQ_ICON_SELECT_FONT, _("Font"),
G_CALLBACK(image_overlay_set_font_cb), notebook);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
- button = pref_button_new(nullptr, GQ_ICON_SELECT_COLOR, _("Text"),
- G_CALLBACK(image_overlay_set_text_colour_cb), nullptr);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ button = pref_button_new(nullptr, GQ_ICON_SELECT_COLOR, _("Text"), G_CALLBACK(image_overlay_set_text_color_cb), nullptr);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
- button = pref_button_new(nullptr, GQ_ICON_SELECT_COLOR, _("Background"),
- G_CALLBACK(image_overlay_set_background_colour_cb), nullptr);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ button = pref_button_new(nullptr, GQ_ICON_SELECT_COLOR, _("Background"), G_CALLBACK(image_overlay_set_background_color_cb), nullptr);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
- image_overlay_set_text_colours();
+ image_overlay_set_text_colors();
button = pref_button_new(nullptr, nullptr, _("Defaults"),
G_CALLBACK(image_overlay_default_template_cb), image_overlay_template_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_HELP, _("Help"),
G_CALLBACK(image_overlay_help_cb), nullptr);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_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));
group = pref_group_new(vbox, FALSE, _("Exif, XMP or IPTC tags"), GTK_ORIENTATION_VERTICAL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new(_("%Exif.Image.Orientation%"));
- gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
gtk_widget_show(label);
pref_spacer(group,TRUE);
group = pref_group_new(vbox, FALSE, _("Field separators"), GTK_ORIENTATION_VERTICAL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new(_("Separator shown only if both fields are non-null:\n%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%"));
- gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
gtk_widget_show(label);
pref_spacer(group,TRUE);
group = pref_group_new(vbox, FALSE, _("Field maximum length"), GTK_ORIENTATION_VERTICAL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new(_("%path:39%"));
- gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
gtk_widget_show(label);
pref_spacer(group,TRUE);
group = pref_group_new(vbox, FALSE, _("Pre- and post- text"), GTK_ORIENTATION_VERTICAL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new(_("Text shown only if the field is non-null:\n%formatted.Aperture:F no. * setting%\n %formatted.Aperture:10:F no. * setting%"));
- gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
gtk_widget_show(label);
pref_spacer(group,TRUE);
group = pref_group_new(vbox, FALSE, _("Pango markup"), GTK_ORIENTATION_VERTICAL);
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
label = gtk_label_new(_("<b>bold</b>\n<u>underline</u>\n<i>italic</i>\n<s>strikethrough</s>"));
- gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
gtk_widget_show(label);
}
group = pref_group_new(vbox, FALSE, _("Grouping sidecar extensions"), GTK_ORIENTATION_VERTICAL);
sidecar_ext_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(sidecar_ext_entry), options->sidecar.ext);
- gtk_box_pack_start(GTK_BOX(group), sidecar_ext_entry, FALSE, FALSE, 0);
+ gq_gtk_entry_set_text(GTK_ENTRY(sidecar_ext_entry), options->sidecar.ext);
+ gq_gtk_box_pack_start(GTK_BOX(group), sidecar_ext_entry, FALSE, FALSE, 0);
gtk_widget_show(sidecar_ext_entry);
group = pref_group_new(vbox, TRUE, _("File types"), GTK_ORIENTATION_VERTICAL);
G_CALLBACK(filter_disable_cb), frame);
gtk_widget_set_sensitive(frame, !options->file_filter.disable);
- scrolled = gtk_scrolled_window_new(nullptr, nullptr);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
+ scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
+ gq_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_ALWAYS);
- gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
gtk_widget_show(scrolled);
filter_store = gtk_list_store_new(1, G_TYPE_POINTER);
gtk_tree_view_column_set_sort_column_id(column, FILETYPES_COLUMN_SIDECAR);
filter_store_populate();
- gtk_container_add(GTK_CONTAINER(scrolled), filter_view);
+ gq_gtk_container_add(GTK_WIDGET(scrolled), filter_view);
gtk_widget_show(filter_view);
hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
button = pref_button_new(nullptr, nullptr, _("Defaults"),
G_CALLBACK(filter_default_cb), filter_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_REMOVE, _("Remove"),
G_CALLBACK(filter_remove_cb), filter_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_ADD, _("Add"),
G_CALLBACK(filter_add_cb), filter_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
}
{
keywords_find_reset(kfd);
- gtk_entry_set_text(GTK_ENTRY(kfd->progress), _("done"));
+ gq_gtk_entry_set_text(GTK_ENTRY(kfd->progress), _("done"));
gtk_spinner_stop(GTK_SPINNER(kfd->spinner));
gtk_widget_set_sensitive(kfd->group, TRUE);
keywords = keywords->next;
}
- gtk_entry_set_text(GTK_ENTRY(kfd->progress), fd->path);
+ gq_gtk_entry_set_text(GTK_ENTRY(kfd->progress), fd->path);
file_data_unref(fd);
g_list_free_full(keywords, g_free);
return (G_SOURCE_CONTINUE);
}
- else if (kfd->list_dir)
+
+ if (kfd->list_dir)
{
FileData *fd;
if (kfd->list || !gtk_widget_get_sensitive(kfd->button_start)) return;
- path = remove_trailing_slash((gtk_entry_get_text(GTK_ENTRY(kfd->entry))));
+ path = remove_trailing_slash((gq_gtk_entry_get_text(GTK_ENTRY(kfd->entry))));
parse_out_relatives(path);
if (!isdir(path))
label = tab_completion_new(&kfd->entry, path, nullptr, nullptr, nullptr, nullptr);
tab_completion_add_select_button(kfd->entry,_("Select folder") , TRUE);
- gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
gtk_widget_show(label);
pref_checkbox_new_int(kfd->group, _("Include subfolders"), FALSE, &kfd->recurse);
kfd->progress = gtk_entry_new();
gtk_widget_set_can_focus(kfd->progress, FALSE);
gtk_editable_set_editable(GTK_EDITABLE(kfd->progress), FALSE);
- gtk_entry_set_text(GTK_ENTRY(kfd->progress), _("click start to begin"));
- gtk_box_pack_start(GTK_BOX(hbox), kfd->progress, TRUE, TRUE, 0);
+ gq_gtk_entry_set_text(GTK_ENTRY(kfd->progress), _("click start to begin"));
+ gq_gtk_box_pack_start(GTK_BOX(hbox), kfd->progress, TRUE, TRUE, 0);
gtk_widget_show(kfd->progress);
kfd->spinner = gtk_spinner_new();
- gtk_box_pack_start(GTK_BOX(hbox), kfd->spinner, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), kfd->spinner, FALSE, FALSE, 0);
gtk_widget_show(kfd->spinner);
kfd->list = nullptr;
keyword_text = gtk_text_view_new();
gtk_widget_set_size_request(keyword_text, 20, 20);
- scrolled = gtk_scrolled_window_new(nullptr, nullptr);
- gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
+ scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
+ gq_gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
gtk_widget_show(scrolled);
#ifdef HAVE_SPELL
}
#endif
- gtk_container_add(GTK_CONTAINER(scrolled), keyword_text);
+ gq_gtk_container_add(GTK_WIDGET(scrolled), keyword_text);
gtk_widget_show(keyword_text);
gtk_text_view_set_editable(GTK_TEXT_VIEW(keyword_text), TRUE);
g_signal_connect(G_OBJECT(combo), "changed",
G_CALLBACK(intent_menu_cb), option_c);
- gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), combo, column + 1, column + 2, row, row + 1, GTK_SHRINK, static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(combo);
}
#endif
#endif
table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 1, FALSE, FALSE);
- gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP);
+ gtk_grid_set_column_spacing(GTK_GRID(table), PREF_PAD_GAP);
label = pref_table_label(table, 0, 0, _("Type"), GTK_ALIGN_START);
pref_label_bold(label, TRUE, FALSE);
gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH);
if (options->color_profile.input_name[i])
{
- gtk_entry_set_text(GTK_ENTRY(entry), options->color_profile.input_name[i]);
+ gq_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,
- static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), entry, 1, 2, i + 1, i + 2, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(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], nullptr, ".icc", "ICC Files", nullptr);
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,
- static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), tabcomp, 2, 3, i + 1, i + 2, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(tabcomp);
color_profile_input_file_entry[i] = entry;
}
#ifdef HAVE_LCMS
add_intent_menu(table, 0, 1, _("Render Intent:"), options->color_profile.render_intent, &c_options->color_profile.render_intent);
#endif
- gtk_table_attach(GTK_TABLE(table), tabcomp, 1, 2,
- 0, 1,
- static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
+ gq_gtk_grid_attach(GTK_GRID(table), tabcomp, 1, 2, 0, 1, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(0), 0, 0);
gtk_widget_show(tabcomp);
}
tabcomp = tab_completion_new(&safe_delete_path_entry, options->file_ops.safe_delete_path, nullptr, nullptr, nullptr, nullptr);
tab_completion_add_select_button(safe_delete_path_entry, nullptr, TRUE);
- gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0);
gtk_widget_show(tabcomp);
hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
gtk_widget_set_tooltip_markup(spin, _("Set to 0 for unlimited size"));
button = pref_button_new(nullptr, nullptr, _("View"),
G_CALLBACK(safe_delete_view_cb), nullptr);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_CLEAR, nullptr,
G_CALLBACK(safe_delete_clear_cb), nullptr);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
c_options->file_ops.no_trash = options->file_ops.no_trash;
c_options->file_ops.use_system_trash = options->file_ops.use_system_trash;
pref_spin_new_int(group, _("Log Window max. lines:"), nullptr,
1, 99999, 1, options->log_window_lines, &options->log_window_lines);
+
+ hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
+ pref_label_new(hbox, _("Log Window F1 command: "));
+ log_window_f1_entry = gtk_entry_new();
+ gq_gtk_entry_set_text(GTK_ENTRY(log_window_f1_entry), options->log_window.action);
+ gq_gtk_box_pack_start(GTK_BOX(hbox), log_window_f1_entry, FALSE, FALSE, 0);
+ gtk_entry_set_width_chars(GTK_ENTRY(log_window_f1_entry), 15);
+ gtk_widget_show(log_window_f1_entry);
#endif
}
group = pref_group_new(vbox, TRUE, _("Accelerators"), GTK_ORIENTATION_VERTICAL);
- scrolled = gtk_scrolled_window_new(nullptr, nullptr);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
+ scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
+ gq_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_ALWAYS);
- gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0);
gtk_widget_show(scrolled);
accel_store = gtk_tree_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(accel_view), accel_search_function_cb, nullptr, nullptr);
accel_store_populate();
- gtk_container_add(GTK_CONTAINER(scrolled), accel_view);
+ gq_gtk_container_add(GTK_WIDGET(scrolled), accel_view);
gtk_widget_show(accel_view);
hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
button = pref_button_new(nullptr, nullptr, _("Defaults"),
G_CALLBACK(accel_default_cb), accel_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, nullptr, _("Reset selected"),
G_CALLBACK(accel_reset_cb), accel_view);
gtk_widget_set_tooltip_text(button, _("Will only reset changes made before the settings are saved"));
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
button = pref_button_new(nullptr, nullptr, _("Clear selected"),
G_CALLBACK(accel_clear_cb), accel_view);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
}
vbox = scrolled_notebook_page(notebook, _("Toolbar Main"));
toolbardata = toolbar_select_new(lw, TOOLBAR_MAIN);
- gtk_box_pack_start(GTK_BOX(vbox), toolbardata, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(vbox), toolbardata, TRUE, TRUE, 0);
gtk_widget_show(vbox);
}
vbox = scrolled_notebook_page(notebook, _("Toolbar Status"));
toolbardata = toolbar_select_new(lw, TOOLBAR_STATUS);
- gtk_box_pack_start(GTK_BOX(vbox), toolbardata, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(vbox), toolbardata, TRUE, TRUE, 0);
gtk_widget_show(vbox);
}
static void config_tab_advanced(GtkWidget *notebook)
{
- GtkWidget *vbox;
- GtkWidget *group;
- GSList *formats_list;
- GList *extensions_list = nullptr;
gchar **extensions;
- GtkWidget *tabcomp;
GdkPixbufFormat *fm;
gint i;
+ GList *extensions_list = nullptr;
+ GSList *formats_list;
GString *types_string = g_string_new(nullptr);
- GtkWidget *types_string_label;
- GtkWidget *threads_string_label;
+ GtkWidget *alternate_checkbox;
GtkWidget *dupes_threads_spin;
+ GtkWidget *group;
+ GtkWidget *subgroup;
+ GtkWidget *tabcomp;
+ GtkWidget *threads_string_label;
+ GtkWidget *types_string_label;
+ GtkWidget *vbox;
vbox = scrolled_notebook_page(notebook, _("Advanced"));
group = pref_group_new(vbox, FALSE, _("External preview extraction"), GTK_ORIENTATION_VERTICAL);
external_preview_select_entry = gtk_entry_new();
tabcomp = tab_completion_new(&external_preview_select_entry, options->external_preview.select, nullptr, nullptr, nullptr, nullptr);
tab_completion_add_select_button(external_preview_select_entry, _("Select file identification tool"), FALSE);
- gtk_box_pack_start(GTK_BOX(group), tabcomp, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), tabcomp, TRUE, TRUE, 0);
gtk_widget_show(tabcomp);
group = pref_group_new(vbox, FALSE, _("Preview extraction tool"), GTK_ORIENTATION_VERTICAL);
external_preview_extract_entry = gtk_entry_new();
tabcomp = tab_completion_new(&external_preview_extract_entry, options->external_preview.extract, nullptr, nullptr, nullptr, nullptr);
tab_completion_add_select_button(external_preview_extract_entry, _("Select preview extraction tool"), FALSE);
- gtk_box_pack_start(GTK_BOX(group), tabcomp, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(group), tabcomp, TRUE, TRUE, 0);
gtk_widget_show(tabcomp);
gtk_widget_show(vbox);
pref_line(vbox, PREF_PAD_SPACE);
group = pref_group_new(vbox, FALSE, _("Thread pool limits"), GTK_ORIENTATION_VERTICAL);
- threads_string_label = pref_label_new(group, "This option limits the number of threads (or cpu cores)\nthat Geeqie will use when running duplicate checks. The default value is 0, which means all available cores will be used.");
+ threads_string_label = pref_label_new(group, "This option limits the number of threads (or cpu cores) that Geeqie will use when running duplicate checks.\nThe value 0 means all available cores will be used.");
gtk_label_set_line_wrap(GTK_LABEL(threads_string_label), TRUE);
pref_spacer(vbox, PREF_PAD_GROUP);
dupes_threads_spin = pref_spin_new_int(vbox, _("Duplicate check:"), _("max. threads"), 0, get_cpu_cores(), 1, options->threads.duplicates, &c_options->threads.duplicates);
gtk_widget_set_tooltip_markup(dupes_threads_spin, _("Set to 0 for unlimited"));
+
+ pref_spacer(group, PREF_PAD_GROUP);
+
+ pref_line(vbox, PREF_PAD_SPACE);
+
+ group = pref_group_new(vbox, FALSE, _("Alternate similarity alogorithm"), GTK_ORIENTATION_VERTICAL);
+
+ alternate_checkbox = pref_checkbox_new_int(group, _("Enable alternate similarity algorithm"), options->alternate_similarity_algorithm.enabled, &c_options->alternate_similarity_algorithm.enabled);
+
+ subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
+ pref_checkbox_link_sensitivity(alternate_checkbox, subgroup);
+
+ alternate_checkbox = pref_checkbox_new_int(subgroup, _("Use grayscale"), options->alternate_similarity_algorithm.grayscale, &c_options->alternate_similarity_algorithm.grayscale);
+ gtk_widget_set_tooltip_text(alternate_checkbox, _("Reduce fingerprint to grayscale"));
}
/* stereo tab */
if (!c_options) c_options = init_options(nullptr);
- configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, nullptr, _("Preferences"));
+ configwindow = window_new("preferences", PIXBUF_INLINE_ICON_CONFIG, nullptr, _("Preferences"));
DEBUG_NAME(configwindow);
gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(configwindow), "delete_event",
if (options->save_dialog_window_positions)
{
gtk_window_resize(GTK_WINDOW(configwindow), lw->options.preferences_window.w, lw->options.preferences_window.h);
- gtk_window_move(GTK_WINDOW(configwindow), lw->options.preferences_window.x, lw->options.preferences_window.y);
+ gq_gtk_window_move(GTK_WINDOW(configwindow), lw->options.preferences_window.x, lw->options.preferences_window.y);
}
else
{
gtk_container_set_border_width(GTK_CONTAINER(configwindow), PREF_PAD_BORDER);
win_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE);
- gtk_container_add(GTK_CONTAINER(configwindow), win_vbox);
+ gq_gtk_container_add(GTK_WIDGET(configwindow), win_vbox);
gtk_widget_show(win_vbox);
notebook = gtk_notebook_new();
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_LEFT);
gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE);
- gtk_box_pack_start(GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0);
config_tab_general(notebook);
config_tab_image(notebook);
hbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END);
gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP);
- gtk_box_pack_end(GTK_BOX(win_vbox), hbox, FALSE, FALSE, 0);
+ gq_gtk_box_pack_end(GTK_BOX(win_vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
button = pref_button_new(nullptr, GQ_ICON_HELP, _("Help"),
G_CALLBACK(config_window_help_cb), notebook);
- gtk_container_add(GTK_CONTAINER(hbox), button);
+ gq_gtk_container_add(GTK_WIDGET(hbox), button);
gtk_widget_set_can_default(button, TRUE);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_OK, "OK",
G_CALLBACK(config_window_ok_cb), notebook);
- gtk_container_add(GTK_CONTAINER(hbox), button);
+ gq_gtk_container_add(GTK_WIDGET(hbox), button);
gtk_widget_set_can_default(button, TRUE);
gtk_widget_grab_default(button);
gtk_widget_show(button);
button = pref_button_new(nullptr, GQ_ICON_CANCEL, _("Cancel"),
G_CALLBACK(config_window_close_cb), nullptr);
- gtk_container_add(GTK_CONTAINER(hbox), button);
+ gq_gtk_container_add(GTK_WIDGET(hbox), button);
gtk_widget_set_can_default(button, TRUE);
gtk_widget_show(button);
gsize size;
guint32 flags;
- copyright = g_string_new(nullptr);
- copyright = g_string_append(copyright, "This program comes with absolutely no warranty.\nGNU General Public License, version 2 or later.\nSee https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\n\n");
+ copyright = g_string_new("This program comes with absolutely no warranty.\nGNU General Public License, version 2 or later.\nSee https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\n\n");
timezone_path = g_build_filename(get_rc_dir(), TIMEZONE_DATABASE_FILE, NULL);
if (g_file_test(timezone_path, G_FILE_TEST_EXISTS))
}
g_free(timezone_path);
+ copyright = g_string_append(copyright, "\n\nSome icons by https://www.flaticon.com");
+
in_stream_authors = g_resources_open_stream(GQ_RESOURCE_PATH_CREDITS "/authors", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
data_stream = g_data_input_stream_new(in_stream_authors);
g_object_unref(in_stream_translators);
}
-static void image_overlay_set_text_colours()
+static void image_overlay_set_text_colors()
{
c_options->image_overlay.text_red = options->image_overlay.text_red;
c_options->image_overlay.text_green = options->image_overlay.text_green;
generic_dialog_add_message(tz->gd, GQ_ICON_DIALOG_INFO, _("Downloading timezone database"), nullptr, FALSE);
tz->progress = gtk_progress_bar_new();
- gtk_box_pack_start(GTK_BOX(tz->gd->vbox), tz->progress, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(tz->gd->vbox), tz->progress, FALSE, FALSE, 0);
gtk_widget_show(tz->progress);
gtk_widget_show(tz->gd->dialog);