Author: post
Date: 2010-11-07 21:05:44 +0100 (Sun, 07 Nov 2010)
New Revision: 3607

Modified:
   trunk/plugins/resample/resample.c
Log:
Add property that allow overriding the quick parameter in the resampler.

Modified: trunk/plugins/resample/resample.c
===================================================================
--- trunk/plugins/resample/resample.c   2010-11-07 19:38:59 UTC (rev 3606)
+++ trunk/plugins/resample/resample.c   2010-11-07 20:05:44 UTC (rev 3607)
@@ -42,6 +42,7 @@
        gint new_height;
        gfloat scale;
        gboolean bounding_box;
+       gboolean never_quick;
 };
 
 struct _RSResampleClass {
@@ -69,6 +70,7 @@
        PROP_WIDTH,
        PROP_HEIGHT,
        PROP_BOUNDING_BOX,
+       PROP_NEVER_QUICK,
        PROP_SCALE
 };
 
@@ -126,6 +128,11 @@
                        "scale", "scale", "The expected scaling factor in 
bounding box mode",
                        0.0, 100.0, 1.0, G_PARAM_READABLE)
        );
+       g_object_class_install_property(object_class,
+               PROP_NEVER_QUICK, g_param_spec_boolean(
+                       "never-quick", "never-quick", "Never use quick 
function, even if allowed by request",
+                       FALSE, G_PARAM_READWRITE)
+       );
 
        filter_class->name = "Resample filter";
        filter_class->get_image = get_image;
@@ -142,6 +149,7 @@
        resample->new_height = -1;
        resample->bounding_box = FALSE;
        resample->scale = 1.0;
+       resample->never_quick = FALSE;
 }
 
 static void
@@ -160,6 +168,9 @@
                case PROP_BOUNDING_BOX:
                        g_value_set_boolean(value, resample->bounding_box);
                        break;
+               case PROP_NEVER_QUICK:
+                       g_value_set_boolean(value, resample->never_quick);
+                       break;
                case PROP_SCALE:
                        g_value_set_float(value, resample->scale);
                        break;
@@ -197,6 +208,13 @@
                                mask |= recalculate_dimensions(resample);
                        }
                        break;
+               case PROP_NEVER_QUICK:
+                       if (g_value_get_boolean(value) != resample->never_quick)
+                       {
+                               resample->never_quick = 
g_value_get_boolean(value);
+                               mask |= RS_FILTER_CHANGED_PIXELDATA;
+                       }
+                       break;
                default:
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, 
pspec);
        }
@@ -376,7 +394,7 @@
        /* Use compatible (and slow) version if input isn't 3 channels and 
pixelsize 4 */
        gboolean use_compatible = ( ! ( input->pixelsize == 4 && 
input->channels == 3));
 
-       if (rs_filter_request_get_quick(request))
+       if (!resample->never_quick && rs_filter_request_get_quick(request))
        {
                use_fast = TRUE;
                rs_filter_response_set_quick(response);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to