static void photos_preview_nav_buttons_update_visibility (PhotosPreviewNavButtons *self) { PhotosPreviewNavButtonsPrivate *priv = self->priv; GtkTreeIter iter; GtkTreeIter tmp; if (priv->model == NULL || priv->current_path == NULL || !priv->visible || !gtk_tree_model_get_iter (priv->model, &iter, priv->current_path)) { photos_preview_nav_buttons_fade_out_button (self, priv->prev_widget); photos_preview_nav_buttons_fade_out_button (self, priv->next_widget); photos_preview_nav_buttons_fade_out_button (self, priv->toolbar_widget); return; } photos_preview_nav_buttons_fade_in_button (self, priv->toolbar_widget); tmp = iter; if (gtk_tree_model_iter_previous (priv->model, &tmp)) photos_preview_nav_buttons_fade_in_button (self, priv->prev_widget); else photos_preview_nav_buttons_fade_out_button (self, priv->prev_widget); tmp = iter; if (gtk_tree_model_iter_next (priv->model, &tmp)) photos_preview_nav_buttons_fade_in_button (self, priv->next_widget); else photos_preview_nav_buttons_fade_out_button (self, priv->next_widget); if (!priv->hover) photos_preview_nav_buttons_queue_auto_hide (self); }
static void photos_preview_nav_buttons_update_visibility (PhotosPreviewNavButtons *self) { PhotosBaseItem *item; PhotosBaseItem *next_item; PhotosBaseItem *previous_item; item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (self->item_mngr)); if (self->old_mode == PHOTOS_WINDOW_MODE_NONE || item == NULL || !self->visible) { self->enable_prev = FALSE; self->enable_next = FALSE; goto out; } previous_item = photos_preview_nav_buttons_get_previous_item (self); self->enable_prev = previous_item != NULL; next_item = photos_preview_nav_buttons_get_next_item (self); self->enable_next = next_item != NULL; out: if (self->visible_internal && self->enable_next) photos_preview_nav_buttons_fade_in_button (self, self->next_widget); else photos_preview_nav_buttons_fade_out_button (self, self->next_widget); if (self->visible_internal && self->enable_prev) photos_preview_nav_buttons_fade_in_button (self, self->prev_widget); else photos_preview_nav_buttons_fade_out_button (self, self->prev_widget); g_simple_action_set_enabled (G_SIMPLE_ACTION (self->load_next), self->enable_next); g_simple_action_set_enabled (G_SIMPLE_ACTION (self->load_previous), self->enable_prev); }
static void photos_preview_nav_buttons_update_visibility (PhotosPreviewNavButtons *self) { GtkTreeIter iter; GtkTreeIter tmp; GtkTreePath *current_path = NULL; if (self->model == NULL || !gtk_tree_row_reference_valid (self->current_row) || !self->visible) { self->enable_prev = FALSE; self->enable_next = FALSE; goto out; } current_path = gtk_tree_row_reference_get_path (self->current_row); gtk_tree_model_get_iter (self->model, &iter, current_path); tmp = iter; self->enable_prev = gtk_tree_model_iter_previous (self->model, &tmp); tmp = iter; self->enable_next = gtk_tree_model_iter_next (self->model, &tmp); out: if (self->visible_internal && self->enable_next) photos_preview_nav_buttons_fade_in_button (self, self->next_widget); else photos_preview_nav_buttons_fade_out_button (self, self->next_widget); if (self->visible_internal && self->enable_prev) photos_preview_nav_buttons_fade_in_button (self, self->prev_widget); else photos_preview_nav_buttons_fade_out_button (self, self->prev_widget); g_simple_action_set_enabled (G_SIMPLE_ACTION (self->load_next), self->enable_next); g_simple_action_set_enabled (G_SIMPLE_ACTION (self->load_previous), self->enable_prev); g_clear_pointer (¤t_path, (GDestroyNotify) gtk_tree_path_free); }