+Thu Nov 2 17:51:31 2006 John Ellis <johne@verizon.net>
+
+ * 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 <johne@verizon.net>
* view_file_list.c: Fix slow re-sort when updating list by clearing the
/*
* GQview
- * (C) 2004 John Ellis
+ * (C) 2006 John Ellis
*
* Author: John Ellis
*
#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"
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);
/*
* GQview
- * (C) 2004 John Ellis
+ * (C) 2006 John Ellis
*
* Author: John Ellis
*
#include "menu.h"
#include "pixbuf-renderer.h"
#include "pixbuf_util.h"
+#include "print.h"
#include "slideshow.h"
#include "utilops.h"
#include "ui_bookmark.h"
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;
#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"
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)
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)
#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;