[Xfce4-commits] <ristretto:ristretto-0.0> Implement preferences option for the image-quality
Stephan Arts
noreply at xfce.org
Sun Oct 23 19:12:58 CEST 2011
Updating branch refs/heads/ristretto-0.0
to 97ee4a1faf585e0386bcf05cc64c092fb3ebb5d3 (commit)
from 8ad85cec725c16125ca2ca1ee38d3262a44b6421 (commit)
commit 97ee4a1faf585e0386bcf05cc64c092fb3ebb5d3
Author: Stephan Arts <stephan at xfce.org>
Date: Tue Apr 28 00:01:29 2009 +0200
Implement preferences option for the image-quality
src/image.c | 5 +--
src/picture_viewer.c | 2 -
src/preferences_dialog.c | 90 ++++++++++++++++++++++++++++++++++++++++++----
src/settings.c | 6 ++--
4 files changed, 87 insertions(+), 16 deletions(-)
diff --git a/src/image.c b/src/image.c
index 0b831e0..f3ff26d 100644
--- a/src/image.c
+++ b/src/image.c
@@ -636,13 +636,10 @@ cb_rstto_image_size_prepared (GdkPixbufLoader *loader, gint width, gint height,
if (image->priv->max_size > 0)
{
- g_debug ("FULLSIZE == FALSE");
- gdouble ratio = (gdouble)(image->priv->max_size*1000)/(gdouble)(width * height);
+ gdouble ratio = (gdouble)(image->priv->max_size*1000000)/(gdouble)(width * height);
gdk_pixbuf_loader_set_size (loader, width*ratio, height*ratio);
}
- else
- g_debug ("FULLSIZE == TRUE");
}
/**
diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index 4a3fa34..912122a 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -1017,8 +1017,6 @@ cb_rstto_picture_viewer_queued_repaint (RsttoPictureViewer *viewer)
gdouble x = viewer->hadjustment->value * image_scale;
gdouble y = viewer->vadjustment->value * image_scale;
- g_debug ("O %f:%d:%f", y, widget->allocation.height, image_height);
-
p_tmp_pixbuf = gdk_pixbuf_new_subpixbuf (p_src_pixbuf,
(gint)(x/scale * thumb_scale * image_scale),
(gint)(y/scale * thumb_scale * image_scale),
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
index a8f9e74..a9cda1b 100644
--- a/src/preferences_dialog.c
+++ b/src/preferences_dialog.c
@@ -48,6 +48,8 @@ static void
cb_rstto_preferences_dialog_cache_preload_check_button_toggled (GtkToggleButton *, gpointer);
static void
cb_rstto_preferences_dialog_cache_spin_button_value_changed (GtkSpinButton *, gpointer);
+static void
+cb_rstto_preferences_dialog_image_quality_combo_box_changed (GtkComboBox *, gpointer);
static GtkWidgetClass *parent_class = NULL;
@@ -68,10 +70,15 @@ struct _RsttoPreferencesDialogPriv
GtkWidget *cache_size_label;
GtkWidget *cache_size_unit;
GtkWidget *cache_check_button;
- GtkWidget *cache_alignment;
+ GtkWidget *cache_alignment;
GtkWidget *cache_spin_button;
GtkWidget *cache_preload_check_button;
+ GtkWidget *image_quality_frame;
+ GtkWidget *image_quality_vbox;
+ GtkWidget *image_quality_hbox;
+ GtkWidget *image_quality_label;
+ GtkWidget *image_quality_combo;
} display_tab;
};
@@ -108,7 +115,7 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
RsttoSettings *settings_manager = rstto_settings_new ();
GValue value = {0, };
- GtkWidget *cache_adjustment;
+ GtkObject *cache_adjustment;
GtkWidget *notebook = gtk_notebook_new ();
GtkWidget *scroll_frame, *scroll_vbox;
@@ -127,13 +134,13 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), display_main_vbox, display_main_lbl);
/** Bg-color frame */
- dialog->priv->display_tab.bgcolor_vbox = gtk_vbox_new(FALSE, 0);
+ dialog->priv->display_tab.bgcolor_vbox = gtk_vbox_new (FALSE, 0);
dialog->priv->display_tab.bgcolor_frame = xfce_create_framebox_with_content (_("Background color"),
dialog->priv->display_tab.bgcolor_vbox);
gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.bgcolor_frame, FALSE, FALSE, 0);
dialog->priv->display_tab.bgcolor_override_check_button = gtk_check_button_new_with_label (_("Override background color:"));
- dialog->priv->display_tab.bgcolor_hbox = gtk_hbox_new(FALSE, 4);
+ dialog->priv->display_tab.bgcolor_hbox = gtk_hbox_new (FALSE, 4);
dialog->priv->display_tab.bgcolor_color_button = gtk_color_button_new();
gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_hbox),
@@ -170,7 +177,7 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
dialog->priv->display_tab.cache_vbox);
gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.cache_frame, FALSE, FALSE, 0);
- cache_adjustment = gtk_adjustment_new(RSTTO_DEFAULT_CACHE_SIZE, RSTTO_MIN_CACHE_SIZE, 4096, 1, 0, 0);
+ cache_adjustment = gtk_adjustment_new (RSTTO_DEFAULT_CACHE_SIZE, RSTTO_MIN_CACHE_SIZE, 4096, 1, 0, 0);
dialog->priv->display_tab.cache_size_label = gtk_label_new (_("Cache size"));
dialog->priv->display_tab.cache_size_unit = gtk_label_new (_("MB"));
@@ -219,11 +226,11 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
g_object_get_property (G_OBJECT(settings_manager), "cache-size", &value);
if (g_value_get_uint (&value) < RSTTO_MIN_CACHE_SIZE)
{
- gtk_adjustment_set_value (cache_adjustment, RSTTO_DEFAULT_CACHE_SIZE);
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (cache_adjustment), RSTTO_DEFAULT_CACHE_SIZE);
}
else
{
- gtk_adjustment_set_value (cache_adjustment, (gdouble)g_value_get_uint (&value));
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (cache_adjustment), (gdouble)g_value_get_uint (&value));
}
g_value_unset (&value);
@@ -235,6 +242,58 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
g_signal_connect (G_OBJECT (dialog->priv->display_tab.cache_spin_button),
"value-changed", (GCallback)cb_rstto_preferences_dialog_cache_spin_button_value_changed, dialog);
+/** Image-quality frame */
+ dialog->priv->display_tab.image_quality_vbox = gtk_vbox_new(FALSE, 0);
+ dialog->priv->display_tab.image_quality_frame = xfce_create_framebox_with_content (_("Quality"),
+ dialog->priv->display_tab.image_quality_vbox);
+ gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.image_quality_frame, FALSE, FALSE, 0);
+
+ dialog->priv->display_tab.image_quality_label = gtk_label_new (_("Maximum render quality:"));
+ dialog->priv->display_tab.image_quality_hbox= gtk_hbox_new (FALSE, 4);
+ dialog->priv->display_tab.image_quality_combo= gtk_combo_box_new_text ();
+
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), "unlimited");
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), "1 MP");
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), "2 MP");
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), "4 MP");
+ gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), "8 MP");
+
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.image_quality_vbox),
+ dialog->priv->display_tab.image_quality_hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.image_quality_hbox),
+ dialog->priv->display_tab.image_quality_label, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.image_quality_hbox),
+ dialog->priv->display_tab.image_quality_combo, FALSE, FALSE, 0);
+ /* set current value */
+ g_value_init (&value, G_TYPE_UINT);
+ g_object_get_property (G_OBJECT(settings_manager), "image-quality", &value);
+ switch (g_value_get_uint (&value))
+ {
+ case 0:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 0);
+ break;
+ case 1:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 1);
+ break;
+ case 2:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 2);
+ break;
+ case 4:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 4);
+ break;
+ case 8:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 8);
+ break;
+ default:
+ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->display_tab.image_quality_combo), 2);
+ break;
+ }
+
+ /* connect signals */
+ g_signal_connect (G_OBJECT (dialog->priv->display_tab.image_quality_combo),
+ "changed", (GCallback)cb_rstto_preferences_dialog_image_quality_combo_box_changed, dialog);
+
+
/*******************/
/** Slideshow tab **/
/*******************/
@@ -446,3 +505,20 @@ cb_rstto_preferences_dialog_cache_spin_button_value_changed (GtkSpinButton *butt
g_value_unset (&value);
}
+
+static void
+cb_rstto_preferences_dialog_image_quality_combo_box_changed (GtkComboBox *combo_box,
+ gpointer user_data)
+{
+ RsttoPreferencesDialog *dialog = GTK_WIDGET (user_data);
+ RsttoSettings *settings = rstto_settings_new();
+
+ GValue value = {0, };
+ g_value_init (&value, G_TYPE_UINT);
+
+ g_value_set_uint (&value, (guint)gtk_combo_box_get_active (combo_box));
+
+ g_object_set_property (G_OBJECT (settings), "image-quality", &value);
+
+ g_value_unset (&value);
+}
diff --git a/src/settings.c b/src/settings.c
index e8e3370..39d9817 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -138,7 +138,7 @@ rstto_settings_init (GObject *object)
settings->priv->slideshow_timeout = 5000;
settings->priv->bgcolor = g_new0 (GdkColor, 1);
- settings->priv->image_quality = 2000;
+ settings->priv->image_quality = 2;
xfconf_g_property_bind (settings->priv->channel, "/window/width", G_TYPE_UINT, settings, "window-width");
xfconf_g_property_bind (settings->priv->channel, "/window/height", G_TYPE_UINT, settings, "window-height");
@@ -251,8 +251,8 @@ rstto_settings_class_init (GObjectClass *object_class)
"",
"",
0,
- G_MAXUINT,
- 2000,
+ 50,
+ 2,
G_PARAM_READWRITE);
g_object_class_install_property (object_class,
PROP_IMAGE_QUALITY,
More information about the Xfce4-commits
mailing list