summaryrefslogtreecommitdiff
path: root/frontends/gtk/preferences.c
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/gtk/preferences.c')
-rw-r--r--frontends/gtk/preferences.c97
1 files changed, 49 insertions, 48 deletions
diff --git a/frontends/gtk/preferences.c b/frontends/gtk/preferences.c
index dac4a559d..26d32ee20 100644
--- a/frontends/gtk/preferences.c
+++ b/frontends/gtk/preferences.c
@@ -30,6 +30,7 @@
#include "desktop/searchweb.h"
#include "gtk/compat.h"
+#include "gtk/toolbar_items.h"
#include "gtk/window.h"
#include "gtk/gui.h"
#include "gtk/scaffolding.h"
@@ -411,12 +412,6 @@ TOGGLEBUTTON_SIGNALS(checkHideAdverts, block_advertisements)
/* enable javascript */
TOGGLEBUTTON_SIGNALS(checkEnableJavascript, enable_javascript)
-/* disable plugins */
-TOGGLEBUTTON_SIGNALS(checkDisablePlugins, disable_plugins)
-
-/* high quality image scaling */
-TOGGLEBUTTON_SIGNALS(checkResampleImages, render_resample)
-
/* load and display of images */
G_MODULE_EXPORT void
nsgtk_preferences_comboboxLoadImages_changed(GtkComboBox *combo,
@@ -480,9 +475,6 @@ nsgtk_preferences_comboboxLoadImages_realize(GtkWidget *widget,
/* enable animation */
TOGGLEBUTTON_SIGNALS(checkEnableAnimations, animate_images)
-/* frame time */
-SPINBUTTON_SIGNALS(spinAnimationSpeed, minimum_gif_delay, 100.0)
-
/* Fonts */
/* default font */
@@ -511,7 +503,7 @@ SPINBUTTON_SIGNALS(spinDefaultSize, font_size, 10.0)
G_MODULE_EXPORT void
nsgtk_preferences_fontPreview_clicked(GtkButton *button, struct ppref *priv)
{
- nsgtk_reflow_all_windows();
+ nsgtk_window_update_all();
}
@@ -713,7 +705,7 @@ nsgtk_preferences_checkShowSingleTab_toggled(GtkToggleButton *togglebutton,
{
nsoption_set_bool(show_single_tab,
gtk_toggle_button_get_active(togglebutton));
- nsgtk_reflow_all_windows();
+ nsgtk_window_update_all();
}
G_MODULE_EXPORT void
@@ -735,20 +727,11 @@ G_MODULE_EXPORT void
nsgtk_preferences_comboTabPosition_changed(GtkComboBox *widget,
struct ppref *priv)
{
- struct nsgtk_scaffolding *current;
-
/* set the option */
nsoption_set_int(position_tab, gtk_combo_box_get_active(widget));
- /* update all notebooks in all scaffolds */
- current = nsgtk_scaffolding_iterate(NULL);
- while (current) {
- nsgtk_scaffolding_reset_offset(current);
-
- nsgtk_reflow_all_windows();
-
- current = nsgtk_scaffolding_iterate(current);
- }
+ /* update all windows */
+ nsgtk_window_update_all();
}
G_MODULE_EXPORT void
@@ -791,18 +774,10 @@ G_MODULE_EXPORT void
nsgtk_preferences_comboButtonType_changed(GtkComboBox *widget,
struct ppref *priv)
{
- struct nsgtk_scaffolding *current;
-
nsoption_set_int(button_type, gtk_combo_box_get_active(widget) + 1);
- current = nsgtk_scaffolding_iterate(NULL);
- while (current != NULL) {
- nsgtk_scaffolding_reset_offset(current);
-
- nsgtk_scaffolding_toolbars(current, nsoption_int(button_type));
-
- current = nsgtk_scaffolding_iterate(current);
- }
+ /* update all windows to adopt change */
+ nsgtk_window_update_all();
}
G_MODULE_EXPORT void
@@ -855,15 +830,33 @@ TOGGLEBUTTON_SIGNALS(checkUrlSearch, search_url_bar)
G_MODULE_EXPORT void
nsgtk_preferences_comboSearch_changed(GtkComboBox *widget, struct ppref *priv)
{
- int provider;
+ gboolean set;
+ GtkTreeIter iter;
+ GtkTreeModel* model;
+ gchar* provider;
+ const char* defprovider;
- provider = gtk_combo_box_get_active(widget);
+ set = gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter);
+ if (!set) {
+ return;
+ }
- /* set the option */
- nsoption_set_int(search_provider, provider);
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget));
+ gtk_tree_model_get(model, &iter, 0, &provider, -1);
/* set search provider */
search_web_select_provider(provider);
+
+ /* set to default option if the default provider is selected */
+ if ((search_web_iterate_providers(-1, &defprovider) != -1) &&
+ (strcmp(provider, defprovider) == 0)) {
+ free(provider);
+ /* use default option */
+ provider = NULL;
+ }
+
+ /* set the option which takes owership of the provider allocation */
+ nsoption_set_charp(search_web_provider, provider);
}
G_MODULE_EXPORT void
@@ -871,20 +864,29 @@ nsgtk_preferences_comboSearch_realize(GtkWidget *widget, struct ppref *priv)
{
int iter;
const char *name;
- int provider = nsoption_int(search_provider);
-
- if (priv->search_providers != NULL) {
- gtk_list_store_clear(priv->search_providers);
- for (iter = search_web_iterate_providers(0, &name);
- iter != -1;
- iter = search_web_iterate_providers(iter, &name)) {
- gtk_list_store_insert_with_values(priv->search_providers,
- NULL, -1,
- 0, name, -1);
+ const char *provider;
+ int provider_idx = 0;
+
+ if (priv->search_providers == NULL) {
+ return;
+ }
+ gtk_list_store_clear(priv->search_providers);
+
+ provider = nsoption_charp(search_web_provider);
+
+ iter = search_web_iterate_providers(-1, &name);
+ while (iter != -1) {
+ gtk_list_store_insert_with_values(priv->search_providers,
+ NULL, -1,
+ 0, name, -1);
+ if ((provider != NULL) && (strcmp(name, provider) == 0)) {
+ provider_idx = iter;
}
+ iter = search_web_iterate_providers(iter, &name);
}
- gtk_combo_box_set_active(GTK_COMBO_BOX(widget), provider);
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), provider_idx);
}
@@ -1028,4 +1030,3 @@ GtkWidget* nsgtk_preferences(struct browser_window *bw, GtkWindow *parent)
return GTK_WIDGET(priv->dialog);
}
-