Thu Nov 2 17:51:31 2006 John Ellis <johne@verizon.net>
authorJohn Ellis <johne@verizon.net>
Thu, 2 Nov 2006 23:27:03 +0000 (23:27 +0000)
committerJohn Ellis <johne@verizon.net>
Thu, 2 Nov 2006 23:27:03 +0000 (23:27 +0000)
        * 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.

ChangeLog
src/collect.c
src/img-view.c
src/layout_util.c

index 9c31310..f872d4f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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
index 3fc37c7..ca0eaf9 100644 (file)
@@ -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 @@ static gint collection_window_keypress(GtkWidget *widget, GdkEventKey *event, gp
                                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);
index e7008d5..cb52fd7 100644 (file)
@@ -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 @@ static gint view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpoi
                        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;
index f3f49e4..ebddb1e 100644 (file)
@@ -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 @@ static gint layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer
                        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 @@ static gint layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer
 
        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 @@ static gint layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer
 #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;