[gnome-photos] Use arrow keys for navigating in preview mode
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] Use arrow keys for navigating in preview mode
- Date: Tue, 1 Jul 2014 10:24:29 +0000 (UTC)
commit edc439c92044b04395e88391d8379f4911eb65bc
Author: Pranav Kant <pranav913 gmail com>
Date: Sun Jun 22 01:53:10 2014 +0530
Use arrow keys for navigating in preview mode
https://bugzilla.gnome.org/show_bug.cgi?id=726685
src/photos-embed.c | 8 +++++++-
src/photos-embed.h | 3 +++
src/photos-main-window.c | 21 +++++++++++++++++++--
src/photos-preview-nav-buttons.c | 36 ++++++++++++++++++------------------
src/photos-preview-nav-buttons.h | 4 ++++
src/photos-preview-view.c | 14 ++++++++++++++
src/photos-preview-view.h | 4 ++++
7 files changed, 69 insertions(+), 21 deletions(-)
---
diff --git a/src/photos-embed.c b/src/photos-embed.c
index a61502e..e9a36f6 100644
--- a/src/photos-embed.c
+++ b/src/photos-embed.c
@@ -38,7 +38,6 @@
#include "photos-item-manager.h"
#include "photos-mode-controller.h"
#include "photos-notification-manager.h"
-#include "photos-preview-view.h"
#include "photos-search-controller.h"
#include "photos-selection-toolbar.h"
#include "photos-spinner-box.h"
@@ -816,3 +815,10 @@ photos_embed_get_main_toolbar (PhotosEmbed *self)
{
return PHOTOS_MAIN_TOOLBAR (self->priv->toolbar);
}
+
+
+PhotosPreviewView *
+photos_embed_get_preview (PhotosEmbed *self)
+{
+ return PHOTOS_PREVIEW_VIEW (self->priv->preview);
+}
diff --git a/src/photos-embed.h b/src/photos-embed.h
index 16d1a35..9416fde 100644
--- a/src/photos-embed.h
+++ b/src/photos-embed.h
@@ -28,6 +28,7 @@
#include <gtk/gtk.h>
#include "photos-main-toolbar.h"
+#include "photos-preview-view.h"
G_BEGIN_DECLS
@@ -74,6 +75,8 @@ GtkWidget *photos_embed_new (void);
PhotosMainToolbar *photos_embed_get_main_toolbar (PhotosEmbed *self);
+PhotosPreviewView *photos_embed_get_preview (PhotosEmbed *self);
+
G_END_DECLS
#endif /* PHOTOS_EMBED_H */
diff --git a/src/photos-main-window.c b/src/photos-main-window.c
index 9b0d2b8..bc9434b 100644
--- a/src/photos-main-window.c
+++ b/src/photos-main-window.c
@@ -34,6 +34,7 @@
#include "photos-item-manager.h"
#include "photos-main-window.h"
#include "photos-mode-controller.h"
+#include "photos-preview-view.h"
#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-settings.h"
@@ -229,19 +230,35 @@ static gboolean
photos_main_window_handle_key_preview (PhotosMainWindow *self, GdkEventKey *event)
{
PhotosMainWindowPrivate *priv = self->priv;
+ PhotosPreviewView *preview;
gboolean fullscreen;
+ gboolean handled = FALSE;
+ preview = photos_embed_get_preview (PHOTOS_EMBED (priv->embed));
fullscreen = photos_mode_controller_get_fullscreen (priv->mode_cntrlr);
- if (event->keyval == GDK_KEY_Escape)
+
+ switch (event->keyval)
{
+ case GDK_KEY_Escape:
if (fullscreen)
{
photos_base_manager_set_active_object (priv->item_mngr, NULL);
photos_mode_controller_go_back (priv->mode_cntrlr);
}
+ break;
+
+ case GDK_KEY_Left:
+ photos_preview_view_load_previous (preview);
+ handled = TRUE;
+ break;
+
+ case GDK_KEY_Right:
+ photos_preview_view_load_next (preview);
+ handled = TRUE;
+ break;
}
- return GDK_EVENT_PROPAGATE;
+ return handled;
}
diff --git a/src/photos-preview-nav-buttons.c b/src/photos-preview-nav-buttons.c
index 711d16a..fdea3d1 100644
--- a/src/photos-preview-nav-buttons.c
+++ b/src/photos-preview-nav-buttons.c
@@ -306,22 +306,6 @@ photos_preview_nav_buttons_set_active_path (PhotosPreviewNavButtons *self)
static void
-photos_preview_nav_buttons_next_clicked (PhotosPreviewNavButtons *self)
-{
- gtk_tree_path_next (self->priv->current_path);
- photos_preview_nav_buttons_set_active_path (self);
-}
-
-
-static void
-photos_preview_nav_buttons_prev_clicked (PhotosPreviewNavButtons *self)
-{
- gtk_tree_path_prev (self->priv->current_path);
- photos_preview_nav_buttons_set_active_path (self);
-}
-
-
-static void
photos_preview_nav_buttons_dispose (GObject *object)
{
PhotosPreviewNavButtons *self = PHOTOS_PREVIEW_NAV_BUTTONS (object);
@@ -378,7 +362,7 @@ photos_preview_nav_buttons_constructed (GObject *object)
gtk_container_add (GTK_CONTAINER (priv->prev_widget), button);
g_signal_connect_swapped (button,
"clicked",
- G_CALLBACK (photos_preview_nav_buttons_prev_clicked),
+ G_CALLBACK (photos_preview_nav_buttons_previous),
self);
g_signal_connect_swapped (button,
"enter-notify-event",
@@ -407,7 +391,7 @@ photos_preview_nav_buttons_constructed (GObject *object)
gtk_container_add (GTK_CONTAINER (priv->next_widget), button);
g_signal_connect_swapped (button,
"clicked",
- G_CALLBACK (photos_preview_nav_buttons_next_clicked),
+ G_CALLBACK (photos_preview_nav_buttons_next),
self);
g_signal_connect_swapped (button,
"enter-notify-event",
@@ -540,6 +524,22 @@ photos_preview_nav_buttons_hide (PhotosPreviewNavButtons *self)
void
+photos_preview_nav_buttons_next (PhotosPreviewNavButtons *self)
+{
+ gtk_tree_path_next (self->priv->current_path);
+ photos_preview_nav_buttons_set_active_path (self);
+}
+
+
+void
+photos_preview_nav_buttons_previous (PhotosPreviewNavButtons *self)
+{
+ gtk_tree_path_prev (self->priv->current_path);
+ photos_preview_nav_buttons_set_active_path (self);
+}
+
+
+void
photos_preview_nav_buttons_set_model (PhotosPreviewNavButtons *self, GtkTreeModel *model, GtkTreePath
*current_path)
{
PhotosPreviewNavButtonsPrivate *priv = self->priv;
diff --git a/src/photos-preview-nav-buttons.h b/src/photos-preview-nav-buttons.h
index 514ee43..c4a5538 100644
--- a/src/photos-preview-nav-buttons.h
+++ b/src/photos-preview-nav-buttons.h
@@ -76,6 +76,10 @@ PhotosPreviewNavButtons *photos_preview_nav_buttons_new (Photo
void photos_preview_nav_buttons_hide (PhotosPreviewNavButtons *self);
+void photos_preview_nav_buttons_next (PhotosPreviewNavButtons *self);
+
+void photos_preview_nav_buttons_previous (PhotosPreviewNavButtons *self);
+
void photos_preview_nav_buttons_set_model (PhotosPreviewNavButtons *self,
GtkTreeModel *model,
GtkTreePath *current_path);
diff --git a/src/photos-preview-view.c b/src/photos-preview-view.c
index 00e629b..3f2a1b6 100644
--- a/src/photos-preview-view.c
+++ b/src/photos-preview-view.c
@@ -243,6 +243,20 @@ photos_preview_view_new (GtkOverlay *overlay)
void
+photos_preview_view_load_next (PhotosPreviewView *self)
+{
+ photos_preview_nav_buttons_next (self->priv->nav_buttons);
+}
+
+
+void
+photos_preview_view_load_previous (PhotosPreviewView *self)
+{
+ photos_preview_nav_buttons_previous (self->priv->nav_buttons);
+}
+
+
+void
photos_preview_view_set_model (PhotosPreviewView *self, GtkTreeModel *model, GtkTreePath *current_path)
{
photos_preview_nav_buttons_set_model (self->priv->nav_buttons, model, current_path);
diff --git a/src/photos-preview-view.h b/src/photos-preview-view.h
index cdcdf3e..65257cb 100644
--- a/src/photos-preview-view.h
+++ b/src/photos-preview-view.h
@@ -71,6 +71,10 @@ GType photos_preview_view_get_type (void) G_GNUC_
GtkWidget *photos_preview_view_new (GtkOverlay *overlay);
+void photos_preview_view_load_next (PhotosPreviewView *self);
+
+void photos_preview_view_load_previous (PhotosPreviewView *self);
+
void photos_preview_view_set_model (PhotosPreviewView *self,
GtkTreeModel *model,
GtkTreePath *current_path);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]