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