[eog] Have GSettings use enum for transparency style
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] Have GSettings use enum for transparency style
- Date: Wed, 28 Jul 2010 21:09:40 +0000 (UTC)
commit e8f2f6ecdd99dc5dce35a044e84738fe73f937e0
Author: Felix Riemann <friemann gnome org>
Date: Wed Jul 28 22:54:28 2010 +0200
Have GSettings use enum for transparency style
Removes quite a bit of code. Makes it unavailable for
gsettings-data-convert though.
data/eog.convert | 1 -
data/org.gnome.eog.gschema.xml.in.in | 4 +-
src/eog-preferences-dialog.c | 59 +++++++++++++--------------------
src/eog-scroll-view.c | 35 +-------------------
4 files changed, 27 insertions(+), 72 deletions(-)
---
diff --git a/data/eog.convert b/data/eog.convert
index 4f95606..675ede9 100644
--- a/data/eog.convert
+++ b/data/eog.convert
@@ -25,7 +25,6 @@ extrapolate=/apps/eog/view/extrapolate
interpolate=/apps/eog/view/interpolate
scroll-wheel-zoom=/apps/eog/view/scroll_wheel_zoom
trans-color=/apps/eog/view/trans_color
-transparency=/apps/eog/view/transparency
use-background-color=/apps/eog/view/use-background-color
zoom-multiplier=/apps/eog/view/zoom_multiplier
diff --git a/data/org.gnome.eog.gschema.xml.in.in b/data/org.gnome.eog.gschema.xml.in.in
index 521c49d..862bde2 100644
--- a/data/org.gnome.eog.gschema.xml.in.in
+++ b/data/org.gnome.eog.gschema.xml.in.in
@@ -26,8 +26,8 @@
<_summary>Extrapolate Image</_summary>
<_description>Whether the image should be extrapolated on zoom-in. This leads to blurry quality and is somewhat slower than non-extrapolated images.</_description>
</key>
- <key name="transparency" type="s">
- <default>'CHECK_PATTERN'</default>
+ <key name="transparency" enum="org.gnome.eog.EogTransparencyStyle">
+ <default>'checked'</default>
<_summary>Transparency indicator</_summary>
<_description>Determines how transparency should be indicated. Valid values are CHECK_PATTERN, COLOR and NONE. If COLOR is choosen, then the trans-color key determines the used color value.</_description>
</key>
diff --git a/src/eog-preferences-dialog.c b/src/eog-preferences-dialog.c
index 1db3988..f6afb83 100644
--- a/src/eog-preferences-dialog.c
+++ b/src/eog-preferences-dialog.c
@@ -28,6 +28,7 @@
#include "eog-preferences-dialog.h"
#include "eog-plugin-manager.h"
+#include "eog-scroll-view.h"
#include "eog-util.h"
#include "eog-config-keys.h"
@@ -92,21 +93,17 @@ pd_color_to_string_mapping (const GValue *value,
}
static void
-pd_radio_toggle_cb (GtkWidget *widget, gpointer data)
+pd_transp_radio_toggle_cb (GtkWidget *widget, gpointer data)
{
- char *key = NULL;
- char *value = NULL;
+ gpointer value = NULL;
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
return;
- key = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_KEY);
value = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_VALUE);
- if (key == NULL || value == NULL)
- return;
-
- g_settings_set_string (G_SETTINGS (data), key, value);
+ g_settings_set_enum (G_SETTINGS (data), EOG_CONF_VIEW_TRANSPARENCY,
+ GPOINTER_TO_INT (value));
}
static void
@@ -145,7 +142,6 @@ eog_preferences_dialog_constructor (GType type,
GtkWidget *plugin_manager;
GtkWidget *plugin_manager_container;
GObject *object;
- gchar *value;
object = G_OBJECT_CLASS (eog_preferences_dialog_parent_class)->constructor
(type, n_construct_properties, construct_params);
@@ -197,60 +193,51 @@ eog_preferences_dialog_constructor (GType type,
pd_string_to_color_mapping,
pd_color_to_string_mapping,
NULL, NULL);
- g_object_set_data (G_OBJECT (color_radio),
- GCONF_OBJECT_KEY,
- EOG_CONF_VIEW_TRANSPARENCY);
g_object_set_data (G_OBJECT (color_radio),
GCONF_OBJECT_VALUE,
- "COLOR");
+ GINT_TO_POINTER (EOG_TRANSP_COLOR));
g_signal_connect (G_OBJECT (color_radio),
"toggled",
- G_CALLBACK (pd_radio_toggle_cb),
+ G_CALLBACK (pd_transp_radio_toggle_cb),
priv->view_settings);
g_object_set_data (G_OBJECT (checkpattern_radio),
- GCONF_OBJECT_KEY,
- EOG_CONF_VIEW_TRANSPARENCY);
-
- g_object_set_data (G_OBJECT (checkpattern_radio),
GCONF_OBJECT_VALUE,
- "CHECK_PATTERN");
+ GINT_TO_POINTER (EOG_TRANSP_CHECKED));
g_signal_connect (G_OBJECT (checkpattern_radio),
"toggled",
- G_CALLBACK (pd_radio_toggle_cb),
+ G_CALLBACK (pd_transp_radio_toggle_cb),
priv->view_settings);
g_object_set_data (G_OBJECT (background_radio),
- GCONF_OBJECT_KEY,
- EOG_CONF_VIEW_TRANSPARENCY);
-
- g_object_set_data (G_OBJECT (background_radio),
GCONF_OBJECT_VALUE,
- "NONE");
+ GINT_TO_POINTER (EOG_TRANSP_BACKGROUND));
g_signal_connect (G_OBJECT (background_radio),
"toggled",
- G_CALLBACK (pd_radio_toggle_cb),
+ G_CALLBACK (pd_transp_radio_toggle_cb),
priv->view_settings);
- value = g_settings_get_string (priv->view_settings,
- EOG_CONF_VIEW_TRANSPARENCY);
-
- if (g_ascii_strcasecmp (value, "COLOR") == 0) {
+ switch (g_settings_get_enum (priv->view_settings,
+ EOG_CONF_VIEW_TRANSPARENCY))
+ {
+ case EOG_TRANSP_COLOR:
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (color_radio), TRUE);
- }
- else if (g_ascii_strcasecmp (value, "CHECK_PATTERN") == 0) {
+ break;
+ case EOG_TRANSP_CHECKED:
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkpattern_radio), TRUE);
- }
- else {
+ break;
+ default:
+ // Log a warning and use EOG_TRANSP_BACKGROUND as fallback
+ g_warn_if_reached();
+ case EOG_TRANSP_BACKGROUND:
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (background_radio), TRUE);
+ break;
}
- g_free (value);
-
g_settings_bind_with_mapping (priv->view_settings,
EOG_CONF_VIEW_TRANS_COLOR,
color_button, "color",
diff --git a/src/eog-scroll-view.c b/src/eog-scroll-view.c
index e7fcbc6..5a6ba4d 100644
--- a/src/eog-scroll-view.c
+++ b/src/eog-scroll-view.c
@@ -2259,34 +2259,6 @@ sv_color_to_string_mapping (const GValue *value,
return variant;
}
-static gboolean
-sv_string_to_transp_mapping (GValue *value,
- GVariant *variant,
- gpointer user_data)
-{
- const gchar *str;
-
- g_return_val_if_fail (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING), FALSE);
-
- str = g_variant_get_string (variant, NULL);
-
- if (!str)
- return FALSE;
-
- if (g_ascii_strcasecmp (str, "COLOR") == 0)
- g_value_set_enum (value, EOG_TRANSP_COLOR);
- else if (g_ascii_strcasecmp (str, "CHECK_PATTERN") == 0)
- g_value_set_enum (value, EOG_TRANSP_CHECKED);
- else if (g_ascii_strcasecmp (str, "NONE") == 0)
- g_value_set_enum (value, EOG_TRANSP_BACKGROUND);
- else
- return FALSE;
-
- return TRUE;
-}
-
-
-
static void
eog_scroll_view_init (EogScrollView *view)
{
@@ -2400,11 +2372,8 @@ eog_scroll_view_init (EogScrollView *view)
G_SETTINGS_BIND_GET,
sv_string_to_color_mapping,
sv_color_to_string_mapping, NULL, NULL);
- g_settings_bind_with_mapping (settings, EOG_CONF_VIEW_TRANSPARENCY,
- view, "transparency-style",
- G_SETTINGS_BIND_GET,
- sv_string_to_transp_mapping,
- NULL, NULL, NULL);
+ g_settings_bind (settings, EOG_CONF_VIEW_TRANSPARENCY, view,
+ "transparency-style", G_SETTINGS_BIND_GET);
g_settings_bind (settings, EOG_CONF_VIEW_EXTRAPOLATE, view,
"antialiasing-in", G_SETTINGS_BIND_GET);
g_settings_bind (settings, EOG_CONF_VIEW_INTERPOLATE, view,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]