![]() |
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 "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. Its length is limited to 840 elements or whatever is visible inside viewport at current scroll level. It's garbage-collected.
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 635 of file thumbtable.c.
| #define IS_COLLECTION_EDGE | ( | rowid | ) | (rowid < 0 || rowid >= table->collection_count) |
Definition at line 636 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 1394 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 656 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 638 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 1738 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 1015 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 1514 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 1471 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 1414 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 1867 of file thumbtable.c.
References FALSE, IS_NULL_PTR, and TRUE.
Referenced by dt_thumbtable_new().
|
static |
Definition at line 891 of file thumbtable.c.
References _refresh_highlights(), and IS_NULL_PTR.
Referenced by dt_thumbtable_cleanup(), and dt_thumbtable_new().
|
static |
Definition at line 1128 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 1104 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, dt_thumbtable_t::reset_collection, and TRUE.
Referenced by _dt_collection_changed_callback().
|
static |
Definition at line 1049 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 969 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 825 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 882 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 2141 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 1343 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 1649 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 1237 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 1886 of file thumbtable.c.
References dt_control_set_mouse_over_id(), IS_NULL_PTR, TRUE, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_new().
| dt_thumbnail_t * _find_thumb_by_imgid | ( | dt_thumbtable_t * | table, |
| const int32_t | imgid | ||
| ) |
Definition at line 600 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 468 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 193 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 509 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 1661 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 476 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 285 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 1896 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 259 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 746 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 359 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 837 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 756 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 352 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 246 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 235 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 272 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 367 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 183 of file thumbtable.c.
References dt_thumbnail_t::rowid.
Referenced by _dt_thumbtable_empty_list(), and dt_thumbtable_stop().
|
static |
Definition at line 1188 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 1203 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 85 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 1579 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 1360 of file thumbtable.c.
References dt_supported_image(), and IS_NULL_PTR.
Referenced by _thumbtable_dnd_import().
|
static |
Definition at line 1532 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 1303 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 210 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 222 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 498 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 483 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 2176 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::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 556 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 2376 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 1634 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 413 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 927 of file thumbtable.c.
References dt_thumbtable_t::draw_group_borders.
| gboolean dt_thumbtable_get_focus_peaking | ( | dt_thumbtable_t * | table | ) |
Definition at line 914 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 903 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 375 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 606 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 2359 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 1756 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_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 1854 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 1681 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 1908 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, 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 230 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 935 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 1881 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 203 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 447 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 424 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 389 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 396 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 457 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 2265 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 2289 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 381 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 919 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 908 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 897 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 1214 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 2252 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 2208 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(), 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 535 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 789 of file thumbtable.c.
References _dt_thumbtable_empty_list(), _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(), 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 2247 of file thumbtable.c.
References dt_thumbtable_schedule_focus.
Referenced by dt_ui_panel_show(), and enter().
|
static |
Definition at line 2374 of file thumbtable.c.
Referenced by dt_thumbtable_dispatch_over().