Revision: 1663
http://geeqie.svn.sourceforge.net/geeqie/?rev=1663&view=rev
Author: nadvornik
Date: 2009-04-25 22:08:09 +0000 (Sat, 25 Apr 2009)
Log Message:
-----------
separated Orientation and Grayscale functions
moved Grayscale to Color management menu
Modified Paths:
--------------
trunk/src/image.c
trunk/src/image.h
trunk/src/img-view.c
trunk/src/layout_image.c
trunk/src/layout_image.h
trunk/src/layout_util.c
trunk/src/lirc.c
trunk/src/menu.c
trunk/src/typedefs.h
Modified: trunk/src/image.c
===================================================================
--- trunk/src/image.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/image.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -363,7 +363,7 @@
}
-void image_alter(ImageWindow *imd, AlterType type)
+void image_alter_orientation(ImageWindow *imd, AlterType type)
{
static const gint rotate_90[] = {1, 6, 7, 8, 5, 2, 3, 4, 1};
static const gint rotate_90_cc[] = {1, 8, 5, 6, 7, 4, 1, 2, 3};
@@ -393,19 +393,15 @@
case ALTER_FLIP:
imd->orientation = flip[imd->orientation];
break;
- case ALTER_DESATURATE:
- imd->desaturate = !imd->desaturate;
- break;
case ALTER_NONE:
imd->orientation = imd->image_fd->exif_orientation ?
imd->image_fd->exif_orientation : 1;
- imd->desaturate = FALSE;
break;
default:
return;
break;
}
- if (type != ALTER_NONE && type != ALTER_DESATURATE)
+ if (type != ALTER_NONE)
{
if (imd->image_fd->user_orientation == 0)
file_data_ref(imd->image_fd);
imd->image_fd->user_orientation = imd->orientation;
@@ -417,12 +413,22 @@
}
pixbuf_renderer_set_orientation((PixbufRenderer *)imd->pr,
imd->orientation);
+}
+
+void image_set_desaturate(ImageWindow *imd, gboolean desaturate)
+{
+ imd->desaturate = desaturate;
if (imd->cm || imd->desaturate)
pixbuf_renderer_set_post_process_func((PixbufRenderer
*)imd->pr, image_post_process_tile_color_cb, (gpointer) imd, (imd->cm != NULL)
);
else
pixbuf_renderer_set_post_process_func((PixbufRenderer
*)imd->pr, NULL, NULL, TRUE);
+ pixbuf_renderer_set_orientation((PixbufRenderer *)imd->pr,
imd->orientation);
}
+gboolean image_get_desaturate(ImageWindow *imd)
+{
+ return imd->desaturate;
+}
/*
*-------------------------------------------------------------------
Modified: trunk/src/image.h
===================================================================
--- trunk/src/image.h 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/image.h 2009-04-25 22:08:09 UTC (rev 1663)
@@ -76,7 +76,9 @@
gdouble x_align, gdouble y_align);
void image_get_scroll_center(ImageWindow *imd, gdouble *x, gdouble *y);
void image_set_scroll_center(ImageWindow *imd, gdouble x, gdouble y);
-void image_alter(ImageWindow *imd, AlterType type);
+void image_alter_orientation(ImageWindow *imd, AlterType type);
+void image_set_desaturate(ImageWindow *imd, gboolean desaturate);
+gboolean image_get_desaturate(ImageWindow *imd);
/* zoom */
void image_zoom_adjust(ImageWindow *imd, gdouble increment);
Modified: trunk/src/img-view.c
===================================================================
--- trunk/src/img-view.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/img-view.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -448,16 +448,16 @@
switch (event->keyval)
{
case 'R': case 'r':
- image_alter(imd, ALTER_ROTATE_180);
+ image_alter_orientation(imd, ALTER_ROTATE_180);
break;
case 'M': case 'm':
- image_alter(imd, ALTER_MIRROR);
+ image_alter_orientation(imd, ALTER_MIRROR);
break;
case 'F': case 'f':
- image_alter(imd, ALTER_FLIP);
+ image_alter_orientation(imd, ALTER_FLIP);
break;
case 'G': case 'g':
- image_alter(imd, ALTER_DESATURATE);
+ image_set_desaturate(imd,
!image_get_desaturate(imd));
break;
case 'P': case 'p':
{
@@ -558,10 +558,10 @@
view_overlay_toggle(vw);
break;
case ']':
- image_alter(imd, ALTER_ROTATE_90);
+ image_alter_orientation(imd, ALTER_ROTATE_90);
break;
case '[':
- image_alter(imd, ALTER_ROTATE_90_CC);
+ image_alter_orientation(imd,
ALTER_ROTATE_90_CC);
break;
case GDK_Delete: case GDK_KP_Delete:
if (options->file_ops.enable_delete_key)
@@ -1094,7 +1094,7 @@
type = GPOINTER_TO_INT(data);
if (!vw) return;
- image_alter(vw->imd, type);
+ image_alter_orientation(vw->imd, type);
}
static void view_wallpaper_cb(GtkWidget *widget, gpointer data)
Modified: trunk/src/layout_image.c
===================================================================
--- trunk/src/layout_image.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/layout_image.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -331,7 +331,7 @@
lw = submenu_item_get_data(widget);
type = (AlterType)GPOINTER_TO_INT(data);
- image_alter(lw->image, type);
+ image_alter_orientation(lw->image, type);
}
static void li_pop_menu_new_cb(GtkWidget *widget, gpointer data)
@@ -884,13 +884,29 @@
}
}
-void layout_image_alter(LayoutWindow *lw, AlterType type)
+void layout_image_alter_orientation(LayoutWindow *lw, AlterType type)
{
if (!layout_valid(&lw)) return;
- image_alter(lw->image, type);
+ image_alter_orientation(lw->image, type);
}
+void layout_image_set_desaturate(LayoutWindow *lw, gboolean desaturate)
+{
+ if (!layout_valid(&lw)) return;
+
+ image_set_desaturate(lw->image, desaturate);
+}
+
+gboolean layout_image_get_desaturate(LayoutWindow *lw)
+{
+ if (!layout_valid(&lw)) return FALSE;
+
+ return image_get_desaturate(lw->image);
+}
+
+
+
const gchar *layout_image_get_path(LayoutWindow *lw)
{
if (!layout_valid(&lw)) return NULL;
Modified: trunk/src/layout_image.h
===================================================================
--- trunk/src/layout_image.h 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/layout_image.h 2009-04-25 22:08:09 UTC (rev 1663)
@@ -51,7 +51,9 @@
void layout_image_zoom_adjust_at_point(LayoutWindow *lw, gdouble increment,
gint x, gint y, gboolean connect_zoom);
void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom, gboolean
connect_zoom);
void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gboolean vertical,
gboolean connect_zoom);
-void layout_image_alter(LayoutWindow *lw, AlterType type);
+void layout_image_alter_orientation(LayoutWindow *lw, AlterType type);
+void layout_image_set_desaturate(LayoutWindow *lw, gboolean desaturate);
+gboolean layout_image_get_desaturate(LayoutWindow *lw);
void layout_image_next(LayoutWindow *lw);
void layout_image_prev(LayoutWindow *lw);
Modified: trunk/src/layout_util.c
===================================================================
--- trunk/src/layout_util.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/layout_util.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -319,49 +319,49 @@
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_ROTATE_90);
+ layout_image_alter_orientation(lw, ALTER_ROTATE_90);
}
static void layout_menu_alter_90cc_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_ROTATE_90_CC);
+ layout_image_alter_orientation(lw, ALTER_ROTATE_90_CC);
}
static void layout_menu_alter_180_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_ROTATE_180);
+ layout_image_alter_orientation(lw, ALTER_ROTATE_180);
}
static void layout_menu_alter_mirror_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_MIRROR);
+ layout_image_alter_orientation(lw, ALTER_MIRROR);
}
static void layout_menu_alter_flip_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_FLIP);
+ layout_image_alter_orientation(lw, ALTER_FLIP);
}
-static void layout_menu_alter_desaturate_cb(GtkAction *action, gpointer data)
+static void layout_menu_alter_desaturate_cb(GtkToggleAction *action, gpointer
data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_DESATURATE);
+ layout_image_set_desaturate(lw, gtk_toggle_action_get_active(action));
}
static void layout_menu_alter_none_cb(GtkAction *action, gpointer data)
{
LayoutWindow *lw = data;
- layout_image_alter(lw, ALTER_NONE);
+ layout_image_alter_orientation(lw, ALTER_NONE);
}
static void layout_menu_config_cb(GtkAction *action, gpointer data)
@@ -1301,7 +1301,7 @@
{ "GoMenu", NULL, N_("_Go"), NULL,
NULL, NULL },
{ "EditMenu", NULL, N_("_Edit"),
NULL, NULL, NULL },
{ "SelectMenu", NULL, N_("_Select"), NULL,
NULL, NULL },
- { "AdjustMenu", NULL, N_("_Adjust"), NULL,
NULL, NULL },
+ { "OrientationMenu", NULL, N_("_Orientation"),
NULL, NULL, NULL },
{ "ExternalMenu", NULL, N_("E_xternal Editors"), NULL,
NULL, NULL },
{ "ViewMenu", NULL, N_("_View"),
NULL, NULL, NULL },
{ "DirMenu", NULL, N_("_View Directory as"), NULL,
NULL, NULL },
@@ -1347,7 +1347,6 @@
{ "Rotate180", NULL, N_("Rotate 1_80"), "<shift>R",
NULL, CB(layout_menu_alter_180_cb) },
{ "Mirror", NULL, N_("_Mirror"), "<shift>M",
NULL, CB(layout_menu_alter_mirror_cb) },
{ "Flip", NULL, N_("_Flip"), "<shift>F",
NULL, CB(layout_menu_alter_flip_cb) },
- { "Grayscale", NULL, N_("Toggle _grayscale"),"<shift>G",
NULL, CB(layout_menu_alter_desaturate_cb) },
{ "AlterNone", NULL, N_("_Original state"), "<shift>O",
NULL, CB(layout_menu_alter_none_cb) },
{ "SelectAll", NULL, N_("Select _all"), "<control>A",
NULL, CB(layout_menu_select_all_cb) },
@@ -1430,6 +1429,7 @@
{ "SlideShow", NULL, N_("Toggle _slideshow"),"S",
NULL, CB(layout_menu_slideshow_cb), FALSE },
{ "UseColorProfiles", NULL, N_("Use _color profiles"),
NULL, NULL, CB(layout_color_menu_enable_cb), FALSE},
{ "UseImageProfile", NULL, N_("Use profile from _image"), NULL,
NULL, CB(layout_color_menu_use_image_cb), FALSE},
+ { "Grayscale", NULL, N_("Toggle _grayscale"),"<shift>G",
NULL, CB(layout_menu_alter_desaturate_cb), FALSE},
};
static GtkRadioActionEntry menu_radio_entries[] = {
@@ -1512,13 +1512,12 @@
" </menu>"
" <placeholder name='EditSection'/>"
" <separator/>"
-" <menu action='AdjustMenu'>"
+" <menu action='OrientationMenu'>"
" <menuitem action='RotateCW'/>"
" <menuitem action='RotateCCW'/>"
" <menuitem action='Rotate180'/>"
" <menuitem action='Mirror'/>"
" <menuitem action='Flip'/>"
-" <menuitem action='Grayscale'/>"
" <menuitem action='AlterNone'/>"
" </menu>"
" <placeholder name='PropertiesSection'/>"
@@ -1546,6 +1545,8 @@
" <menuitem action='ColorProfile3'/>"
" <menuitem action='ColorProfile4'/>"
" <menuitem action='ColorProfile5'/>"
+" <separator/>"
+" <menuitem action='Grayscale'/>"
" </menu>"
" <menu action='ZoomMenu'>"
" <menuitem action='ZoomIn'/>"
@@ -2115,6 +2116,9 @@
gtk_action_set_sensitive(action, !use_image);
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), (i ==
input));
}
+
+ action = gtk_action_group_get_action(lw->action_group, "Grayscale");
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action),
layout_image_get_desaturate(lw));
}
static void layout_util_sync_views(LayoutWindow *lw)
Modified: trunk/src/lirc.c
===================================================================
--- trunk/src/lirc.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/lirc.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -164,11 +164,11 @@
}
else if (g_ascii_strcasecmp("ROTATE_90", cmd) == 0)
{
- layout_image_alter(lw, ALTER_ROTATE_90);
+ layout_image_alter_orientation(lw,
ALTER_ROTATE_90);
}
else if (g_ascii_strcasecmp("ROTATE_90_CC", cmd) == 0)
{
- layout_image_alter(lw, ALTER_ROTATE_90_CC);
+ layout_image_alter_orientation(lw,
ALTER_ROTATE_90_CC);
}
else if (g_ascii_strcasecmp("INFO", cmd) == 0)
{
Modified: trunk/src/menu.c
===================================================================
--- trunk/src/menu.c 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/menu.c 2009-04-25 22:08:09 UTC (rev 1663)
@@ -230,9 +230,6 @@
case ALTER_FLIP:
return _("_Flip");
break;
- case ALTER_DESATURATE:
- return _("Toggle _grayscale");
- break;
case ALTER_NONE:
return _("_Original state");
break;
@@ -271,14 +268,13 @@
submenu_add_alter_item(submenu, func, ALTER_ROTATE_180, accel_group,
'R', GDK_SHIFT_MASK);
submenu_add_alter_item(submenu, func, ALTER_MIRROR, accel_group, 'M',
GDK_SHIFT_MASK);
submenu_add_alter_item(submenu, func, ALTER_FLIP, accel_group, 'F',
GDK_SHIFT_MASK);
- submenu_add_alter_item(submenu, func, ALTER_DESATURATE, accel_group,
'G', GDK_SHIFT_MASK);
submenu_add_alter_item(submenu, func, ALTER_NONE, accel_group, 'O',
GDK_SHIFT_MASK);
if (menu)
{
GtkWidget *item;
- item = menu_item_add(menu, _("_Adjust"), NULL, NULL);
+ item = menu_item_add(menu, _("_Orientation"), NULL, NULL);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
return item;
}
Modified: trunk/src/typedefs.h
===================================================================
--- trunk/src/typedefs.h 2009-04-25 20:55:11 UTC (rev 1662)
+++ trunk/src/typedefs.h 2009-04-25 22:08:09 UTC (rev 1663)
@@ -60,7 +60,6 @@
ALTER_ROTATE_180,
ALTER_MIRROR,
ALTER_FLIP,
- ALTER_DESATURATE
} AlterType;
typedef enum {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn