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_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_tracker_search_controller_col_active_changed (PhotosTrackerSearchController *self) { PhotosWindowMode mode; mode = photos_mode_controller_get_window_mode (self->priv->mode_cntrlr); if (mode != PHOTOS_WINDOW_MODE_SEARCH) return; photos_tracker_controller_refresh_for_object (PHOTOS_TRACKER_CONTROLLER (self)); }
static void photos_tracker_controller_source_object_added_removed (PhotosTrackerController *self) { PhotosTrackerControllerPrivate *priv = self->priv; PhotosWindowMode mode; mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr); if (mode == priv->mode) photos_tracker_controller_refresh_for_source (self); else priv->refresh_pending = TRUE; }
static gboolean photos_main_window_key_press_event (GtkWidget *widget, GdkEventKey *event) { PhotosMainWindow *self = PHOTOS_MAIN_WINDOW (widget); PhotosMainWindowPrivate *priv = self->priv; PhotosMainToolbar *toolbar; PhotosWindowMode mode; gboolean handled = GDK_EVENT_PROPAGATE; handled = photos_main_window_handle_back_key (self, event); if (handled) goto out; toolbar = photos_embed_get_main_toolbar (PHOTOS_EMBED (priv->embed)); handled = photos_main_toolbar_handle_event (toolbar, event); if (handled) goto out; mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr); switch (mode) { case PHOTOS_WINDOW_MODE_NONE: handled = GDK_EVENT_PROPAGATE; break; case PHOTOS_WINDOW_MODE_PREVIEW: handled = photos_main_window_handle_key_preview (self, event); break; case PHOTOS_WINDOW_MODE_COLLECTIONS: case PHOTOS_WINDOW_MODE_FAVORITES: case PHOTOS_WINDOW_MODE_OVERVIEW: case PHOTOS_WINDOW_MODE_SEARCH: handled = photos_main_window_handle_key_overview (self, event); break; default: g_assert_not_reached (); break; } out: if (!handled) handled = GTK_WIDGET_CLASS (photos_main_window_parent_class)->key_press_event (widget, event); return handled; }