summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian.dywan@canonical.com>2013-07-07 14:25:55 +0200
committerChristian Dywan <christian.dywan@canonical.com>2013-07-07 14:25:55 +0200
commit8cf55ffb8703411c297d6b350313d091f137be3d (patch)
tree3a25867a1511e98c8bdbf26a93ab0f674995974e
parent0bfe9856f71b231220b0d3311fd75d65c6a254b1 (diff)
downloadmidori-8cf55ffb8703411c297d6b350313d091f137be3d.tar.gz
Implement a default zoom level preference
-rw-r--r--katze/katze-utils.c16
-rw-r--r--midori/midori-preferences.c6
-rw-r--r--midori/midori-settings.vala2
-rw-r--r--midori/midori-view.c3
-rw-r--r--midori/midori-websettings.c9
5 files changed, 35 insertions, 1 deletions
diff --git a/katze/katze-utils.c b/katze/katze-utils.c
index 39f65e81..6f9f4c77 100644
--- a/katze/katze-utils.c
+++ b/katze/katze-utils.c
@@ -705,6 +705,22 @@ katze_property_proxy (gpointer object,
G_CALLBACK (proxy_widget_string_destroy_cb), object);
g_free (notify_property);
}
+ else if (type == G_TYPE_PARAM_DOUBLE)
+ {
+ gdouble value;
+ g_object_get (object, property, &value, NULL);
+
+ widget = gtk_spin_button_new_with_range (
+ G_PARAM_SPEC_DOUBLE (pspec)->minimum,
+ G_PARAM_SPEC_DOUBLE (pspec)->maximum, 1);
+ /* Keep it narrow, 5 + 2 digits are usually fine */
+ gtk_entry_set_width_chars (GTK_ENTRY (widget), 5 + 2);
+ gtk_spin_button_set_digits (GTK_SPIN_BUTTON (widget), 2);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
+ gtk_spin_button_set_increments (GTK_SPIN_BUTTON (widget), 0.1, -0.1);
+ g_signal_connect (widget, "value-changed",
+ G_CALLBACK (proxy_spin_button_changed_cb), object);
+ }
else if (type == G_TYPE_PARAM_FLOAT)
{
gfloat value;
diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c
index 20fb1463..1425878b 100644
--- a/midori/midori-preferences.c
+++ b/midori/midori-preferences.c
@@ -403,6 +403,12 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
gtk_button_set_label (GTK_BUTTON (button), _("Allow scripts to open popups"));
gtk_widget_set_tooltip_text (button, _("Whether scripts are allowed to open popup windows automatically"));
SPANNED_ADD (button);
+ label = gtk_label_new (_("Default Zoom Level"));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ INDENTED_ADD (label);
+ button = katze_property_proxy (settings, "zoom-level", NULL);
+ gtk_widget_set_tooltip_text (button, _("Initial factor to enlarge newly opened tabs by"));
+ SPANNED_ADD (button);
FRAME_NEW (NULL);
button = gtk_label_new (_("Preferred languages"));
diff --git a/midori/midori-settings.vala b/midori/midori-settings.vala
index aa4e61da..3d60a357 100644
--- a/midori/midori-settings.vala
+++ b/midori/midori-settings.vala
@@ -119,6 +119,8 @@ namespace Midori {
/* Since: 0.1.4 */
// [Deprecated (since = "0.4.7")]
public bool find_while_typing { get; set; default = false; }
+ /* Since: 0.5.4 */
+ public double zoom_level { get; set; default = 1.0; }
public bool open_popups_in_tabs { get; set; default = true; }
/* Since: 0.2.0 */
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 0faa703b..539f7c58 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3280,6 +3280,7 @@ _midori_view_set_settings (MidoriView* view,
MidoriWebSettings* settings)
{
gboolean zoom_text_and_images;
+ gdouble zoom_level;
if (view->settings)
g_signal_handlers_disconnect_by_func (view->settings,
@@ -3294,6 +3295,7 @@ _midori_view_set_settings (MidoriView* view,
G_CALLBACK (midori_view_settings_notify_cb), view);
g_object_get (view->settings,
+ "zoom-level", &zoom_level,
"zoom-text-and-images", &zoom_text_and_images,
"close-buttons-on-tabs", &view->close_buttons_on_tabs,
"open-new-pages-in", &view->open_new_pages_in,
@@ -3305,6 +3307,7 @@ _midori_view_set_settings (MidoriView* view,
webkit_web_view_set_full_content_zoom (WEBKIT_WEB_VIEW (view->web_view),
zoom_text_and_images);
#endif
+ midori_view_set_zoom_level (view, zoom_level);
}
/**
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index 5a4b9437..d7a8a172 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -1395,7 +1395,7 @@ midori_settings_new_full (gchar*** extensions)
integer = g_key_file_get_integer (key_file, "settings", property, NULL);
g_object_set (settings, property, integer, NULL);
}
- else if (type == G_TYPE_PARAM_FLOAT)
+ else if (type == G_TYPE_PARAM_FLOAT || type == G_TYPE_PARAM_DOUBLE)
{
number = g_key_file_get_double (key_file, "settings", property, NULL);
g_object_set (settings, property, number, NULL);
@@ -1504,6 +1504,13 @@ midori_settings_save_to_file (MidoriWebSettings* settings,
if (integer != G_PARAM_SPEC_UINT (pspec)->default_value)
g_key_file_set_integer (key_file, "settings", property, integer);
}
+ else if (type == G_TYPE_PARAM_DOUBLE)
+ {
+ gdouble number;
+ g_object_get (settings, property, &number, NULL);
+ if (number != G_PARAM_SPEC_DOUBLE (pspec)->default_value)
+ g_key_file_set_double (key_file, "settings", property, number);
+ }
else if (type == G_TYPE_PARAM_FLOAT)
{
gfloat number;