![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
FILEMANAGER frontend of the thumbtable: the lighttable grid layout, its layout-ops vtable, and the grid-only public API (zoom + grid reconfiguration). The shared engine lives in thumbtable.c; see thumbtable_internal.h for the ops contract. More...
#include "common/darktable.h"#include "common/collection.h"#include "common/selection.h"#include "control/control.h"#include "dtgtk/thumbtable.h"#include "dtgtk/thumbtable_internal.h"#include "dtgtk/thumbnail.h"#include "gui/accelerators.h"#include "gui/gtk.h"#include <math.h>
Include dependency graph for filemanager.c:Go to the source code of this file.
FILEMANAGER frontend of the thumbtable: the lighttable grid layout, its layout-ops vtable, and the grid-only public API (zoom + grid reconfiguration). The shared engine lives in thumbtable.c; see thumbtable_internal.h for the ops contract.
Definition in file filemanager.c.
|
static |
Definition at line 50 of file filemanager.c.
References dt_conf_get_int(), dt_thumbtable_thumb_cell_decoration(), height, MAX, dt_thumbtable_t::parent_overlay, dt_thumbtable_t::scroll_window, and width.
Referenced by dt_thumbtable_grid_ops().
Definition at line 40 of file filemanager.c.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 98 of file filemanager.c.
References position(), dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumbs_per_row, and dt_thumbtable_t::v_scrollbar.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 256 of file filemanager.c.
References darktable, dt_view_manager_get_current_view(), dt_thumbtable_t::grid, IS_NULL_PTR, dt_view_t::module_name, and darktable_t::view_manager.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 148 of file filemanager.c.
References CLAMP_ROW, DT_THUMBNAIL_BORDER_BOTTOM, DT_THUMBNAIL_BORDER_LEFT, DT_THUMBNAIL_BORDER_RIGHT, DT_THUMBNAIL_BORDER_TOP, dt_image_t::group_id, dt_image_t::group_members, dt_thumbtable_cache_t::groupid, dt_thumbnail_t::info, IS_COLLECTION_EDGE, dt_thumbtable_t::lut, dt_thumbnail_t::rowid, dt_thumbtable_cache_t::thumb, and dt_thumbtable_t::thumbs_per_row.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 280 of file filemanager.c.
References darktable, dt_modifier_is(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_selection_select_single(), dt_selection_toggle(), dt_thumbtable_find_rowid_from_imgid(), dt_thumbtable_move_in_grid(), dt_thumbtable_select_range(), DT_TT_MOVE_DOWN, DT_TT_MOVE_UP, FALSE, key, dt_thumbtable_t::lock, darktable_t::selection, and TRUE.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 116 of file filemanager.c.
References position(), dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumbs_per_row, and dt_thumbtable_t::v_scrollbar.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 223 of file filemanager.c.
References darktable, dt_selection_is_id_selected(), and darktable_t::selection.
Referenced by _grid_on_thumbnail_added(), and dt_thumbtable_grid_ops().
|
static |
Definition at line 188 of file filemanager.c.
References dt_thumbtable_t::grid, dt_thumbnail_t::widget, dt_thumbnail_t::x, and dt_thumbnail_t::y.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 234 of file filemanager.c.
References darktable, dt_selection_select(), darktable_t::selection, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 228 of file filemanager.c.
References _grid_is_thumb_highlighted(), dt_thumbnail_t::disable_actions, dt_thumbnail_update_selection(), FALSE, dt_image_t::id, and dt_thumbnail_t::info.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 183 of file filemanager.c.
References dt_thumbtable_t::grid, dt_thumbnail_t::widget, dt_thumbnail_t::x, and dt_thumbnail_t::y.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 91 of file filemanager.c.
References dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumbs_per_row, and dt_thumbtable_t::view_height.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 318 of file filemanager.c.
References darktable, dt_selection_select_single(), and darktable_t::selection.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 209 of file filemanager.c.
References FALSE, dt_thumbtable_t::last_v_scrollbar_width, dt_thumbtable_t::scroll_window, and TRUE.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 83 of file filemanager.c.
References row, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumb_width, dt_thumbtable_t::thumbs_per_row, and x.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 244 of file filemanager.c.
References dt_get_help_url(), dt_gui_add_help_link(), dt_thumbtable_t::grid, dt_thumbtable_t::parent_overlay, and dt_thumbtable_t::scroll_window.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 128 of file filemanager.c.
References dt_thumbtable_t::collection_count, DT_DEBUG_LIGHTTABLE, dt_print(), dt_thumbtable_t::grid, height, dt_thumbtable_t::thumb_height, dt_thumbtable_t::thumbs_per_row, and dt_thumbtable_t::view_width.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 201 of file filemanager.c.
References dt_thumbtable_t::v_scrollbar.
Referenced by dt_thumbtable_grid_ops().
|
static |
Definition at line 196 of file filemanager.c.
References dt_thumbtable_t::v_scrollbar.
Referenced by dt_thumbtable_grid_ops().
|
static |
Idle callback for applying grid configuration.
This handler is used when grid configuration changes (like column count). It handles the grid reconfiguration and thumbnail updates, then schedules a follow-up idle callback for scrolling to ensure proper GTK widget state.
Definition at line 395 of file filemanager.c.
References dt_thumbtable_configure(), dt_thumbtable_refresh_thumbnail, dt_thumbtable_schedule_focus(), dt_thumbtable_update(), dt_thumbtable_t::grid, dt_thumbtable_t::idle_update_id, IS_NULL_PTR, dt_thumbtable_t::thumb_nb, TRUE, and UNKNOWN_IMAGE.
Referenced by dt_thumbtable_apply_grid_configuration().
| void dt_thumbtable_apply_grid_configuration | ( | dt_thumbtable_t * | table | ) |
Apply grid configuration changes with proper event synchronization.
| table | The thumbnail table |
This function should be called when grid properties like column count change. It properly coalesces and orders the necessary updates:
Unlike calling the functions separately, this ensures all operations happen together in the correct order within a single idle callback, preventing partial updates or out-of-sync scroll positions.
Definition at line 421 of file filemanager.c.
References _thumbtable_idle_apply_grid_configuration(), dt_thumbtable_set_active_rowid(), dt_thumbtable_t::idle_update_id, IS_NULL_PTR, and dt_thumbtable_t::scroll_window.
Referenced by _set_columns().
| dt_thumbtable_zoom_t dt_thumbtable_get_zoom | ( | dt_thumbtable_t * | table | ) |
Definition at line 367 of file filemanager.c.
References dt_thumbtable_t::zoom.
Referenced by _zoom_checked().
| const dt_thumbtable_layout_ops_t * dt_thumbtable_grid_ops | ( | void | ) |
Definition at line 329 of file filemanager.c.
References _grid_configure_dims(), _grid_create_content_widget(), _grid_get_row_ids(), _grid_grab_focus(), _grid_group_borders(), _grid_handle_key(), _grid_is_rowid_visible(), _grid_is_thumb_highlighted(), _grid_move_child(), _grid_on_drag_begin(), _grid_on_thumbnail_added(), _grid_place_child(), _grid_position_to_rowid(), _grid_pre_activate(), _grid_relevant_scrollbar_changed(), _grid_rowid_to_position(), _grid_setup_parent(), _grid_update_content_size(), _grid_wants_page_size_notify(), _grid_wants_scroll_value(), and dt_thumbtable_layout_ops_t::create_content_widget.
Referenced by _ops_for_mode().
| void dt_thumbtable_offset_zoom | ( | dt_thumbtable_t * | table, |
| const double | delta_x, | ||
| const double | delta_y | ||
| ) |
Definition at line 372 of file filemanager.c.
References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_thumbtable_t::list, dt_thumbtable_t::lock, value, dt_thumbnail_t::w_image, dt_thumbnail_t::zoomx, and dt_thumbnail_t::zoomy.
Referenced by _event_image_motion().
| void dt_thumbtable_set_zoom | ( | dt_thumbtable_t * | table, |
| dt_thumbtable_zoom_t | level | ||
| ) |
Definition at line 359 of file filemanager.c.
References dt_thumbtable_refresh_thumbnail, dt_thumbtable_schedule_focus(), dt_thumbtable_set_active_rowid(), TRUE, UNKNOWN_IMAGE, and dt_thumbtable_t::zoom.
Referenced by _dt_collection_changed_callback(), and _zoom_combobox_changed().