static gboolean photos_main_window_go_back (PhotosMainWindow *self) { PhotosMainWindowPrivate *priv = self->priv; PhotosBaseItem *active_collection; PhotosWindowMode mode; gboolean handled = TRUE; mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr); active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr)); switch (mode) { case PHOTOS_WINDOW_MODE_PREVIEW: photos_base_manager_set_active_object (priv->item_mngr, NULL); photos_mode_controller_go_back (priv->mode_cntrlr); break; case PHOTOS_WINDOW_MODE_COLLECTIONS: case PHOTOS_WINDOW_MODE_FAVORITES: case PHOTOS_WINDOW_MODE_SEARCH: if (active_collection != NULL) photos_item_manager_activate_previous_collection (PHOTOS_ITEM_MANAGER (self->priv->item_mngr)); break; case PHOTOS_WINDOW_MODE_NONE: case PHOTOS_WINDOW_MODE_OVERVIEW: default: handled = FALSE; break; } return handled; }
static void photos_preview_nav_buttons_delete (PhotosPreviewNavButtons *self) { GList *items = NULL; PhotosBaseItem *item; PhotosWindowMode mode; mode = photos_mode_controller_get_window_mode (self->mode_cntrlr); if (mode != PHOTOS_WINDOW_MODE_PREVIEW) return; item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (self->item_mngr)); if (item == NULL) return; if (self->enable_next) g_action_activate (self->load_next, NULL); else if (self->enable_prev) g_action_activate (self->load_previous, NULL); else photos_mode_controller_go_back (self->mode_cntrlr); items = g_list_prepend (items, g_object_ref (item)); photos_base_manager_remove_object (self->item_mngr, G_OBJECT (item)); photos_delete_notification_new (items); g_list_free_full (items, g_object_unref); }
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); 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 handled; }
static gboolean photos_main_window_handle_key_preview (PhotosMainWindow *self, GdkEventKey *event) { gboolean fullscreen; gboolean handled = FALSE; fullscreen = photos_mode_controller_get_fullscreen (self->mode_cntrlr); switch (event->keyval) { case GDK_KEY_Escape: if (fullscreen) photos_mode_controller_go_back (self->mode_cntrlr); break; case GDK_KEY_Left: g_action_activate (self->load_previous, NULL); handled = TRUE; break; case GDK_KEY_Right: g_action_activate (self->load_next, NULL); handled = TRUE; break; default: break; } return handled; }
static gboolean photos_main_window_go_back (PhotosMainWindow *self) { PhotosWindowMode mode; gboolean handled = TRUE; mode = photos_mode_controller_get_window_mode (self->mode_cntrlr); switch (mode) { case PHOTOS_WINDOW_MODE_COLLECTION_VIEW: case PHOTOS_WINDOW_MODE_PREVIEW: photos_mode_controller_go_back (self->mode_cntrlr); break; case PHOTOS_WINDOW_MODE_NONE: case PHOTOS_WINDOW_MODE_COLLECTIONS: case PHOTOS_WINDOW_MODE_EDIT: case PHOTOS_WINDOW_MODE_FAVORITES: case PHOTOS_WINDOW_MODE_IMPORT: case PHOTOS_WINDOW_MODE_OVERVIEW: case PHOTOS_WINDOW_MODE_SEARCH: default: handled = FALSE; break; } return handled; }
static void photos_dlna_renderers_dialog_row_activated_cb (PhotosDlnaRenderersDialog *self, GtkListBoxRow *row, gpointer user_data) { PhotosBaseItem *item; PhotosDlnaRenderer *renderer; renderer = g_object_get_data (G_OBJECT (row), "renderer"); item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr, self->urn)); photos_remote_display_manager_set_renderer (self->remote_mngr, renderer); photos_remote_display_manager_render (self->remote_mngr, item); photos_mode_controller_go_back (self->mode_cntrlr); gtk_dialog_response (GTK_DIALOG (self), GTK_RESPONSE_ACCEPT); }