diff options
Diffstat (limited to 'frontends/gtk/preferences.c')
-rw-r--r-- | frontends/gtk/preferences.c | 97 |
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); } - |