Author: akv
Date: 2012-10-28 20:11:44 +0100 (Sun, 28 Oct 2012)
New Revision: 4296

Modified:
   branches/4175-enfuse/
   branches/4175-enfuse/librawstudio/rs-settings.c
   branches/4175-enfuse/plugins/denoise/denoise.c
   branches/4175-enfuse/plugins/load-rawspeed/rawstudio-plugin.c
   branches/4175-enfuse/plugins/meta-tiff/tiff-meta.c
   branches/4175-enfuse/src/gtk-interface.c
   branches/4175-enfuse/src/rs-preview-widget.c
Log:
Merged with trunk


Property changes on: branches/4175-enfuse
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:4176-4279
   + /trunk:4176-4294

Modified: branches/4175-enfuse/librawstudio/rs-settings.c
===================================================================
--- branches/4175-enfuse/librawstudio/rs-settings.c     2012-10-28 19:08:45 UTC 
(rev 4295)
+++ branches/4175-enfuse/librawstudio/rs-settings.c     2012-10-28 19:11:44 UTC 
(rev 4296)
@@ -138,13 +138,13 @@
                PROP_DENOISE_LUMA, g_param_spec_float(
                        /* @TRANSLATORS: "Denoi" is short version of "Denoise". 
You cannot use more than 5 characters for this! */
                        "denoise_luma", _("Denoi"), _("Light Denoising"),
-                       0.0, 100.0, 0.0, G_PARAM_READWRITE)
+                       0.0, 200.0, 0.0, G_PARAM_READWRITE)
        );
        g_object_class_install_property(object_class,
                PROP_DENOISE_CHROMA, g_param_spec_float(
                        /* @TRANSLATORS: "ColDn" is short version of "Colour 
Denoise". You cannot use more than 5 characters for this! */
                        "denoise_chroma", _("ColDn"), _("Colour Denoising"),
-                       0.0, 100.0, 0.0, G_PARAM_READWRITE)
+                       0.0, 200.0, 0.0, G_PARAM_READWRITE)
        );
        g_object_class_install_property(object_class,
                PROP_TCA_KR, g_param_spec_float(

Modified: branches/4175-enfuse/plugins/denoise/denoise.c
===================================================================
--- branches/4175-enfuse/plugins/denoise/denoise.c      2012-10-28 19:08:45 UTC 
(rev 4295)
+++ branches/4175-enfuse/plugins/denoise/denoise.c      2012-10-28 19:11:44 UTC 
(rev 4296)
@@ -288,9 +288,9 @@
        denoise->info.sigmaLuma = ((float) denoise->denoise_luma * scale) / 3.0;
        denoise->info.sigmaChroma = ((float) denoise->denoise_chroma * scale) / 
1.5;
        denoise->info.sharpenLuma = 1.5f * (float) denoise->sharpen / 20.0f;
-       denoise->info.sharpenLuma *= fmin(1.0f, 0.25 + ((100.0f - 
denoise->denoise_luma) / 100.0f));
+       denoise->info.sharpenLuma *= fminf(1.0f, 0.25 + ((100.0f - 
fminf(100.0f,denoise->denoise_luma)) / 100.0f));
        denoise->info.sharpenCutoffLuma = 0.07f * scale;
-       denoise->info.betaLuma = 1.0 + denoise->info.sigmaLuma * 0.030;
+       denoise->info.betaLuma = 1.0 + denoise->info.sigmaLuma * 0.015;
        denoise->info.sharpenChroma = 0.0f;
        denoise->info.sharpenMinSigmaLuma = denoise->info.sigmaLuma * 1.0;
        denoise->info.sharpenMaxSigmaLuma = denoise->info.sharpenMinSigmaLuma + 
denoise->info.sharpenLuma * 3.0f;

Modified: branches/4175-enfuse/plugins/load-rawspeed/rawstudio-plugin.c
===================================================================
--- branches/4175-enfuse/plugins/load-rawspeed/rawstudio-plugin.c       
2012-10-28 19:08:45 UTC (rev 4295)
+++ branches/4175-enfuse/plugins/load-rawspeed/rawstudio-plugin.c       
2012-10-28 19:11:44 UTC (rev 4296)
@@ -32,5 +32,6 @@
        rs_filetype_register_loader(".pef", "Pentax raw", load_rawspeed, 5, 
RS_LOADER_FLAGS_RAW);
 //     rs_filetype_register_loader(".raw", "Panasonic raw", load_rawspeed, 5, 
RS_LOADER_FLAGS_RAW);
        rs_filetype_register_loader(".rw2", "Panasonic raw v2", load_rawspeed, 
5, RS_LOADER_FLAGS_RAW);
+       rs_filetype_register_loader(".rwl", "Leica RAW", load_rawspeed, 5, 
RS_LOADER_FLAGS_RAW);
        rs_filetype_register_loader(".srw", "Samsung SRW", load_rawspeed, 5, 
RS_LOADER_FLAGS_RAW);
 }

