Author: post
Date: 2012-05-04 14:05:57 +0200 (Fri, 04 May 2012)
New Revision: 4220
Modified:
trunk/src/rs-preview-widget.c
Log:
Set loupe to have the correct orientation, and make it work properly in split
view.
Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c 2012-05-04 12:04:30 UTC (rev 4219)
+++ trunk/src/rs-preview-widget.c 2012-05-04 12:05:57 UTC (rev 4220)
@@ -204,6 +204,7 @@
RSFilter *loupe_transform_display;
RSFilter *loupe_filter_start;
RSFilter *loupe_filter_end;
+ gint loupe_view;
RSFilter *navigator_filter_scale;
RSFilter *navigator_transform_input;
@@ -450,6 +451,7 @@
preview->loupe = rs_loupe_new();
g_object_set(preview->loupe_filter_cache, "ignore-roi", TRUE, NULL);
preview->photo = NULL;
+ preview->loupe_view = -1;
preview->navigator_filter_scale = rs_filter_new("RSResample", NULL);
preview->navigator_filter_cache = rs_filter_new("RSCache",
preview->navigator_filter_scale);
@@ -700,7 +702,7 @@
* Enable the loupe
*/
void
-rs_preview_widget_set_loupe_enabled(RSPreviewWidget *preview, gboolean enabled)
+rs_preview_widget_set_loupe_enabled(RSPreviewWidget *preview, int view,
gboolean enabled)
{
if (preview->loupe_enabled != enabled)
{
@@ -713,13 +715,16 @@
{
rs_loupe_set_filter(preview->loupe,
preview->loupe_filter_end);
- rs_filter_set_previous(preview->loupe_filter_start,
preview->filter_input);
- /* FIXME: view is hardcoded to 0 */
+ if (view != preview->loupe_view)
+ {
+
rs_filter_set_previous(preview->loupe_filter_start,
preview->filter_cache0[view]);
+ preview->loupe_view = view;
+ }
if (rs_photo_get_dcp_profile(preview->photo))
g_object_set(preview->loupe_filter_dcp,
"profile", rs_photo_get_dcp_profile(preview->photo), NULL);
else
g_object_set(preview->loupe_filter_dcp,
"use-profile", FALSE, NULL);
- rs_filter_set_recursive(preview->loupe_filter_end,
"settings", preview->photo->settings[preview->snapshot[0]], NULL);
+ rs_filter_set_recursive(preview->loupe_filter_end,
"settings", preview->photo->settings[preview->snapshot[view]], NULL);
rs_loupe_set_colorspace(preview->loupe,
preview->display_color_space);
gtk_widget_show_all(GTK_WIDGET(preview->loupe));
@@ -837,7 +842,7 @@
g_assert(RS_IS_FILTER(fast_filter));
rs_filter_set_previous(preview->navigator_filter_scale,
fast_filter);
} else
- rs_filter_set_previous(preview->navigator_filter_scale,
preview->filter_input);
+ rs_filter_set_previous(preview->navigator_filter_scale, filter);
}
/**
@@ -1857,24 +1862,19 @@
rs_photo_set_angle(preview->photo, preview->straighten_angle,
TRUE);
gui_status_pop(preview->status_num);
}
- /* Middle mouse -> loupe */
- else if ((event->type == GDK_BUTTON_PRESS)
- && (event->button==2))
- {
- rs_loupe_set_coord(preview->loupe, real_x, real_y);
- rs_preview_widget_set_loupe_enabled(preview, TRUE);
- }
- /* CTRL + left mouse -> loupe */
- else if ((event->type == GDK_BUTTON_PRESS)
+ /* Middle mouse , ctrl + left -> loupe */
+ else if (((event->type == GDK_BUTTON_PRESS)
+ && (event->button==2))
+ || ((event->type == GDK_BUTTON_PRESS)
&& (event->button==1)
- && (event->state & GDK_CONTROL_MASK))
+ && (event->state & GDK_CONTROL_MASK)))
{
rs_loupe_set_screen(preview->loupe, preview_screen,
screen_number);
rs_loupe_set_coord(preview->loupe, real_x, real_y);
- rs_preview_widget_set_loupe_enabled(preview, TRUE);
+ rs_preview_widget_set_loupe_enabled(preview, view, TRUE);
}
if (event->type == GDK_BUTTON_RELEASE)
- rs_preview_widget_set_loupe_enabled(preview, FALSE);
+ rs_preview_widget_set_loupe_enabled(preview, view, FALSE);
return FALSE;
}
@@ -2151,7 +2151,15 @@
/* Update loupe if needed */
if (preview->loupe_enabled)
+ {
+ if (view != preview->loupe_view)
+ {
+ rs_filter_set_previous(preview->loupe_filter_start,
preview->filter_cache0[view]);
+ rs_filter_set_recursive(preview->loupe_filter_end,
"settings", preview->photo->settings[preview->snapshot[view]], NULL);
+ preview->loupe_view = view;
+ }
rs_loupe_set_coord(preview->loupe, real_x, real_y);
+ }
return TRUE;
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit