[eog] Bind zoom multiplier to GSettings instead of setting it by hand
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] Bind zoom multiplier to GSettings instead of setting it by hand
- Date: Sat, 26 Jun 2010 16:11:17 +0000 (UTC)
commit 0cadaebd5c7561991eceaf3ed9af32f50e63b1e9
Author: Felix Riemann <friemann gnome org>
Date: Sat Jun 26 17:47:05 2010 +0200
Bind zoom multiplier to GSettings instead of setting it by hand
Another callback less in EogWindow.
src/eog-scroll-view.c | 17 ++++++++++++++++-
src/eog-window.c | 32 ++------------------------------
2 files changed, 18 insertions(+), 31 deletions(-)
---
diff --git a/src/eog-scroll-view.c b/src/eog-scroll-view.c
index 86942a2..d351418 100644
--- a/src/eog-scroll-view.c
+++ b/src/eog-scroll-view.c
@@ -76,7 +76,8 @@ static GtkTargetEntry target_table[] = {
enum {
PROP_0,
PROP_USE_BG_COLOR,
- PROP_BACKGROUND_COLOR
+ PROP_BACKGROUND_COLOR,
+ PROP_ZOOM_MULTIPLIER
};
/* Private part of the EogScrollView structure */
@@ -2325,6 +2326,9 @@ eog_scroll_view_get_property (GObject *object, guint property_id,
//FIXME: This doesn't really handle the NULL color.
g_value_set_boxed (value, priv->background_color);
break;
+ case PROP_ZOOM_MULTIPLIER:
+ g_value_set_double (value, priv->zoom_multiplier);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
@@ -2352,6 +2356,9 @@ eog_scroll_view_set_property (GObject *object, guint property_id,
eog_scroll_view_set_background_color (view, color);
break;
}
+ case PROP_ZOOM_MULTIPLIER:
+ eog_scroll_view_set_zoom_multiplier (view, g_value_get_double (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
@@ -2389,6 +2396,12 @@ eog_scroll_view_class_init (EogScrollViewClass *klass)
g_param_spec_boolean ("use-background-color", NULL, NULL, FALSE,
G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
+ g_object_class_install_property (
+ gobject_class, PROP_ZOOM_MULTIPLIER,
+ g_param_spec_double ("zoom-multiplier", NULL, NULL,
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0.05,
+ G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
+
view_signals [SIGNAL_ZOOM_CHANGED] =
g_signal_new ("zoom_changed",
EOG_TYPE_SCROLL_VIEW,
@@ -2695,4 +2708,6 @@ eog_scroll_view_set_zoom_multiplier (EogScrollView *view,
g_return_if_fail (EOG_IS_SCROLL_VIEW (view));
view->priv->zoom_multiplier = 1.0 + zoom_multiplier;
+
+ g_object_notify (G_OBJECT (view), "zoom-multiplier");
}
diff --git a/src/eog-window.c b/src/eog-window.c
index 01d5a7e..22d5a95 100644
--- a/src/eog-window.c
+++ b/src/eog-window.c
@@ -286,28 +286,6 @@ eog_window_scroll_wheel_zoom_changed_cb (GSettings *settings,
}
static void
-eog_window_zoom_multiplier_changed_cb (GSettings *settings,
- gchar *key,
- gpointer user_data)
-{
- EogWindowPrivate *priv;
- gdouble multiplier = 0.05;
-
- eog_debug (DEBUG_PREFERENCES);
-
- g_return_if_fail (EOG_IS_WINDOW (user_data));
-
- priv = EOG_WINDOW (user_data)->priv;
-
- g_return_if_fail (EOG_IS_SCROLL_VIEW (priv->view));
-
- multiplier = g_settings_get_double (settings, key);
-
- eog_scroll_view_set_zoom_multiplier (EOG_SCROLL_VIEW (priv->view),
- multiplier);
-}
-
-static void
eog_window_transparency_changed_cb (GSettings *settings,
gchar *key,
gpointer user_data)
@@ -4333,6 +4311,8 @@ eog_window_construct_ui (EogWindow *window)
"zoom_changed",
G_CALLBACK (view_zoom_changed_cb),
window);
+ g_settings_bind (priv->view_settings, EOG_CONF_VIEW_ZOOM_MULTIPLIER,
+ priv->view, "zoom-multiplier", G_SETTINGS_BIND_GET);
view_popup = gtk_ui_manager_get_widget (priv->ui_mgr, "/ViewPopup");
eog_scroll_view_set_popup (EOG_SCROLL_VIEW (priv->view),
@@ -4393,9 +4373,6 @@ eog_window_construct_ui (EogWindow *window)
eog_window_scroll_wheel_zoom_changed_cb (priv->view_settings,
EOG_CONF_VIEW_SCROLL_WHEEL_ZOOM
, window);
- eog_window_zoom_multiplier_changed_cb (priv->view_settings,
- EOG_CONF_VIEW_ZOOM_MULTIPLIER,
- window);
eog_window_transparency_changed_cb (priv->view_settings,
EOG_CONF_VIEW_TRANSPARENCY, window);
eog_window_trans_color_changed_cb (priv->view_settings,
@@ -4462,11 +4439,6 @@ eog_window_init (EogWindow *window)
window);
g_signal_connect (priv->view_settings,
- "changed::" EOG_CONF_VIEW_ZOOM_MULTIPLIER,
- (GCallback) eog_window_zoom_multiplier_changed_cb,
- window);
-
- g_signal_connect (priv->view_settings,
"changed::" EOG_CONF_VIEW_TRANSPARENCY,
(GCallback) eog_window_transparency_changed_cb,
window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]