Modified: branches/4175-enfuse/plugins/meta-tiff/tiff-meta.c
===================================================================
--- branches/4175-enfuse/plugins/meta-tiff/tiff-meta.c  2012-10-28 19:08:45 UTC 
(rev 4295)
+++ branches/4175-enfuse/plugins/meta-tiff/tiff-meta.c  2012-10-28 19:11:44 UTC 
(rev 4296)
@@ -620,7 +620,8 @@
                                    || g_str_equal(meta->model_ascii, "NIKON 
D5000")
                                    || g_str_equal(meta->model_ascii, "NIKON 1 
J1")
                                    || g_str_equal(meta->model_ascii, "NIKON 1 
V1")
-                                   || g_str_equal(meta->model_ascii, "NIKON 
D7000"))
+                                   || g_str_equal(meta->model_ascii, "NIKON 
D7000")
+                                   || g_str_equal(meta->model_ascii, "COOLPIX 
P7700"))
                                {
                                        meta->cam_mul[0] = 
get_rational(rawfile, offset);
                                        meta->cam_mul[2] = 
get_rational(rawfile, offset+8);
@@ -1497,8 +1498,9 @@
                                        case MAKE_SONY:
                                                makernote_sony(rawfile, 
ifd.value_offset, meta);
                                                break;
+                                       case MAKE_LEICA:
                                        case MAKE_PANASONIC:
-                                               if (raw_strcmp(rawfile, 
ifd.value_offset, "Panasonic", 9))
+                                               if (raw_strcmp(rawfile, 
ifd.value_offset, "Panasonic", 9) || raw_strcmp(rawfile, ifd.value_offset, 
"LEICA", 5))
                                                        
makernote_panasonic(rawfile, ifd.value_offset+12, meta);
                                                break;
                                        default:
@@ -1602,8 +1604,9 @@
                case MAKE_SONY:
                        makernote_sony(maker_raw, org_offset, meta);
                        break;
+               case MAKE_LEICA:
                case MAKE_PANASONIC:
-                       if (raw_strcmp(maker_raw, org_offset, "Panasonic", 9))
+                       if (raw_strcmp(maker_raw, org_offset, "Panasonic", 9) 
|| raw_strcmp(maker_raw, org_offset, "LEICA", 5))
                                makernote_panasonic(maker_raw, org_offset+12, 
meta);
                        break;
                default:
@@ -1846,7 +1849,7 @@
                        exif_reader(rawfile, offset, meta);
                if (meta->make == MAKE_KODAK && g_str_equal(meta->model_ascii, 
"DCS Pro 14N"))
                        exif_reader(rawfile, offset, meta);
-               if (meta->make == MAKE_PANASONIC)
+               if (meta->make == MAKE_PANASONIC || meta->make == MAKE_LEICA)
                        ifd_panasonic(rawfile, offset, meta);
 
                if (offset == next) break; /* avoid infinite loops */

Modified: branches/4175-enfuse/src/gtk-interface.c
===================================================================
--- branches/4175-enfuse/src/gtk-interface.c    2012-10-28 19:08:45 UTC (rev 
4295)
+++ branches/4175-enfuse/src/gtk-interface.c    2012-10-28 19:11:44 UTC (rev 
4296)
@@ -263,11 +263,11 @@
        rs->photo->proposed_crop = NULL;
        rs_preview_widget_unlock_renderer(RS_PREVIEW_WIDGET(rs->preview));
        rs_preview_widget_update(RS_PREVIEW_WIDGET(rs->preview), TRUE);
-       GTK_CATCHUP();
+       GUI_CATCHUP();
        if (rs->photo && NULL==rs->photo->crop && rs->photo->proposed_crop)
                rs_photo_set_crop(rs->photo, rs->photo->proposed_crop);
        rs_core_actions_update_menu_items(rs);
-       GTK_CATCHUP();
+       GUI_CATCHUP();
        if (NULL != rs->post_open_event)
        {
                rs_core_action_group_activate(rs->post_open_event);

Modified: branches/4175-enfuse/src/rs-preview-widget.c
===================================================================
--- branches/4175-enfuse/src/rs-preview-widget.c        2012-10-28 19:08:45 UTC 
(rev 4295)
+++ branches/4175-enfuse/src/rs-preview-widget.c        2012-10-28 19:11:44 UTC 
(rev 4296)
@@ -59,6 +59,7 @@
        DRAW_ROI         = 0x11C0, /* 0001 0001 1100 0000 */
 
        MOVE             = 0x4000, /* 0100 0000 0000 0000 */
+       SCROLL           = 0x8000, /* 8000 0000 0000 0000 */
 } STATE;
 
 /* In win32 windef32.h will define both near and NEAR */
@@ -218,6 +219,7 @@
        RSFilter *navigator_transform_display;
        RSFilter *navigator_filter_end;
        GtkWidget *navigator;
+       RSNavigator *rs_navigator;
 
        RSColorSpace *display_color_space;
        RSColorSpace *exposure_color_space;
@@ -585,6 +587,48 @@
        }
        gdk_threads_leave();
 }
+
+static void
+rs_preview_widget_set_scrollbars(RSPreviewWidget *preview, int width, int 
height, int real_x, int real_y, gboolean force_pos)
+{
+       g_assert(RS_IS_PREVIEW_WIDGET(preview));
+       gdouble v_val, h_val, v_val_new, h_val_new;
+
+       g_object_get(G_OBJECT(preview->hadjustment), "upper", &h_val, NULL);
+       g_object_get(G_OBJECT(preview->vadjustment), "upper", &v_val, NULL);
+
+       /* Update scrollbars to reflect the change */
+       h_val_new = (gdouble) width;
+       g_object_set(G_OBJECT(preview->hadjustment), "upper", h_val_new, NULL);
+       v_val_new = (gdouble) height;
+       g_object_set(G_OBJECT(preview->vadjustment), "upper", v_val_new, NULL);
+
+       /* Modify adjusters, if size changed */
+       if (force_pos || fabs(v_val_new-v_val) > 1.0 || fabs(h_val_new-h_val) > 
1.0)
+       {
+               const gdouble hpage = 
gtk_adjustment_get_page_size(preview->hadjustment);
+               const gdouble vpage = 
gtk_adjustment_get_page_size(preview->vadjustment);
+               gdouble hvalue = MIN((double)width-hpage+10,((gdouble) real_x) 
- hpage/2.0);
+               gdouble vvalue = MIN((double)height-vpage+10,((gdouble) real_y) 
- vpage/2.0);
+
+               g_object_set(preview->hadjustment, "value", hvalue, NULL);
+               g_object_set(preview->vadjustment, "value", vvalue, NULL);
+       } 
+
+       if (preview->navigator)
+       {
+                       /* Build navigator */
+               rs_navigator_set_adjustments(preview->rs_navigator, 
preview->vadjustment, preview->hadjustment);
+               rs_navigator_set_source_filter(preview->rs_navigator, 
preview->navigator_filter_end);
+       }
+       rs_filter_set_recursive(preview->navigator_filter_end,
+                       "orientation", preview->photo->orientation,
+                       "rectangle", rs_photo_get_crop(preview->photo),
+                       "angle", rs_photo_get_angle(preview->photo),
+                       "settings", 
preview->photo->settings[preview->snapshot[0]],
+                       NULL);
+}
+
 /**
  * Select zoom-to-fit of a RSPreviewWidget
  * @param preview A RSPreviewWidget
@@ -641,62 +685,37 @@
                /* Disable resample filter */
                rs_filter_set_enabled(preview->filter_resample[0], FALSE);
 
+               gdk_window_set_cursor(GTK_WIDGET(rawstudio_window)->window, 
NULL);
+
+               gtk_widget_show(preview->vscrollbar);
+               gtk_widget_show(preview->hscrollbar);
+
+               gdk_window_set_cursor(GTK_WIDGET(rawstudio_window)->window, 
NULL);
+
+               preview->rs_navigator = rs_navigator_new();
+               gtk_widget_set_size_request(GTK_WIDGET(preview->rs_navigator), 
NAVIGATOR_WIDTH, NAVIGATOR_HEIGHT);
+
+               preview->navigator = rs_toolbox_add_widget(preview->toolbox, 
GTK_WIDGET(preview->rs_navigator), _("Display Navigation"));
+               rs_navigator_set_preview_widget(preview->rs_navigator, preview);
+               rs_navigator_set_colorspace(preview->rs_navigator, 
preview->display_color_space);
+               gtk_widget_show_all(GTK_WIDGET(preview->navigator));
                if (preview->photo)
                {
                        rs_filter_get_size_simple(preview->filter_end[0], 
preview->request[0], &width, &height);
-                       /* Update scrollbars to reflect the change */
-                       gdouble val;
-                       val = (gdouble) width;
-                       g_object_set(G_OBJECT(preview->hadjustment), "upper", 
val, NULL);
-                       val = (gdouble) height;
-                       g_object_set(G_OBJECT(preview->vadjustment), "upper", 
val, NULL);
-
-                       const gdouble hpage = 
gtk_adjustment_get_page_size(preview->hadjustment);
-                       const gdouble vpage = 
gtk_adjustment_get_page_size(preview->vadjustment);
                        if (!inside_image)
                        {
                                real_x = 0.5 * width;
                                real_y = 0.5 * height;
                        }
-                       gdouble hvalue = MIN((double)width-hpage+10,((gdouble) 
real_x) - hpage/2.0);
-                       gdouble vvalue = MIN((double)height-vpage+10,((gdouble) 
real_y) - vpage/2.0);
-
-                       /* Modify adjusters */
-                       g_object_set(preview->hadjustment, "value", hvalue, 
NULL);
-                       g_object_set(preview->vadjustment, "value", vvalue, 
NULL);
-
-                       /* Build navigator */
-                       rs_filter_set_recursive(preview->navigator_filter_end,
-                               "orientation", preview->photo->orientation,
-                               "rectangle", rs_photo_get_crop(preview->photo),
-                               "angle", rs_photo_get_angle(preview->photo),
-                               "settings", 
preview->photo->settings[preview->snapshot[0]],
-                               NULL);
+                       rs_preview_widget_set_scrollbars(preview, width, 
height, real_x, real_y, inside_image);
                }
-
-               gdk_window_set_cursor(GTK_WIDGET(rawstudio_window)->window, 
NULL);
-
-               gtk_widget_show(preview->vscrollbar);
-               gtk_widget_show(preview->hscrollbar);
-
-               gdk_window_set_cursor(GTK_WIDGET(rawstudio_window)->window, 
NULL);
-
-               RSNavigator *navigator = rs_navigator_new();
-               rs_navigator_set_adjustments(navigator, preview->vadjustment, 
preview->hadjustment);
-               rs_navigator_set_source_filter(navigator, 
preview->navigator_filter_end);
-               gtk_widget_set_size_request(GTK_WIDGET(navigator), 
NAVIGATOR_WIDTH, NAVIGATOR_HEIGHT);
-
-               preview->navigator = rs_toolbox_add_widget(preview->toolbox, 
GTK_WIDGET(navigator), _("Display Navigation"));
-               rs_navigator_set_preview_widget(navigator, preview);
-               rs_navigator_set_colorspace(navigator, 
preview->display_color_space);
-               gtk_widget_show_all(GTK_WIDGET(preview->navigator));
        }
 
        preview->zoom_to_fit = zoom_to_fit;
        GtkToggleAction *fit_action = 
GTK_TOGGLE_ACTION(rs_core_action_group_get_action("ZommToFit"));
        gtk_toggle_action_set_active(fit_action, zoom_to_fit);
        rs_filter_set_recursive(RS_FILTER(preview->filter_input), 
"demosaic-allow-downscale",  preview->zoom_to_fit, NULL);
-       GTK_CATCHUP();
+       GUI_CATCHUP();
        rs_preview_widget_quick_end(preview);
 }
 
@@ -817,8 +836,18 @@
                NULL);
 
        if (preview->photo)
+       {
                g_signal_connect(G_OBJECT(preview->photo), "settings-changed", 
G_CALLBACK(settings_changed), preview);
 
+               /* Update scrollbars */
+               if (!preview->zoom_to_fit)
+               {
+                       gint width, height;
+                       rs_filter_get_size_simple(preview->filter_end[0], 
preview->request[0], &width, &height);
+                       rs_preview_widget_set_scrollbars(preview, width, 
height, 0.5*width, 0.5*height, FALSE);
+               }
+       }
+
        /* Mark everything as dirty */
        for(view=0;view<preview->views;view++)
                DIRTY(preview->dirty[view], ALL);
@@ -1401,7 +1430,7 @@
        }
 
        rs_preview_widget_update(preview, TRUE);
-       GTK_CATCHUP();
+       GUI_CATCHUP();
 }
 
 static void
