[gthumb] grid view: added other keybindings
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] grid view: added other keybindings
- Date: Wed, 7 Dec 2011 23:11:43 +0000 (UTC)
commit df52acc99979d790101233a8356c6a1092ccb30e
Author: Paolo Bacchilega <paobac src gnome org>
Date: Thu Dec 8 00:10:54 2011 +0100
grid view: added other keybindings
Added select_all, unselect_all and activate_cursor_item. Renamed
set_cursro_selection as select_cursor_item and toggle_cursor_selection
as toggle_cursor_item.
gthumb/gth-grid-view.c | 85 ++++++++++++++++++++++++++++++++++++++++--------
gthumb/gth-grid-view.h | 8 +++-
2 files changed, 77 insertions(+), 16 deletions(-)
---
diff --git a/gthumb/gth-grid-view.c b/gthumb/gth-grid-view.c
index cdade83..6568104 100644
--- a/gthumb/gth-grid-view.c
+++ b/gthumb/gth-grid-view.c
@@ -67,9 +67,12 @@ G_DEFINE_TYPE_WITH_CODE (GthGridView,
enum {
+ SELECT_ALL,
+ UNSELECT_ALL,
MOVE_CURSOR,
- SET_CURSOR_SELECTION,
- TOGGLE_CURSOR_SELECTION,
+ SELECT_CURSOR_ITEM,
+ TOGGLE_CURSOR_ITEM,
+ ACTIVATE_CURSOR_ITEM,
LAST_SIGNAL
};
@@ -3247,7 +3250,7 @@ gth_grid_view_move_cursor (GthGridView *self,
static gboolean
-gth_grid_view_set_cursor_selection (GthGridView *self)
+gth_grid_view_select_cursor_item (GthGridView *self)
{
GthGridViewItem *item;
@@ -3268,7 +3271,7 @@ gth_grid_view_set_cursor_selection (GthGridView *self)
static gboolean
-gth_grid_view_toggle_cursor_selection (GthGridView *self)
+gth_grid_view_toggle_cursor_item (GthGridView *self)
{
GList *link;
GthGridViewItem *item;
@@ -3284,11 +3287,24 @@ gth_grid_view_toggle_cursor_selection (GthGridView *self)
_gth_grid_view_unselect_item (self, self->priv->focused_item);
else
_gth_grid_view_select_item (self, self->priv->focused_item);
+ _gth_grid_view_emit_selection_changed (self);
return TRUE;
}
+static gboolean
+gth_grid_view_activate_cursor_item (GthGridView *self)
+{
+ if (self->priv->focused_item >= 0) {
+ gth_file_view_activated (GTH_FILE_VIEW (self), self->priv->focused_item);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
static void
_gtk_binding_entry_add_move_cursor_signals (GtkBindingSet *binding_set,
guint keyval,
@@ -3526,12 +3542,39 @@ gth_grid_view_class_init (GthGridViewClass *grid_view_class)
widget_class->button_release_event = gth_grid_view_button_release;
widget_class->motion_notify_event = gth_grid_view_motion_notify;
+ grid_view_class->select_all = gth_grid_view_select_all;
+ grid_view_class->unselect_all = gth_grid_view_unselect_all;
+ grid_view_class->toggle_cursor_item = gth_grid_view_toggle_cursor_item;
+ grid_view_class->select_cursor_item = gth_grid_view_select_cursor_item;
grid_view_class->move_cursor = gth_grid_view_move_cursor;
- grid_view_class->set_cursor_selection = gth_grid_view_set_cursor_selection;
- grid_view_class->toggle_cursor_selection = gth_grid_view_toggle_cursor_selection;
+ grid_view_class->activate_cursor_item = gth_grid_view_activate_cursor_item;
/* Signals */
+ grid_view_signals[SELECT_ALL] =
+ g_signal_new ("select-all",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GthGridViewClass, select_all),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ grid_view_signals[UNSELECT_ALL] =
+ g_signal_new ("unselect-all",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GthGridViewClass, unselect_all),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ grid_view_signals[ACTIVATE_CURSOR_ITEM] =
+ g_signal_new ("activate-cursor-item",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GthGridViewClass, activate_cursor_item),
+ NULL, NULL,
+ gth_marshal_BOOLEAN__VOID,
+ G_TYPE_BOOLEAN, 0);
grid_view_signals[MOVE_CURSOR] =
g_signal_new ("move-cursor",
G_TYPE_FROM_CLASS (gobject_class),
@@ -3542,19 +3585,19 @@ gth_grid_view_class_init (GthGridViewClass *grid_view_class)
G_TYPE_BOOLEAN, 2,
GTH_TYPE_CURSOR_MOVEMENT,
GTH_TYPE_SELECTION_CHANGE);
- grid_view_signals[SET_CURSOR_SELECTION] =
- g_signal_new ("set-cursor-selection",
+ grid_view_signals[SELECT_CURSOR_ITEM] =
+ g_signal_new ("select-cursor-item",
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GthGridViewClass, set_cursor_selection),
+ G_STRUCT_OFFSET (GthGridViewClass, select_cursor_item),
NULL, NULL,
gth_marshal_BOOLEAN__VOID,
G_TYPE_BOOLEAN, 0);
- grid_view_signals[TOGGLE_CURSOR_SELECTION] =
- g_signal_new ("toggle-cursor-selection",
+ grid_view_signals[TOGGLE_CURSOR_ITEM] =
+ g_signal_new ("toggle-cursor-item",
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GthGridViewClass, toggle_cursor_selection),
+ G_STRUCT_OFFSET (GthGridViewClass, toggle_cursor_item),
NULL, NULL,
gth_marshal_BOOLEAN__VOID,
G_TYPE_BOOLEAN, 0);
@@ -3598,17 +3641,31 @@ gth_grid_view_class_init (GthGridViewClass *grid_view_class)
_gtk_binding_entry_add_move_cursor_signals (binding_set, GDK_KEY_End, GTH_CURSOR_MOVE_END);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_space, 0,
- "set-cursor-selection", 0);
+ "select-cursor-item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Space, 0,
+ "select-cursor-item", 0);
+
gtk_binding_entry_add_signal (binding_set, GDK_KEY_space, GDK_CONTROL_MASK,
- "toggle-cursor-selection", 0);
+ "toggle-cursor-item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Space, GDK_CONTROL_MASK,
+ "toggle-cursor-item", 0);
+
gtk_binding_entry_add_signal (binding_set, GDK_KEY_a, GDK_CONTROL_MASK,
"select-all", 0);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_slash, GDK_CONTROL_MASK,
"select-all", 0);
+
gtk_binding_entry_add_signal (binding_set, GDK_KEY_A, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
"unselect-all", 0);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_backslash, GDK_CONTROL_MASK,
"unselect-all", 0);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_Return, 0,
+ "activate-cursor-item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_ISO_Enter, 0,
+ "activate-cursor-item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Enter, 0,
+ "activate-cursor-item", 0);
}
diff --git a/gthumb/gth-grid-view.h b/gthumb/gth-grid-view.h
index 4cdd7db..c496170 100644
--- a/gthumb/gth-grid-view.h
+++ b/gthumb/gth-grid-view.h
@@ -24,6 +24,7 @@
#include <gtk/gtk.h>
#include "typedefs.h"
+#include "gth-file-selection.h"
G_BEGIN_DECLS
@@ -76,11 +77,14 @@ struct _GthGridViewClass {
/*< key binding signals >*/
+ void (* select_all) (GthFileSelection *grid_view);
+ void (* unselect_all) (GthFileSelection *grid_view);
+ gboolean (* select_cursor_item) (GthGridView *grid_view);
+ gboolean (* toggle_cursor_item) (GthGridView *grid_view);
gboolean (* move_cursor) (GthGridView *grid_view,
GthCursorMovement dir,
GthSelectionChange sel_change);
- gboolean (* set_cursor_selection) (GthGridView *grid_view);
- gboolean (* toggle_cursor_selection) (GthGridView *grid_view);
+ gboolean (* activate_cursor_item) (GthGridView *grid_view);
};
GType gth_grid_view_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]