![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "common/collection.h"#include "common/selection.h"#include "common/colorspaces.h"#include "common/debug.h"#include "common/dtpthread.h"#include "common/imageio.h"#include "common/imageio_module.h"#include "control/conf.h"#include "control/control.h"#include "dtgtk/thumbtable.h"#include "gui/gtk.h"#include "views/view.h"#include "views/view_api.h"#include <gdk/gdkkeysyms.h>#include <stdint.h>
Include dependency graph for slideshow.c:Data Structures | |
| struct | _slideshow_buf_t |
| struct | dt_slideshow_cache_t |
| struct | dt_slideshow_t |
Typedefs | |
| typedef enum dt_slideshow_event_t | dt_slideshow_event_t |
| typedef enum dt_slideshow_slot_t | dt_slideshow_slot_t |
| typedef struct _slideshow_buf_t | dt_slideshow_buf_t |
| typedef struct dt_slideshow_cache_t | dt_slideshow_cache_t |
| typedef struct dt_slideshow_t | dt_slideshow_t |
Enumerations | |
| enum | dt_slideshow_event_t { S_REQUEST_STEP , S_REQUEST_STEP_BACK } |
| enum | dt_slideshow_slot_t { S_LEFT = 0 , S_CURRENT = 1 , S_RIGHT = 2 , S_SLOT_LAST = 3 } |
Functions | |
| static void | _step_state (dt_slideshow_t *d, dt_slideshow_event_t event) |
| static void | shift_left (dt_slideshow_t *d) |
| static void | shift_right (dt_slideshow_t *d) |
| static void | _set_delay (dt_slideshow_t *d, int value) |
| static int32_t | _slideshow_get_imgid_from_rank (const dt_slideshow_t *d, const int32_t rank) |
| static dt_view_surface_value_t | _slideshow_request_slot (dt_slideshow_t *d, const dt_slideshow_slot_t slot) |
| static gboolean | auto_advance (gpointer user_data) |
| static void | _refresh_display (dt_slideshow_t *d) |
| const char * | name (const dt_view_t *self) |
| uint32_t | view (const dt_view_t *self) |
| void | init (dt_view_t *self) |
| void | cleanup (dt_view_t *self) |
| int | try_enter (dt_view_t *self) |
| void | enter (dt_view_t *self) |
| void | leave (dt_view_t *self) |
| void | expose (dt_view_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery) |
| int | key_pressed (dt_view_t *self, GdkEventKey *event) |
| static gboolean | _slideshow_start_stop_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data) |
| Toggle slideshow auto-advance using the same stepping code path as manual navigation, so pause/resume stays consistent with the current buffer state. | |
| static gboolean | _slideshow_slow_down_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data) |
| Increase the slideshow delay and store it immediately so repeated keyboard adjustments persist across view changes. | |
| static gboolean | _slideshow_speed_up_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data) |
| Decrease the slideshow delay and store it immediately so the current playback cadence matches the persisted preference. | |
| static gboolean | _slideshow_step_forward_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data) |
| Advance the slideshow while keeping auto-advance and global actions synced with the image currently displayed fullscreen. | |
| static gboolean | _slideshow_step_back_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data) |
| Step back in slideshow mode and keep the fullscreen image as the sole active image when the selection is temporarily cleared. | |
| static gboolean | _hide_mouse (gpointer user_data) |
| void | mouse_moved (dt_view_t *self, double x, double y, double pressure, int which) |
| int | button_released (dt_view_t *self, double x, double y, int which, uint32_t state) |
| int | button_pressed (dt_view_t *self, double x, double y, double pressure, int which, int type, uint32_t state) |
| void | gui_init (dt_view_t *self) |
| typedef struct _slideshow_buf_t dt_slideshow_buf_t |
| typedef struct dt_slideshow_cache_t dt_slideshow_cache_t |
| typedef enum dt_slideshow_event_t dt_slideshow_event_t |
| typedef enum dt_slideshow_slot_t dt_slideshow_slot_t |
| typedef struct dt_slideshow_t dt_slideshow_t |
| enum dt_slideshow_event_t |
| enum dt_slideshow_slot_t |
|
static |
References d, dt_view_t::data, dt_control_change_cursor(), and FALSE.
Referenced by mouse_moved().
|
static |
References _slideshow_request_slot(), d, dt_control_queue_redraw_center(), S_CURRENT, S_LEFT, and S_RIGHT.
Referenced by _step_state(), and enter().
|
static |
References d, dt_conf_set_int(), and value.
Referenced by _slideshow_slow_down_accel(), and _slideshow_speed_up_accel().
|
static |
References darktable_t::collection, d, darktable, darktable_t::db, dt_collection_get_query(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, IS_NULL_PTR, and UNKNOWN_IMAGE.
Referenced by _slideshow_request_slot(), _step_state(), and enter().
|
static |
References _slideshow_get_imgid_from_rank(), _slideshow_buf_t::cache, d, darktable, DT_THUMBTABLE_ZOOM_FIT, dt_ui_center(), dt_view_image_get_surface_async(), dt_view_image_surface_fetcher_invalidate(), DT_VIEW_SURFACE_KO, DT_VIEW_SURFACE_OK, FALSE, dt_slideshow_cache_t::fetcher, darktable_t::gui, height, _slideshow_buf_t::imgid, _slideshow_buf_t::invalidated, MAX, _slideshow_buf_t::rank, dt_slideshow_cache_t::surface, TRUE, dt_gui_gtk_t::ui, UNKNOWN_IMAGE, and width.
Referenced by _refresh_display(), auto_advance(), and expose().
|
static |
Increase the slideshow delay and store it immediately so repeated keyboard adjustments persist across view changes.
References _set_delay(), d, dt_view_t::data, dt_control_log(), and TRUE.
Referenced by gui_init().
|
static |
Decrease the slideshow delay and store it immediately so the current playback cadence matches the persisted preference.
References _set_delay(), d, dt_view_t::data, dt_control_log(), and TRUE.
Referenced by gui_init().
|
static |
Toggle slideshow auto-advance using the same stepping code path as manual navigation, so pause/resume stays consistent with the current buffer state.
References auto_advance(), d, dt_view_t::data, dt_control_log(), FALSE, and TRUE.
Referenced by gui_init().
|
static |
Step back in slideshow mode and keep the fullscreen image as the sole active image when the selection is temporarily cleared.
References _step_state(), d, dt_view_t::data, dt_control_log(), FALSE, S_REQUEST_STEP_BACK, and TRUE.
Referenced by gui_init().
|
static |
Advance the slideshow while keeping auto-advance and global actions synced with the image currently displayed fullscreen.
References _step_state(), d, dt_view_t::data, dt_control_log(), FALSE, S_REQUEST_STEP, and TRUE.
Referenced by gui_init().
|
static |
References _refresh_display(), _slideshow_get_imgid_from_rank(), auto_advance(), d, dt_control_log(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_view_active_images_add(), dt_view_active_images_reset(), FALSE, S_CURRENT, S_LEFT, S_REQUEST_STEP, S_REQUEST_STEP_BACK, S_RIGHT, shift_left(), shift_right(), and UNKNOWN_IMAGE.
Referenced by _slideshow_step_back_accel(), _slideshow_step_forward_accel(), auto_advance(), and button_pressed().
|
static |
References _slideshow_request_slot(), _step_state(), auto_advance(), dt_slideshow_t::auto_advance_timeout, d, dt_control_queue_redraw_center(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, S_CURRENT, S_LEFT, S_REQUEST_STEP, and S_RIGHT.
Referenced by _slideshow_start_stop_accel(), _step_state(), and auto_advance().
| int button_pressed | ( | dt_view_t * | self, |
| double | x, | ||
| double | y, | ||
| double | pressure, | ||
| int | which, | ||
| int | type, | ||
| uint32_t | state | ||
| ) |
References _step_state(), d, dt_view_t::data, S_REQUEST_STEP, and S_REQUEST_STEP_BACK.
References dt_slideshow_t::auto_advance_timeout, dt_slideshow_t::cache, dt_view_t::data, dt_free, dt_pthread_mutex_destroy(), dt_view_image_surface_fetcher_cleanup(), dt_slideshow_cache_t::fetcher, dt_slideshow_t::incoming_selection, k, dt_slideshow_t::lock, dt_slideshow_t::mouse_timeout, dt_slideshow_t::playlist, S_LEFT, and S_SLOT_LAST.
References _refresh_display(), _slideshow_get_imgid_from_rank(), dt_gui_gtk_t::accels, darktable_t::collection, d, darktable, dt_view_t::data, dt_accels_connect_accels(), dt_accels_connect_active_group(), dt_collection_get_count(), dt_conf_get_int(), dt_control_change_cursor(), dt_control_log(), dt_control_queue_redraw(), dt_gui_refocus_center(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_selection_clear(), dt_ui_main_window(), DT_UI_PANEL_BOTTOM, DT_UI_PANEL_LEFT, DT_UI_PANEL_RIGHT, dt_ui_panel_show(), DT_UI_PANEL_TOP, dt_view_active_images_add(), dt_view_active_images_get_all(), dt_view_active_images_reset(), dt_view_active_images_set(), dt_view_image_surface_fetcher_invalidate(), FALSE, darktable_t::gui, k, mon, S_CURRENT, S_LEFT, S_RIGHT, S_SLOT_LAST, darktable_t::selection, TRUE, dt_gui_gtk_t::ui, UNKNOWN_IMAGE, and rect::width.
| void expose | ( | dt_view_t * | self, |
| cairo_t * | cr, | ||
| int32_t | width, | ||
| int32_t | height, | ||
| int32_t | pointerx, | ||
| int32_t | pointery | ||
| ) |
References _slideshow_request_slot(), _slideshow_buf_t::cache, d, darktable, dt_view_t::data, dt_control_draw_busy_msg(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_gui_gtk_t::filter_image, darktable_t::gui, height, _slideshow_buf_t::invalidated, _slideshow_buf_t::rank, S_CURRENT, S_LEFT, S_RIGHT, dt_slideshow_cache_t::surface, and width.
References dt_slideshow_t::buf, _slideshow_buf_t::cache, dt_slideshow_t::cache, dt_view_t::data, dt_pthread_mutex_init(), dt_view_image_surface_fetcher_init(), dt_slideshow_cache_t::fetcher, _slideshow_buf_t::imgid, _slideshow_buf_t::invalidated, k, dt_slideshow_t::lock, _slideshow_buf_t::rank, S_LEFT, S_SLOT_LAST, TRUE, and UNKNOWN_IMAGE.
| int key_pressed | ( | dt_view_t * | self, |
| GdkEventKey * | event | ||
| ) |
References darktable, dt_ctl_switch_mode_to(), FALSE, darktable_t::gui, dt_ui_t::main_window, TRUE, and dt_gui_gtk_t::ui.
References dt_gui_gtk_t::accels, d, darktable, dt_view_t::data, dt_accels_disconnect_active_group(), dt_control_change_cursor(), dt_selection_clear(), dt_selection_select_list(), dt_view_active_images_get_all(), dt_view_active_images_reset(), dt_view_image_surface_fetcher_invalidate(), FALSE, darktable_t::gui, k, S_LEFT, S_SLOT_LAST, darktable_t::selection, TRUE, and UNKNOWN_IMAGE.
References _hide_mouse(), d, dt_view_t::data, and dt_control_change_cursor().
| const char * name | ( | const dt_view_t * | self | ) |
|
static |
References d, k, S_CURRENT, S_LEFT, S_RIGHT, TRUE, and UNKNOWN_IMAGE.
Referenced by _step_state().
|
static |
References d, k, S_CURRENT, S_LEFT, S_RIGHT, TRUE, and UNKNOWN_IMAGE.
Referenced by _step_state().
| int try_enter | ( | dt_view_t * | self | ) |
| uint32_t view | ( | const dt_view_t * | self | ) |
References DT_VIEW_SLIDESHOW.