@@ -1669,6 +1698,8 @@
        RSPreviewWidget *preview = RS_PREVIEW_WIDGET(user_data);
 
        rs_preview_widget_quick_start(preview, TRUE);
+       if (preview->state == WB_PICKER)
+               preview->state = SCROLL;
 
        return FALSE;
 }
@@ -1678,7 +1709,9 @@
 {
        RSPreviewWidget *preview = RS_PREVIEW_WIDGET(user_data);
 
-       GTK_CATCHUP();
+       if (preview->state == SCROLL)
+               preview->state = WB_PICKER;
+       GUI_CATCHUP();
        rs_preview_widget_quick_end(preview);
 
        return FALSE;
@@ -1688,7 +1721,6 @@
 adjustment_changed(GtkAdjustment *adjustment, gpointer user_data)
 {
        RSPreviewWidget *preview = RS_PREVIEW_WIDGET(user_data);
-
        if (!preview->zoom_to_fit)
        {
                /* Update Screen */
@@ -2931,6 +2963,9 @@
                        (preview->state & STRAIGHTEN_MOVE) ||
                        (preview->views > 1);
 
+       if (preview->state == SCROLL)
+               direct_redraw = FALSE;
+
        /* The first re-draw cannot be asynchronious, since it will flicker */
        if (preview->last_required_direct_redraw && !direct_redraw)
        {


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

Reply via email to