![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/image_extensions.h"#include "common/paths.h"#include "database/collection_query.h"#include "common/act_on.h"#include "control/settings.h"#include "common/conf.h"#include "control/jobs/control_jobs.h"#include "widgets/gdkkeys.h"#include "gui/dtgtk/thumbtable.h"#include "gui/dtgtk/thumbtable_internal.h"#include "gui/dtgtk/thumbnail.h"#include "gui/dtgtk/thumbtable_info.h"#include "common/collection.h"#include "history/history.h"#include "caches/image_cache.h"#include "database/image_repository.h"#include "common/hash.h"#include "common/selection.h"#include "common/times.h"#include "common/usermanual_url.h"#include "common/utility.h"#include "control/control.h"#include "control/jobs/import_jobs.h"#include "widgets/accelerators.h"#include "widgets/widget_settings.h"#include "gui/drag_and_drop.h"#include "views/view.h"#include "widgets/bauhaus.h"#include "gui/import.h"#include <glib-object.h>#include <math.h>#include <glib.h>#include "gui/application.h"#include "widgets/widget_style.h"#include "common/glib_utils.h"
Include dependency graph for thumbtable.c:Go to the source code of this file.
Data Structures | |
| struct | _collection_lut_ctx_t |
| struct | dt_dnd_folder_import_t |
Macros | |
| #define | CLAMP_ROW(rowid) CLAMP(rowid, 0, table->collection_count - 1) |
| #define | IS_COLLECTION_EDGE(rowid) (rowid < 0 || rowid >= table->collection_count) |
Typedefs | |
| typedef struct _collection_lut_ctx_t | _collection_lut_ctx_t |
| typedef struct dt_dnd_folder_import_t | dt_dnd_folder_import_t |
Enumerations | |
| enum | _dt_dnd_import_choice { _DT_DND_IMPORT_CHOICE_ALL = 1 , _DT_DND_IMPORT_CHOICE_RAW = 2 , _DT_DND_IMPORT_CHOICE_RASTER = 3 } |
Variables | |
| static gint64 | next_over_time = 0 |
We keep a double reference of thumbnail objects for the current collection:
The hash table is used to keep track of allocated objects to update, redraw and free. It holds the visible range of rowids plus as many again on each side: _evict_thumbnails() destroys whatever lies further away.
The LUT is used to speed up lookups for thumbnails at known, bounded positions in sequential order (position in collection = (rowid - 1) in SQLite result = order in GUI = index in the LUT). This LUTÂ prevents us from re-querying the collection in SQLite all the time using: "SELECT rowid, imgid FROM main.collected_images WHERE rowid > min_row AND rowid <= max_row ORDER BY rowid ASC". Note though that SQLite starts indexing at 1, so there is an unit offset. It also keeps a reference to the thumbnail objects, but objets should never be freed from there. Given that collections set on root folders contain all the images from their children, the number of elements in a LUT can be anything from 1 to several 100k images.
It is expected that thumbnails alloc/free always happen using table->list, and that table->lut only updates its references accordingly, because table->list gives us O(1) lookup by imgid and keeps iteration bounded to visible thumbnails.
Keep that in mind if/when extending features.
For image collections having up to 1000 items, we could just statically reset/init the list of thumbnails once when the collection changes, then only resize thumbnails at runtime. But for collections of thousands of images, while adding child widgets is fairly fast, considering, detaching those widgets from the parent takes ages (several orders of magnitude more than attaching). So we have no choice here but to attach and detach dynamically, as to keep the number of children reasonable. "Reasonable" is we populate the current viewport page (at current scrolling position), the previous and the next ones, as to ensure smooth scrolling.
The dimensions of the full collection grid are only ever virtual, but we need to make them real for the scrollbars to behave properly through dynamic loading and unloading of thumbnails. So we set the grid area to what it would be if we loaded all thumbnails.
Definition in file thumbtable.c.
| #define CLAMP_ROW | ( | rowid | ) | CLAMP(rowid, 0, table->collection_count - 1) |
Definition at line 636 of file thumbtable.c.
| #define IS_COLLECTION_EDGE | ( | rowid | ) | (rowid < 0 || rowid >= table->collection_count) |
Definition at line 637 of file thumbtable.c.
| typedef struct _collection_lut_ctx_t _collection_lut_ctx_t |
| typedef struct dt_dnd_folder_import_t dt_dnd_folder_import_t |
| Enumerator | |
|---|---|
| _DT_DND_IMPORT_CHOICE_ALL | |
| _DT_DND_IMPORT_CHOICE_RAW | |
| _DT_DND_IMPORT_CHOICE_RASTER | |
Definition at line 1451 of file thumbtable.c.
| void _add_thumbnail_at_rowid | ( | dt_thumbtable_t * | table, |
| const size_t | rowid, | ||
| const int32_t | mouse_over | ||
| ) |
Definition at line 657 of file thumbtable.c.
References _add_thumbnail_group_borders(), _find_thumb_by_imgid(), _set_thumb_position(), dt_thumbtable_t::alternate_mode, dt_image_cache_get(), dt_image_cache_read_release(), dt_thumbnail_alternative_mode(), dt_thumbnail_new(), dt_thumbnail_resize(), dt_thumbnail_resync_info(), dt_thumbnail_set_mouseover(), dt_thumbnail_set_overlay(), FALSE, dt_thumbnail_t::height, dt_image_t::id, dt_thumbtable_cache_t::imgid, dt_thumbnail_t::info, IS_NULL_PTR, dt_thumbtable_t::list, dt_thumbtable_t::lut, dt_thumbtable_layout_ops_t::move_child, dt_thumbtable_layout_ops_t::on_thumbnail_added, dt_thumbtable_t::ops, dt_thumbnail_t::over, dt_thumbtable_t::overlays, dt_thumbtable_layout_ops_t::place_child, dt_thumbnail_t::rowid, dt_thumbtable_cache_t::thumb, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_nb, dt_thumbtable_t::thumb_width, TRUE, dt_thumbnail_t::widget, and dt_thumbnail_t::width.
Referenced by _populate_thumbnails().
| void _add_thumbnail_group_borders | ( | dt_thumbtable_t * | table, |
| dt_thumbnail_t * | thumb | ||
| ) |
Definition at line 639 of file thumbtable.c.
References dt_thumbtable_t::draw_group_borders, dt_thumbnail_set_group_border(), dt_thumbtable_info_is_grouped(), dt_thumbtable_layout_ops_t::group_borders, dt_thumbnail_t::info, dt_thumbtable_t::lut, dt_thumbtable_t::ops, dt_thumbnail_t::rowid, and dt_thumbtable_cache_t::thumb.
Referenced by _add_thumbnail_at_rowid(), _dt_image_info_changed_callback(), and _resize_thumbnails().
| void _alternative_mode | ( | dt_thumbtable_t * | table, |
| gboolean | enable | ||
| ) |
Definition at line 1795 of file thumbtable.c.
References dt_thumbtable_t::alternate_mode, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_alternative_mode(), enable(), dt_thumbtable_t::list, dt_thumbtable_t::lock, and value.
Referenced by dt_thumbtable_key_pressed_grid(), and dt_thumbtable_key_released_grid().
|
static |
Definition at line 1072 of file thumbtable.c.
References dt_thumbtable_t::collapse_groups, _collection_lut_ctx_t::collection, dt_image_derive_fields(), dt_selection_deselect(), dt_selection_get_global(), dt_thumbtable_info_debug_assert_matches_cache(), dt_thumbtable_info_seed_image_cache(), row, _collection_lut_ctx_t::table, and dt_thumbtable_cache_t::thumb.
Referenced by _dt_collection_lut().
Definition at line 1571 of file thumbtable.c.
References dt_free, dt_free_gpointer(), dt_dnd_folder_import_t::files, dt_dnd_folder_import_t::folders, and p.
Referenced by _thumbtable_dnd_scan_folders_and_import().
|
static |
Definition at line 1528 of file thumbtable.c.
References _dnd_recurse_folder(), dt_conf_get_string(), dt_control_import(), dt_control_job_get_params(), dt_control_log(), FALSE, dt_dnd_folder_import_t::files, dt_dnd_folder_import_t::filter_type, dt_dnd_folder_import_t::folders, and dt_control_import_t::imgs.
Referenced by _thumbtable_dnd_scan_folders_and_import().
|
static |
Definition at line 1471 of file thumbtable.c.
References _dnd_recurse_folder(), DT_DEBUG_IMPORT, dt_free, dt_import_passes_filter(), dt_print(), error(), folder, and IS_NULL_PTR.
Referenced by _dnd_folder_import_job_run(), and _dnd_recurse_folder().
|
static |
Definition at line 1928 of file thumbtable.c.
References FALSE, IS_NULL_PTR, and TRUE.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 948 of file thumbtable.c.
References _refresh_highlights(), and IS_NULL_PTR.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
|
static |
Definition at line 1185 of file thumbtable.c.
References _dt_collection_get_hash(), _dt_collection_lut(), _dt_thumbtable_empty_list(), _thumbtable_clone_lut(), _update_grid_area(), dt_thumbtable_t::collapse_groups, dt_thumbtable_t::collection_count, DT_COLLECTION_CHANGE_BACKGROUND_SYNC, DT_COLLECTION_PROP_GROUPING, dt_conf_get_bool(), dt_control_log(), DT_DEBUG_LIGHTTABLE, dt_print(), dt_thumbtable_configure(), dt_thumbtable_queue_update(), dt_thumbtable_schedule_focus, dt_thumbtable_set_active_rowid(), FALSE, IS_NULL_PTR, and dt_thumbtable_t::thumbs_inited.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
|
static |
Definition at line 1161 of file thumbtable.c.
References dt_thumbtable_t::collection_hash, dt_thumbtable_t::collection_inited, dt_collection_get_count(), dt_collection_get_global(), dt_collection_query_get_generation(), dt_hash(), FALSE, hash, dt_thumbtable_t::reset_collection, and TRUE.
Referenced by _dt_collection_changed_callback().
|
static |
Definition at line 1106 of file thumbtable.c.
References _collection_lut_row(), dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_free, dt_image_repository_foreach_collected(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, _collection_lut_ctx_t::table, and TRUE.
Referenced by _dt_collection_changed_callback().
|
static |
Definition at line 1026 of file thumbtable.c.
References _add_thumbnail_group_borders(), dt_image_cache_read_release(), dt_image_cache_testget(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_resync_info(), dt_thumbnail_update_gui(), dt_thumbtable_find_rowid_from_imgid(), dt_view_image_info_update(), dt_view_manager_get_global(), IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_cache_t::thumb, UNKNOWN_IMAGE, and dt_thumbnail_t::widget.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
|
static |
Definition at line 882 of file thumbtable.c.
References dt_thumbtable_refresh_thumbnail, IS_NULL_PTR, TRUE, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
|
static |
Definition at line 939 of file thumbtable.c.
References _refresh_highlights(), and IS_NULL_PTR.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
| void _dt_thumbtable_empty_list | ( | dt_thumbtable_t * | table | ) |
Definition at line 2203 of file thumbtable.c.
References _thumb_compare_rowid_desc(), dt_thumbtable_t::collection_count, DT_DEBUG_LIGHTTABLE, dt_get_wtime(), dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_destroy(), FALSE, dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_cache_t::thumb, dt_thumbtable_t::thumb_nb, dt_thumbtable_t::thumbs_inited, and dt_thumbnail_t::widget.
Referenced by _dt_collection_changed_callback(), dt_thumbtable_cleanup(), and dt_thumbtable_update().
|
static |
Definition at line 1400 of file thumbtable.c.
References _thumbtable_drag_set_icon(), dt_thumbtable_t::drag_list, dt_act_on_get_images(), dt_control_get_mouse_over_id(), dt_thumbtable_layout_ops_t::on_drag_begin, and dt_thumbtable_t::ops.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 1706 of file thumbtable.c.
References dt_thumbtable_t::drag_list, dt_gui_remove_class(), and dt_thumbtable_t::grid.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 1294 of file thumbtable.c.
References _BYTE, _DWORD, DND_TARGET_IMGID, DND_TARGET_URI, dt_thumbtable_t::drag_list, dt_free, dt_free_gpointer(), dt_image_full_path(), DT_PATH_MAX, dt_util_glist_to_str(), g_list_is_singleton, i, IS_NULL_PTR, and TRUE.
Referenced by dt_thumbtable_new().
| gboolean _event_main_leave | ( | GtkWidget * | widget, |
| GdkEventCrossing * | event, | ||
| gpointer | user_data | ||
| ) |
Definition at line 1947 of file thumbtable.c.
References dt_control_set_mouse_over_id(), IS_NULL_PTR, TRUE, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 827 of file thumbtable.c.
References _evict_thumbnails(), dt_thumbtable_t::evict_idle_id, dt_thumbtable_t::max_row_id, and dt_thumbtable_t::min_row_id.
Referenced by dt_thumbtable_update().
|
static |
Definition at line 792 of file thumbtable.c.
References DT_DEBUG_LIGHTTABLE, dt_get_wtime(), dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_destroy(), dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbnail_t::rowid, dt_thumbtable_t::thumb_nb, value, and dt_thumbnail_t::widget.
Referenced by _evict_idle(), and dt_thumbtable_update().
| dt_thumbnail_t * _find_thumb_by_imgid | ( | dt_thumbtable_t * | table, |
| const int32_t | imgid | ||
| ) |
Definition at line 601 of file thumbtable.c.
References IS_NULL_PTR, and dt_thumbtable_t::list.
Referenced by _add_thumbnail_at_rowid(), and _thumbtable_drag_set_icon().
|
static |
Definition at line 469 of file thumbtable.c.
References dt_thumbtable_t::configured, FALSE, dt_thumbtable_layout_ops_t::get_row_ids, dt_thumbtable_t::h_scrollbar, IS_NULL_PTR, dt_thumbtable_t::ops, TRUE, and dt_thumbtable_t::v_scrollbar.
Referenced by _update_row_ids().
|
static |
Definition at line 194 of file thumbtable.c.
References dt_thumbtable_scroll_to_selection(), dt_thumbtable_t::focus_idle_id, dt_thumbtable_layout_ops_t::grab_focus, IS_NULL_PTR, and dt_thumbtable_t::ops.
Referenced by dt_thumbtable_schedule_focus_real().
| void _grid_configure | ( | dt_thumbtable_t * | table, |
| int | width, | ||
| int | height, | ||
| int | per_row, | ||
| int | thumb_width, | ||
| int | thumb_height | ||
| ) |
Definition at line 510 of file thumbtable.c.
References dt_thumbtable_t::configured, DT_DEBUG_LIGHTTABLE, dt_print(), height, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_width, dt_thumbtable_t::thumbs_per_row, TRUE, dt_thumbtable_t::view_height, dt_thumbtable_t::view_width, and width.
Referenced by dt_thumbtable_configure().
| int _imgid_to_rowid | ( | dt_thumbtable_t * | table, |
| int32_t | imgid | ||
| ) |
Definition at line 1718 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), i, dt_thumbtable_cache_t::imgid, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_move_in_grid().
| gboolean _is_rowid_visible | ( | dt_thumbtable_t * | table, |
| int | rowid | ||
| ) |
Definition at line 477 of file thumbtable.c.
References dt_thumbtable_t::configured, FALSE, dt_thumbtable_t::h_scrollbar, IS_NULL_PTR, dt_thumbtable_layout_ops_t::is_rowid_visible, dt_thumbtable_t::ops, and dt_thumbtable_t::v_scrollbar.
Referenced by dt_thumbtable_move_in_grid().
| void _mouse_over_image_callback | ( | gpointer | instance, |
| gpointer | user_data | ||
| ) |
Definition at line 286 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_thumbtable_t::draw_group_borders, dt_control_get_mouse_over_id(), dt_gui_add_class(), dt_gui_remove_class(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_set_mouseover(), dt_thumbtable_info_is_grouped(), dt_image_t::group_id, dt_image_t::id, dt_thumbnail_t::info, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::max_row_id, dt_thumbtable_t::min_row_id, dt_thumbnail_t::mouse_over, dt_thumbtable_cache_t::thumb, dt_thumbtable_t::thumbs_per_row, UNKNOWN_IMAGE, and dt_thumbnail_t::widget.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 1957 of file thumbtable.c.
References dt_thumbtable_filmstrip_ops(), dt_thumbtable_grid_ops(), DT_THUMBTABLE_MODE_FILEMANAGER, and DT_THUMBTABLE_MODE_FILMSTRIP.
Referenced by dt_thumbtable_new(), and dt_thumbtable_set_parent().
|
static |
Definition at line 260 of file thumbtable.c.
References _thumbtable_schedule_update(), IS_NULL_PTR, dt_thumbtable_t::last_parent_height, and dt_thumbtable_t::last_parent_width.
Referenced by dt_thumbtable_set_parent().
| void _populate_thumbnails | ( | dt_thumbtable_t * | table | ) |
Definition at line 747 of file thumbtable.c.
References _add_thumbnail_at_rowid(), dt_thumbtable_t::collection_count, dt_control_get_mouse_over_id(), MAX, dt_thumbtable_t::max_row_id, MIN, and dt_thumbtable_t::min_row_id.
Referenced by dt_thumbtable_update().
|
static |
Definition at line 360 of file thumbtable.c.
References dt_thumbtable_t::ops, dt_thumbtable_layout_ops_t::position_to_rowid, and x.
Referenced by dt_thumbtable_set_active_rowid().
|
static |
Definition at line 894 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_update_selection(), dt_view_image_info_update(), FALSE, dt_image_t::id, dt_thumbtable_cache_t::imgid, dt_thumbnail_t::info, IS_NULL_PTR, dt_thumbtable_layout_ops_t::is_thumb_highlighted, dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::ops, dt_thumbnail_t::rowid, dt_thumbtable_t::rowid, dt_thumbtable_t::scroll_window, dt_thumbnail_t::selected, dt_thumbtable_cache_t::thumb, TRUE, and dt_thumbnail_t::widget.
Referenced by _dt_active_images_changed_callback(), and _dt_selection_changed_callback().
| void _resize_thumbnails | ( | dt_thumbtable_t * | table | ) |
Definition at line 757 of file thumbtable.c.
References _add_thumbnail_group_borders(), _set_thumb_position(), dt_thumbtable_t::alternate_mode, dt_thumbtable_t::configured, dt_thumbnail_alternative_mode(), dt_thumbnail_resize(), dt_thumbnail_set_overlay(), dt_thumbnail_update_gui(), dt_thumbnail_t::height, dt_thumbtable_t::list, dt_thumbtable_layout_ops_t::move_child, dt_thumbtable_t::ops, dt_thumbnail_t::over, dt_thumbtable_t::overlays, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_width, value, dt_thumbnail_t::widget, and dt_thumbnail_t::width.
Referenced by dt_thumbtable_set_draw_group_borders(), dt_thumbtable_set_overlays_mode(), and dt_thumbtable_update().
|
static |
Definition at line 353 of file thumbtable.c.
References dt_thumbtable_t::ops, dt_thumbtable_layout_ops_t::rowid_to_position, dt_thumbtable_t::thumbs_per_row, and x.
Referenced by _set_thumb_position(), and dt_thumbtable_scroll_to_rowid().
|
static |
Definition at line 247 of file thumbtable.c.
References _thumbtable_schedule_update(), IS_NULL_PTR, dt_thumbtable_t::ops, and dt_thumbtable_layout_ops_t::wants_page_size_notify.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 236 of file thumbtable.c.
References _thumbtable_schedule_update(), IS_NULL_PTR, dt_thumbtable_t::ops, and dt_thumbtable_layout_ops_t::wants_scroll_value.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 273 of file thumbtable.c.
References _thumbtable_schedule_update(), IS_NULL_PTR, dt_thumbtable_t::ops, dt_thumbtable_layout_ops_t::relevant_scrollbar_changed, and dt_thumbtable_t::scroll_window.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 368 of file thumbtable.c.
References _rowid_to_position(), FALSE, dt_thumbnail_t::rowid, dt_thumbtable_t::thumbs_per_row, TRUE, dt_thumbnail_t::x, and dt_thumbnail_t::y.
Referenced by _add_thumbnail_at_rowid(), and _resize_thumbnails().
|
static |
Definition at line 184 of file thumbtable.c.
References dt_thumbnail_t::rowid.
Referenced by _dt_thumbtable_empty_list(), and dt_thumbtable_stop().
|
static |
Definition at line 1245 of file thumbtable.c.
References DT_THUMBNAIL_OVERLAYS_ALWAYS_NORMAL, DT_THUMBNAIL_OVERLAYS_HOVER_NORMAL, and DT_THUMBNAIL_OVERLAYS_NONE.
Referenced by dt_thumbtable_set_overlays_mode().
|
static |
Definition at line 1260 of file thumbtable.c.
References dt_conf_get_int(), dt_free, dt_thumbtable_set_overlays_mode(), and sanitize_overlays().
Referenced by dt_thumbtable_new().
|
static |
a class to manage a table of thumbnail for lighttable and filmstrip.
Definition at line 86 of file thumbtable.c.
References dt_thumbtable_t::collapse_groups, dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_hash, dt_thumbtable_t::collection_inited, dt_free, dt_gui_get_global(), dt_gui_get_ui(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, i, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_ui_t::thumbtable_filmstrip, dt_ui_t::thumbtable_lighttable, and TRUE.
Referenced by _dt_collection_changed_callback().
|
static |
Definition at line 1636 of file thumbtable.c.
References _thumbtable_dnd_import_check(), _thumbtable_dnd_scan_folders_and_import(), dt_conf_get_string(), dt_control_import(), dt_control_log(), FALSE, i, dt_control_import_t::imgs, IS_NULL_PTR, and TRUE.
Referenced by dt_thumbtable_event_dnd_received().
| GList * _thumbtable_dnd_import_check | ( | GList * | files, |
| const char * | pathname, | ||
| int * | elements, | ||
| GList ** | folders | ||
| ) |
Definition at line 1417 of file thumbtable.c.
References dt_supported_image(), and IS_NULL_PTR.
Referenced by _thumbtable_dnd_import().
|
static |
Definition at line 1589 of file thumbtable.c.
References _dnd_folder_import_job_cleanup(), _dnd_folder_import_job_run(), _DT_DND_IMPORT_CHOICE_ALL, _DT_DND_IMPORT_CHOICE_RASTER, _DT_DND_IMPORT_CHOICE_RAW, dt_control_add_job(), dt_control_get_global(), dt_control_job_create(), dt_control_job_set_params(), dt_free_gpointer(), dt_gui_get_ui(), DT_IMPORT_FILTER_ALL, DT_IMPORT_FILTER_RASTER, DT_IMPORT_FILTER_RAW, DT_JOB_QUEUE_USER_BG, dt_osx_disallow_fullscreen(), dt_dnd_folder_import_t::files, dt_dnd_folder_import_t::filter_type, dt_dnd_folder_import_t::folders, and IS_NULL_PTR.
Referenced by _thumbtable_dnd_import().
|
static |
Definition at line 1360 of file thumbtable.c.
References _find_thumb_by_imgid(), dt_thumbtable_t::drag_list, dt_control_get_mouse_over_id(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), height, dt_thumbnail_t::img_height, dt_thumbnail_t::img_surf, dt_thumbnail_t::img_width, IS_NULL_PTR, dt_thumbnail_t::lock, and width.
Referenced by _event_dnd_begin().
|
static |
Definition at line 211 of file thumbtable.c.
References dt_thumbtable_configure(), dt_thumbtable_update(), dt_thumbtable_t::grid, dt_thumbtable_t::idle_update_id, IS_NULL_PTR, and dt_thumbtable_t::thumb_nb.
Referenced by _thumbtable_schedule_update().
|
static |
Definition at line 223 of file thumbtable.c.
References _thumbtable_idle_update(), dt_thumbtable_t::idle_update_id, IS_NULL_PTR, and dt_thumbtable_t::scroll_window.
Referenced by _parent_overlay_size_allocate(), _scrollbar_page_size_notify(), _scrollbar_value_changed(), _scrollbar_widget_size_allocate(), and dt_thumbtable_queue_update().
| void _update_grid_area | ( | dt_thumbtable_t * | table | ) |
Definition at line 499 of file thumbtable.c.
References dt_thumbtable_t::collection_inited, dt_thumbtable_t::configured, dt_thumbtable_t::ops, and dt_thumbtable_layout_ops_t::update_content_size.
Referenced by _dt_collection_changed_callback(), and dt_thumbtable_configure().
| gboolean _update_row_ids | ( | dt_thumbtable_t * | table | ) |
Definition at line 484 of file thumbtable.c.
References _get_row_ids(), FALSE, dt_thumbtable_t::max_row_id, dt_thumbtable_t::min_row_id, dt_thumbtable_t::thumbs_inited, and TRUE.
Referenced by dt_thumbtable_update().
| void dt_thumbtable_cleanup | ( | dt_thumbtable_t * | table | ) |
Definition at line 2238 of file thumbtable.c.
References _dt_active_images_changed_callback(), _dt_collection_changed_callback(), _dt_image_info_changed_callback(), _dt_profile_change_callback(), _dt_selection_changed_callback(), _dt_thumbtable_empty_list(), dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_free, dt_pthread_mutex_destroy(), dt_thumbtable_t::evict_idle_id, dt_thumbtable_t::focus_idle_id, dt_thumbtable_t::idle_update_id, dt_thumbtable_t::list, dt_thumbtable_t::lock, and dt_thumbtable_t::lut.
Referenced by dt_ui_cleanup_main_table().
| void dt_thumbtable_configure | ( | dt_thumbtable_t * | table | ) |
Definition at line 557 of file thumbtable.c.
References _grid_configure(), _update_grid_area(), dt_thumbtable_layout_ops_t::configure_dims, dt_thumbtable_t::configured, FALSE, dt_thumbtable_t::ops, dt_thumbtable_t::scroll_window, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_width, dt_thumbtable_t::thumbs_inited, dt_thumbtable_t::thumbs_per_row, dt_thumbtable_t::view_height, and dt_thumbtable_t::view_width.
Referenced by _dt_collection_changed_callback(), _thumbtable_idle_apply_grid_configuration(), and _thumbtable_idle_update().
| void dt_thumbtable_dispatch_over | ( | dt_thumbtable_t * | table, |
| GdkEventType | type, | ||
| int32_t | imgid | ||
| ) |
Update the mouse-over image ID with conflict resolution.
| table | The thumbnail table |
| type | The event type triggering the update |
| imgid | Image ID the mouse is over |
Updates which image is considered "under the mouse", resolving conflicts between mouse and keyboard events.
Definition at line 2448 of file thumbtable.c.
References dt_control_set_keyboard_over_id(), dt_control_set_mouse_over_id(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbtable_find_rowid_from_imgid(), dt_thumbtable_get_scroll_position(), dt_thumbtable_scroll_to_position(), dt_thumbtable_t::grid, dt_thumbtable_t::lock, next_over_time, dt_thumbtable_t::rowid, dt_thumbtable_t::scroll_window, type, and x.
Referenced by _event_main_enter(), _event_main_leave(), _event_main_motion(), _event_main_press(), and dt_thumbtable_move_in_grid().
| void dt_thumbtable_event_dnd_received | ( | GtkWidget * | widget, |
| GdkDragContext * | context, | ||
| gint | x, | ||
| gint | y, | ||
| GtkSelectionData * | selection_data, | ||
| guint | target_type, | ||
| guint | time, | ||
| gpointer | user_data | ||
| ) |
Handle drag-and-drop data received.
| widget | The widget receiving the drop |
| context | The drag context |
| x | Drop x coordinate |
| y | Drop y coordinate |
| selection_data | The dropped data |
| target_type | Target type ID |
| time | Timestamp |
| user_data | User data (thumbtable instance) |
Handles drops of files/URIs onto the thumbtable. Files are imported into the current film roll.
Definition at line 1691 of file thumbtable.c.
References _thumbtable_dnd_import(), DND_TARGET_URI, FALSE, and IS_NULL_PTR.
Referenced by dt_thumbtable_new().
| int dt_thumbtable_find_rowid_from_imgid | ( | dt_thumbtable_t * | table, |
| const int32_t | imgid | ||
| ) |
Definition at line 414 of file thumbtable.c.
References dt_thumbtable_t::collection_count, i, dt_thumbtable_cache_t::imgid, IS_NULL_PTR, dt_thumbtable_t::lut, and UNKNOWN_IMAGE.
Referenced by _dt_image_info_changed_callback(), _grid_handle_key(), dt_thumbtable_dispatch_over(), dt_thumbtable_scroll_to_imgid(), and dt_thumbtable_select_range().
| gboolean dt_thumbtable_get_draw_group_borders | ( | dt_thumbtable_t * | table | ) |
Definition at line 984 of file thumbtable.c.
References dt_thumbtable_t::draw_group_borders.
| gboolean dt_thumbtable_get_focus_peaking | ( | dt_thumbtable_t * | table | ) |
Definition at line 971 of file thumbtable.c.
References dt_thumbtable_t::focus_peaking.
Referenced by focus_peaking_callback(), and focus_peaking_checked_callback().
| gboolean dt_thumbtable_get_focus_regions | ( | dt_thumbtable_t * | table | ) |
Definition at line 960 of file thumbtable.c.
References dt_thumbtable_t::focus_regions.
Referenced by _focus_checked(), and _focus_toggle_callback().
| void dt_thumbtable_get_scroll_position | ( | dt_thumbtable_t * | table, |
| double * | x, | ||
| double * | y | ||
| ) |
Definition at line 376 of file thumbtable.c.
References dt_thumbtable_t::h_scrollbar, dt_thumbtable_t::v_scrollbar, and x.
Referenced by dt_thumbtable_dispatch_over(), and dt_thumbtable_set_active_rowid().
| gboolean dt_thumbtable_get_thumbnail_info | ( | dt_thumbtable_t * | table, |
| int32_t | imgid, | ||
| dt_image_t * | out | ||
| ) |
Definition at line 607 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_thumbtable_cache_t::imgid, dt_thumbnail_t::info, IS_NULL_PTR, dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbtable_t::lut, out, dt_thumbtable_cache_t::thumb, and TRUE.
Referenced by _image_update_group_tooltip(), and _metadata_view_get_thumb_info().
| void dt_thumbtable_invert_selection | ( | dt_thumbtable_t * | table | ) |
Invert the current selection.
| table | The thumbnail table |
Inverts the selection state of all images in the current collection.
Definition at line 2431 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_selection_deselect_list(), dt_selection_get_global(), dt_selection_get_list(), and dt_thumbtable_select_all().
Referenced by invert_selection_callback().
| gboolean dt_thumbtable_key_pressed_grid | ( | GtkWidget * | self, |
| GdkEventKey * | event, | ||
| gpointer | user_data | ||
| ) |
Definition at line 1813 of file thumbtable.c.
References _alternative_mode(), dt_control_get_keyboard_over_id(), dt_control_get_mouse_over_id(), dt_control_remove_images(), dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_gui_get_ui(), dt_keys_mainpad_alternatives(), dt_modifier_is(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_selection_get_first_id(), dt_selection_get_global(), DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, dt_thumbtable_move_in_grid(), DT_TT_MOVE_END, DT_TT_MOVE_LEFT, DT_TT_MOVE_NEXT_PAGE, DT_TT_MOVE_PREVIOUS_PAGE, DT_TT_MOVE_RIGHT, DT_TT_MOVE_START, FALSE, dt_thumbtable_layout_ops_t::handle_key, dt_thumbtable_cache_t::imgid, IS_NULL_PTR, key, dt_thumbtable_t::lock, lut, dt_thumbtable_t::lut, dt_thumbtable_t::ops, dt_thumbtable_layout_ops_t::pre_activate, and TRUE.
Referenced by dt_thumbtable_new().
| gboolean dt_thumbtable_key_released_grid | ( | GtkWidget * | self, |
| GdkEventKey * | event, | ||
| gpointer | user_data | ||
| ) |
Definition at line 1915 of file thumbtable.c.
References _alternative_mode(), dt_gui_get_ui(), FALSE, and IS_NULL_PTR.
Referenced by dt_thumbtable_new().
| void dt_thumbtable_move_in_grid | ( | dt_thumbtable_t * | table, |
| GdkEventKey * | event, | ||
| dt_thumbtable_direction_t | direction, | ||
| int | origin_imgid | ||
| ) |
Definition at line 1738 of file thumbtable.c.
References _imgid_to_rowid(), _is_rowid_visible(), dt_thumbtable_t::collection_count, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbtable_dispatch_over(), dt_thumbtable_scroll_to_imgid(), dt_thumbtable_update(), DT_TT_MOVE_DOWN, DT_TT_MOVE_END, DT_TT_MOVE_LEFT, DT_TT_MOVE_NEXT_PAGE, DT_TT_MOVE_PREVIOUS_PAGE, DT_TT_MOVE_RIGHT, DT_TT_MOVE_START, DT_TT_MOVE_UP, FALSE, dt_thumbtable_cache_t::imgid, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::scroll_window, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumbs_inited, dt_thumbtable_t::thumbs_per_row, and dt_thumbtable_t::view_height.
Referenced by _grid_handle_key(), and dt_thumbtable_key_pressed_grid().
| dt_thumbtable_t * dt_thumbtable_new | ( | dt_thumbtable_mode_t | mode | ) |
Create a new thumbnail table widget.
| mode | The display mode (filemanager or filmstrip) |
Creates and initializes a new thumbnail table widget with drag-and-drop support, keyboard navigation, and configurable overlays. The widget automatically handles thumbnail loading/unloading as the view scrolls.
Definition at line 1969 of file thumbtable.c.
References _draw_callback(), _dt_active_images_changed_callback(), _dt_collection_changed_callback(), _dt_image_info_changed_callback(), _dt_profile_change_callback(), _dt_selection_changed_callback(), _event_dnd_begin(), _event_dnd_end(), _event_dnd_get(), _event_main_leave(), _mouse_over_image_callback(), _ops_for_mode(), _scrollbar_page_size_notify(), _scrollbar_value_changed(), _scrollbar_widget_size_allocate(), _thumbs_update_overlays_mode(), dt_thumbtable_t::alternate_mode, dt_thumbtable_t::collapse_groups, dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_hash, dt_thumbtable_t::collection_inited, dt_thumbtable_t::configured, dt_thumbtable_layout_ops_t::create_content_widget, dt_accels_t::darkroom_accels, dt_thumbtable_t::draw_group_borders, dt_accels_build_path(), dt_accels_new_virtual_shortcut(), DT_ACCELS_WIDGET_TOOLTIP_DISABLED_KEY, dt_conf_get_bool(), dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_free, dt_get_help_url(), dt_gui_add_class(), dt_gui_add_help_link(), dt_gui_get_accels(), dt_pthread_mutex_init(), DT_SIGNAL_ACTIVE_IMAGES_CHANGE, DT_SIGNAL_COLLECTION_CHANGED, DT_SIGNAL_CONTROL_PROFILE_USER_CHANGED, DT_SIGNAL_IMAGE_INFO_CHANGED, DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE, DT_SIGNAL_SELECTION_CHANGED, dt_thumbtable_event_dnd_received(), dt_thumbtable_key_pressed_grid(), dt_thumbtable_key_released_grid(), DT_THUMBTABLE_MODE_FILEMANAGER, DT_THUMBTABLE_MODE_FILMSTRIP, dt_thumbtable_set_parent(), dummy, dt_thumbtable_t::evict_idle_id, FALSE, dt_thumbtable_t::focus_idle_id, dt_thumbtable_t::grid, dt_thumbtable_t::grid_cols, dt_thumbtable_t::h_scrollbar, dt_thumbtable_t::idle_update_id, dt_thumbtable_t::last_h_scrollbar_height, dt_thumbtable_t::last_parent_height, dt_thumbtable_t::last_parent_width, dt_thumbtable_t::last_v_scrollbar_width, dt_accels_t::lighttable_accels, dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_accels_t::map_accels, dt_thumbtable_t::max_row_id, dt_thumbtable_t::min_row_id, dt_thumbtable_t::mode, n_targets_all, dt_thumbtable_t::ops, dt_accels_t::print_accels, dt_thumbtable_t::reset_collection, dt_thumbtable_t::rowid, dt_thumbtable_t::scroll_window, target_list_all, dt_thumbtable_t::thumb_nb, dt_thumbtable_t::thumbs_inited, TRUE, dt_thumbtable_t::v_scrollbar, dt_thumbtable_t::x_position, and dt_thumbtable_t::y_position.
Referenced by _ui_init_panel_bottom(), and dt_ui_init_main_table().
| void dt_thumbtable_queue_update | ( | dt_thumbtable_t * | table | ) |
Definition at line 231 of file thumbtable.c.
References _thumbtable_schedule_update().
Referenced by _dt_collection_changed_callback(), dt_thumbtable_redraw_real(), and dt_thumbtable_show().
| void dt_thumbtable_refresh_thumbnail_real | ( | dt_thumbtable_t * | table, |
| int32_t | imgid, | ||
| gboolean | reinit | ||
| ) |
Definition at line 992 of file thumbtable.c.
References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_image_refresh, dt_thumbtable_t::list, dt_thumbtable_t::lock, UNKNOWN_IMAGE, and value.
| void dt_thumbtable_reset_collection | ( | dt_thumbtable_t * | table | ) |
Definition at line 1942 of file thumbtable.c.
References dt_thumbtable_t::reset_collection, and TRUE.
Referenced by _culling_mode().
| void dt_thumbtable_schedule_focus_real | ( | dt_thumbtable_t * | table, |
| const gint | priority | ||
| ) |
Definition at line 204 of file thumbtable.c.
References _grab_focus(), DT_DEBUG_LIGHTTABLE, dt_print(), dt_thumbtable_t::focus_idle_id, and IS_NULL_PTR.
| int dt_thumbtable_scroll_to_active_rowid | ( | dt_thumbtable_t * | table | ) |
Scroll to show the active row.
| table | The thumbnail table |
Definition at line 448 of file thumbtable.c.
References dt_thumbtable_scroll_to_rowid(), dt_thumbtable_scroll_to_selection(), dt_thumbtable_t::rowid, and UNKNOWN_IMAGE.
Referenced by configure().
| int dt_thumbtable_scroll_to_imgid | ( | dt_thumbtable_t * | table, |
| int32_t | imgid | ||
| ) |
Scroll the view to show a specific image.
| table | The thumbnail table |
| imgid | The image ID to scroll to |
Definition at line 425 of file thumbtable.c.
References dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbtable_find_rowid_from_imgid(), dt_thumbtable_scroll_to_rowid(), IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::rowid, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_move_in_grid(), and dt_thumbtable_scroll_to_selection().
|
static |
Definition at line 390 of file thumbtable.c.
References dt_thumbtable_t::h_scrollbar, dt_thumbtable_t::v_scrollbar, and x.
Referenced by dt_thumbtable_dispatch_over(), and dt_thumbtable_scroll_to_rowid().
|
static |
Definition at line 397 of file thumbtable.c.
References _rowid_to_position(), double(), dt_thumbtable_scroll_to_position(), dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_width, dt_thumbtable_t::view_height, dt_thumbtable_t::view_width, and x.
Referenced by dt_thumbtable_scroll_to_active_rowid(), and dt_thumbtable_scroll_to_imgid().
| int dt_thumbtable_scroll_to_selection | ( | dt_thumbtable_t * | table | ) |
Scroll to show selected content.
| table | The thumbnail table |
Scrolls to the first-selected image. If none selected, tries keyboard "over", then mouse "over", then last active image, in this order.
Definition at line 458 of file thumbtable.c.
References dt_control_get_keyboard_over_id(), dt_control_get_mouse_over_id(), DT_DEBUG_LIGHTTABLE, dt_print(), dt_selection_get_first_id(), dt_selection_get_global(), and dt_thumbtable_scroll_to_imgid().
Referenced by _film_strip_activated(), _grab_focus(), _view_map_button_press_callback(), _view_map_filmstrip_activate_callback(), _view_map_selection_changed(), dt_thumbtable_scroll_to_active_rowid(), dt_ui_panel_show(), enter(), and scroll_to_selection_callback().
| void dt_thumbtable_select_all | ( | dt_thumbtable_t * | table | ) |
Select all images in the current grid.
| table | The thumbnail table |
Selects all images currently displayed in the thumbnail table through the GUI.
Definition at line 2337 of file thumbtable.c.
References dt_thumbtable_t::collapse_groups, dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_control_log(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_selection_get_global(), dt_selection_select_list(), i, dt_thumbtable_cache_t::imgid, dt_thumbtable_t::lock, and dt_thumbtable_t::lut.
Referenced by dt_thumbtable_invert_selection(), and select_all_callback().
| void dt_thumbtable_select_range | ( | dt_thumbtable_t * | table, |
| const int | rowid | ||
| ) |
Select a range of images in the collection.
| table | The thumbnail table |
| rowid | Target row index to extend selection to |
Selects all images between the closest current selection bound and the specified rowid. Used for shift-click selection behavior.
Definition at line 2361 of file thumbtable.c.
References dt_thumbtable_t::collapse_groups, dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_control_log(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_selection_get_global(), dt_selection_get_list(), dt_selection_select_list(), dt_thumbtable_find_rowid_from_imgid(), i, dt_thumbtable_cache_t::imgid, dt_thumbtable_t::lock, dt_thumbtable_t::lut, row, and selected.
Referenced by _event_main_release(), and _grid_handle_key().
| void dt_thumbtable_set_active_rowid | ( | dt_thumbtable_t * | table | ) |
Update internal active row tracking.
| table | The thumbnail table |
Updates the internal first visible thumbnail index based on current scroll position.
Definition at line 382 of file thumbtable.c.
References _position_to_rowid(), dt_thumbtable_get_scroll_position(), dt_thumbtable_t::rowid, and x.
Referenced by _dt_collection_changed_callback(), configure(), dt_thumbtable_apply_grid_configuration(), and dt_thumbtable_set_zoom().
| void dt_thumbtable_set_draw_group_borders | ( | dt_thumbtable_t * | table, |
| gboolean | enable | ||
| ) |
Definition at line 976 of file thumbtable.c.
References _resize_thumbnails(), dt_thumbtable_t::draw_group_borders, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), enable(), and dt_thumbtable_t::lock.
Referenced by group_borders_callback().
| void dt_thumbtable_set_focus_peaking | ( | dt_thumbtable_t * | table, |
| gboolean | enable | ||
| ) |
Definition at line 965 of file thumbtable.c.
References dt_thumbtable_refresh_thumbnail, enable(), dt_thumbtable_t::focus_peaking, TRUE, and UNKNOWN_IMAGE.
Referenced by focus_peaking_callback().
| void dt_thumbtable_set_focus_regions | ( | dt_thumbtable_t * | table, |
| gboolean | enable | ||
| ) |
Definition at line 954 of file thumbtable.c.
References dt_thumbtable_refresh_thumbnail, enable(), dt_thumbtable_t::focus_regions, TRUE, and UNKNOWN_IMAGE.
Referenced by _focus_toggle_callback().
| void dt_thumbtable_set_overlays_mode | ( | dt_thumbtable_t * | table, |
| dt_thumbnail_overlay_t | over | ||
| ) |
Set the overlay display mode for thumbnails.
| table | The thumbnail table |
| over | New overlay mode to use |
Changes how overlays (text, icons etc) are displayed on thumbnails. Updates all visible thumbnails immediately.
Definition at line 1271 of file thumbtable.c.
References _resize_thumbnails(), _thumbs_get_overlays_class(), dt_conf_set_int(), dt_free, dt_gui_add_class(), dt_gui_remove_class(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), FALSE, dt_thumbtable_t::grid, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::overlays, sanitize_overlays(), and dt_thumbtable_t::thumbs_inited.
Referenced by _thumbs_update_overlays_mode(), always_hide_overlays_callback(), always_show_overlays_callback(), and hover_overlays_callback().
| void dt_thumbtable_set_parent | ( | dt_thumbtable_t * | table, |
| dt_thumbtable_mode_t | mode | ||
| ) |
Definition at line 2324 of file thumbtable.c.
References _ops_for_mode(), _parent_overlay_size_allocate(), dt_thumbtable_t::mode, dt_thumbtable_t::ops, dt_thumbtable_t::parent_overlay, and dt_thumbtable_layout_ops_t::setup_parent.
Referenced by dt_thumbtable_new().
| void dt_thumbtable_stop | ( | dt_thumbtable_t * | table | ) |
Definition at line 2275 of file thumbtable.c.
References _thumb_compare_rowid_desc(), dt_thumbtable_t::collection_count, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbnail_destroy(), dt_thumbtable_t::evict_idle_id, FALSE, dt_thumbtable_t::focus_idle_id, dt_thumbtable_t::idle_update_id, IS_NULL_PTR, dt_thumbtable_t::list, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::reset_collection, dt_thumbtable_cache_t::thumb, dt_thumbtable_t::thumb_nb, dt_thumbtable_t::thumbs_inited, TRUE, and dt_thumbnail_t::widget.
Referenced by leave().
| int dt_thumbtable_thumb_cell_decoration | ( | void | ) |
Definition at line 536 of file thumbtable.c.
References MAX.
Referenced by _filmstrip_configure_dims(), and _grid_configure_dims().
| void dt_thumbtable_update | ( | dt_thumbtable_t * | table | ) |
Definition at line 838 of file thumbtable.c.
References _dt_thumbtable_empty_list(), _evict_idle(), _evict_thumbnails(), _populate_thumbnails(), _resize_thumbnails(), _update_row_ids(), dt_thumbtable_t::collection_count, dt_thumbtable_t::collection_inited, dt_thumbtable_t::configured, DT_DEBUG_LIGHTTABLE, dt_get_wtime(), dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbtable_t::evict_idle_id, FALSE, dt_thumbtable_t::grid, IS_NULL_PTR, dt_thumbtable_t::lock, dt_thumbtable_t::lut, dt_thumbtable_t::max_row_id, dt_thumbtable_t::min_row_id, name, dt_thumbtable_t::reset_collection, dt_thumbtable_t::scroll_window, dt_thumbtable_t::thumb_nb, dt_thumbtable_t::thumbs_inited, and TRUE.
Referenced by _thumbtable_idle_apply_grid_configuration(), _thumbtable_idle_update(), and dt_thumbtable_move_in_grid().
| void dt_thumbtable_update_parent | ( | dt_thumbtable_t * | table | ) |
Definition at line 2319 of file thumbtable.c.
References dt_thumbtable_schedule_focus.
Referenced by dt_ui_panel_show(), and enter().
|
static |
Definition at line 2446 of file thumbtable.c.
Referenced by dt_thumbtable_dispatch_over().