# HG changeset patch # User gqview # Date 1162510023 0 # Node ID 50dc5a14d37b8c2341e55441075f1a0578ef3238 # Parent f1c8f8632e2349a1c5b59138c9a335d04c0ae252 Thu Nov 2 17:51:31 2006 John Ellis * collect.c, img-view.c: Make [Shift]+P printing shortcut work for collections and view windows. * layout_util.c: Fix shortcuts [Control]+N and [Shift]+P, broken by the previous keypress handler code cleanup. Add [Control]+V to view current image in a new image window. diff -r f1c8f8632e23 -r 50dc5a14d37b ChangeLog --- a/ChangeLog Thu Nov 02 19:45:18 2006 +0000 +++ b/ChangeLog Thu Nov 02 23:27:03 2006 +0000 @@ -1,3 +1,11 @@ +Thu Nov 2 17:51:31 2006 John Ellis + + * collect.c, img-view.c: Make [Shift]+P printing shortcut work for + collections and view windows. + * layout_util.c: Fix shortcuts [Control]+N and [Shift]+P, broken + by the previous keypress handler code cleanup. Add [Control]+V to + view current image in a new image window. + Thu Nov 2 14:38:54 2006 John Ellis * view_file_list.c: Fix slow re-sort when updating list by clearing the diff -r f1c8f8632e23 -r 50dc5a14d37b src/collect.c --- a/src/collect.c Thu Nov 02 19:45:18 2006 +0000 +++ b/src/collect.c Thu Nov 02 23:27:03 2006 +0000 @@ -1,6 +1,6 @@ /* * GQview - * (C) 2004 John Ellis + * (C) 2006 John Ellis * * Author: John Ellis * @@ -23,6 +23,7 @@ #include "layout.h" #include "layout_image.h" #include "pixbuf_util.h" +#include "print.h" #include "utilops.h" #include "ui_fileops.h" #include "ui_tree_edit.h" @@ -898,7 +899,21 @@ collection_set_sort_method(cw->cd, SORT_SIZE); break; case 'P': case 'p': - collection_set_sort_method(cw->cd, SORT_PATH); + if (event->state & GDK_SHIFT_MASK) + { + CollectInfo *info; + const gchar *path; + + info = collection_table_get_focus_info(cw->table); + path = (info) ? info->path : NULL; + + print_window_new(path, collection_table_selection_get_list(cw->table), + collection_list_to_path_list(cw->cd->list), cw->window); + } + else + { + collection_set_sort_method(cw->cd, SORT_PATH); + } break; case GDK_Delete: case GDK_KP_Delete: list = g_list_copy(cw->table->selection); diff -r f1c8f8632e23 -r 50dc5a14d37b src/img-view.c --- a/src/img-view.c Thu Nov 02 19:45:18 2006 +0000 +++ b/src/img-view.c Thu Nov 02 23:27:03 2006 +0000 @@ -1,6 +1,6 @@ /* * GQview - * (C) 2004 John Ellis + * (C) 2006 John Ellis * * Author: John Ellis * @@ -25,6 +25,7 @@ #include "menu.h" #include "pixbuf-renderer.h" #include "pixbuf_util.h" +#include "print.h" #include "slideshow.h" #include "utilops.h" #include "ui_bookmark.h" @@ -452,6 +453,18 @@ case 'G': case 'g': image_alter(imd, ALTER_DESATURATE); break; + case 'P': case 'p': + { + const gchar *path; + + view_fullscreen_toggle(vw, TRUE); + imd = view_window_active_image(vw); + path = image_get_path(imd); + print_window_new(path, + (path) ? g_list_append(NULL, g_strdup(path)) : NULL, + path_list_copy(vw->list), vw->window); + } + break; default: stop_signal = FALSE; break; diff -r f1c8f8632e23 -r 50dc5a14d37b src/layout_util.c --- a/src/layout_util.c Thu Nov 02 19:45:18 2006 +0000 +++ b/src/layout_util.c Thu Nov 02 23:27:03 2006 +0000 @@ -21,6 +21,7 @@ #include "collect-dlg.h" #include "dupe.h" #include "editors.h" +#include "img-view.h" #include "info.h" #include "layout_image.h" #include "pan-view.h" @@ -118,21 +119,33 @@ case GDK_Down: case GDK_KP_Down: y += 1; break; - case GDK_BackSpace: - case 'B': case 'b': - layout_image_prev(lw); - break; - case GDK_space: - case 'N': case 'n': - layout_image_next(lw); - break; - case GDK_Menu: - layout_image_menu_popup(lw); - break; default: stop_signal = FALSE; break; } + + if (!stop_signal && + !(event->state & GDK_CONTROL_MASK)) + { + stop_signal = TRUE; + switch (event->keyval) + { + case GDK_BackSpace: + case 'B': case 'b': + layout_image_prev(lw); + break; + case GDK_space: + case 'N': case 'n': + layout_image_next(lw); + break; + case GDK_Menu: + layout_image_menu_popup(lw); + break; + default: + stop_signal = FALSE; + break; + } + } } if (x != 0 || y!= 0) @@ -149,7 +162,20 @@ if (stop_signal) return stop_signal; - if (!(event->state & GDK_CONTROL_MASK)) + if (event->state & GDK_CONTROL_MASK) + { + stop_signal = TRUE; + switch (event->keyval) + { + case 'v' : case 'V': + view_window_new(layout_image_get_path(lw)); + break; + default: + stop_signal = FALSE; + break; + } + } + else { stop_signal = TRUE; switch (event->keyval) @@ -216,11 +242,18 @@ #endif break; case 'P': case 'p': - layout_image_slideshow_pause_toggle(lw); + if (!event->state & GDK_SHIFT_MASK) + { + layout_image_slideshow_pause_toggle(lw); + } + else + { + stop_signal = FALSE; + } break; case 'V': case 'v': case GDK_F11: - if (!(event->state & GDK_MOD1_MASK)) layout_image_full_screen_toggle(lw); + layout_image_full_screen_toggle(lw); break; default: stop_signal = FALSE;